2684 Commits

Author SHA1 Message Date
hathach
0cce42fcc6 minor clean up 2023-01-31 11:38:15 +07:00
Jonathan Bell
0d2078d295 rp2040: shuffle hw_endpoint members
Ordering by element size prevents alignment holes, and as a consequence the
host mode version of the struct is the same size as device, as pad bytes at
the end are used instead.
2023-01-24 12:05:32 +00:00
Jonathan Bell
73b0047efc rp2040: avoid device-mode state machine hang
Don't mark IN buffers as available during the last 200us of a full-speed
frame. This avoids a situation seen with the USB2.0 hub on a Raspberry
Pi 4 where a late IN token before the next full-speed SOF can cause port
babble and a corrupt ACK packet. The nature of the data corruption has a
chance to cause device lockup.

Use the next SOF to mark delayed buffers as available. This reduces
available Bulk IN bandwidth by approximately 20%, and requires that the
SOF interrupt is enabled while these transfers are ongoing.

Inherit the top-level enable from the corresponding Pico-SDK flag.
Applications that will not use the device in a situation where it could
be plugged into a Pi 4 or Pi 400 (for example, when directly connected
to a commodity hub or other host) can turn off the flag in the SDK.

v2: use a field in hw_endpoint to mark pending.

v3: Partial rewrite following review comments

- Stub functions out if the workaround is not required
- Only force-enable SOF while any vulnerable endpoints are active
- Respect dcd_sof_enable() functionality
- Get rid of all but necessary ifdef hackery
- Fix a bug where the "endpoint lock" was used with an uninitialised pointer.
2023-01-24 11:53:28 +00:00
Jonathan Bell
c3e47c31cc rp2040: export hw_endpoint_start_next_buffer() and hw_endpoint_lock_update()
The next change to the driver requires the export of these functions. Leave the
lock unimplemented for now.

Also move hw_set and hw_clear aliases into the top-level header file.
2023-01-23 10:55:20 +00:00
hathach
c9c7dfa868
more clean up 2022-11-30 18:59:58 +07:00
hathach
069215c538
white spaces 2022-11-30 18:58:30 +07:00
Ha Thach
2ae6a4d519
Merge pull request #1755 from rppicomidi/fix_1721
Fix RP2040 Issue 1721
2022-11-30 18:00:27 +07:00
hathach
be6f6f2c99 increase delay between attempts to 100ms 2022-11-28 23:43:52 +07:00
hathach
b2a3f33046 Retry a few times with transfers in enumeration since device can be unstable when starting up 2022-11-28 23:22:10 +07:00
rppicomidi
9825fbe9ac Fix RP2040 Issue 1721 2022-11-23 13:12:31 -08:00
hathach
7298923927 rework tuh_msc_complete_cb_t signature to use new tuh_msc_complete_data_t
add user arg to all scsi command API that support complete callback
2022-11-23 16:01:48 +07:00
hathach
460bef9dbb
host msc example work well with rp2040 pio-usb 2022-11-21 15:49:38 +07:00
hathach
64ecf43663
whitespace 2022-11-21 11:53:15 +07:00
Ha Thach
2dc7a62361
Merge pull request #1738 from kaysievers/midi-port-names
MIDI: support port name strings
2022-11-16 16:36:13 +07:00
Kay Sievers
abfcdf2cfb MIDI: support port name strings
This allows to set custom descriptive names for virtual MIDI
ports/cables. A MIDI port offers different functionality on
the same physical USB device. The names make it easier to
distinguish one from the other.
2022-11-11 22:48:29 +01:00
Mengsk
f3f3739073 Fix DCD build. 2022-11-07 13:38:35 +01:00
Mengsk
9d3d8fd5b0 Merge branch 'master' of https://github.com/hathach/tinyusb into bsp_412 2022-11-07 12:47:41 +01:00
Mengsk
1eae139aa9 Add support for STM32L412. 2022-11-07 12:32:36 +01:00
hathach
d2c9b8bcfb fix -wconversion-int and add minor comment 2022-11-04 16:14:35 +07:00
Ha Thach
b554c2ed83
Merge branch 'master' into rp2040-hcd-bulk 2022-11-04 15:42:50 +07:00
Ha Thach
28f49c088b
Merge pull request #1698 from battlesnake/fix-attrs-on-struct-member
do not apply storage attributes to member of struct
2022-10-25 15:23:09 +07:00
Mark K Cowan
815c2cc995 keep alignment spec 2022-10-24 20:36:45 +03:00
Ha Thach
5b1b383d2a
Merge pull request #1676 from tswan-quasi/master
dcd_lpc_ip3511: isochronous support and endpoint accidental write fix
2022-10-24 19:08:58 +07:00
hathach
e3b7ed9ae9 use dummy for all ZLP for ip3511, fix lpc55 build with DEBUG=1 2022-10-24 18:43:21 +07:00
tswan-quasi
35e1a27c95 unused (void) cast 2022-10-21 15:06:30 -04:00
Ha Thach
bfcdef499a
Merge pull request #1690 from tore-espressif/fix/espressif/iso_transfers
esp: Fix Isochronous transfers
2022-10-22 00:34:38 +07:00
Mark K Cowan
4ec1643bdb do not apply storage attributes to member of struct 2022-10-20 22:46:21 +03:00
tswan-quasi
0b55047081 typo fix 2022-10-20 11:04:49 -04:00
tswan-quasi
fe4278554b dummy buffer only on EP0 OUT ZLPs 2022-10-20 11:02:57 -04:00
Ha Thach
39be00975c
Merge pull request #1680 from LynnL4/port-stm32u5xx
Port stm32u5xx
2022-10-19 23:10:30 +07:00
Ha Thach
e79325adec
Merge pull request #1668 from kkitayam/add_support_for_mjpeg
Add support for MJPEG on UVC
2022-10-19 23:10:11 +07:00
Ha Thach
2cd4e27e98
Merge pull request #1523 from maddyaby/dcd_edpt_open
Allow more endpoint packet sizes for SAMD
2022-10-19 22:56:36 +07:00
Tomas Rezucha
a49ca795af esp: Fix Isochronous transfers
On ESP32-S2/S3 ISO transfers must be configured for even or odd frame.

Closes https://github.com/hathach/tinyusb/issues/1382
2022-10-18 08:05:13 +02:00
hathach
3f45f37672
minor rename 2022-10-17 23:13:24 +07:00
Ha Thach
154821acc0
Merge pull request #1646 from battlesnake/feedback-prototype-fix
audio_device: prototype added for function referenced before use
2022-10-14 16:28:26 +07:00
tswan-quasi
2c1ff2673b (void) rhport for unused parameter 2022-10-13 11:48:30 -04:00
LynnL4
4238467b2d Add support for STM32U5 mcu 2022-10-13 17:39:42 +08:00
tswan-quasi
930c68278c double cast of pointer to remove error 2022-10-12 11:16:35 -04:00
kkitayam
53dc9d55b5 Fix pointer type to calculate streaming parameter 2022-10-12 20:41:03 +09:00
tswan-quasi
16f1554a03 lpc55s69 isochronous, dummy address for endpoint buffers to prevent accidental writes 2022-10-11 09:59:28 -04:00
Ha Thach
a95fb36f72
Merge pull request #1623 from SudoMaker/master
Initial PIC32MM/MX & PIC24 support
2022-10-10 20:18:01 +07:00
kkitayam
4be7ffd63f Fix max payload size to clip at 1023 2022-10-07 21:30:03 +09:00
ReimuNotMoe
8096afc6de Microchip PIC24/dsPIC33 device mode support 2022-10-06 03:45:51 +08:00
mingpepe
988eeb50c6
Fix typo for log in dcd_rp2040.c 2022-10-05 21:26:22 +08:00
kkitayam
ee832e4e37 Fix descriptor searching 2022-10-03 21:41:58 +09:00
Mark K Cowan
6c3c2df823 audio_device: prototype added for function referenced before use 2022-09-17 21:27:04 +03:00
kkitayam
1debf62707 Fix compile errors 2022-09-13 21:22:02 +09:00
kkitayam
e80714740c Change images to MJPEG 2022-09-13 21:22:02 +09:00
Ha Thach
111515a29c
Merge pull request #1629 from jmark1m/master
Fix bug #1628 by preventing shared irq slots for filling up
2022-09-13 15:08:12 +07:00
Jerzy Kasenberg
3133cacc6a nrf5x: Fix reception of large ISO packets
ISO packet size is up to 1023 for full speed device.
Upon completion of ISO reception, reported length of incoming packet
was truncated to one byte only.
This results in incorrect data stream for higher bit rates
48 samples * 4 bytes per sample * 2 channels = 384 bytes of data
and 128 was reported.

There is no change in logic extending xact_len to uint16_t fixes the issue.
2022-09-13 08:11:56 +02:00