hathach
dc74e634f9
fix unaligned hub status_change
2023-07-25 12:35:40 +07:00
Ha Thach
fda92fd34a
Merge branch 'master' into hcd-abort-xfer
2023-07-24 21:38:46 +07:00
hathach
fd29fd923a
clean up
2023-07-24 20:53:44 +07:00
hathach
d254256047
change dcache clean/invalidate return type to bool
...
add tu_assert() check for aligned 32byte address for imxrt
2023-07-24 17:54:24 +07:00
hathach
c122e9df73
implement hcd_edpt_abort_xfer() for EHCI, also move thing around a bit
2023-07-21 19:06:36 +07:00
hathach
1cc7c5d030
add hcd_edpt_abort_xfer() API
2023-07-21 12:43:48 +07:00
hathach
16ad918d96
prefer application callback over built-in driver
2023-07-20 17:37:06 +07:00
hathach
77495cf119
improve logging, allow easier to turn off usbd, driver logging
...
can be useful when focusing on let's say usbh
2023-07-20 17:12:00 +07:00
Aladdin Bakosh
3fdd2a40b2
osal_none: make it possible to override the task delay function
2023-07-18 14:14:23 +02:00
Aladdin Bakosh
1923b1845d
fix(RA_hcd): STALL status can be also 3 not only 2
2023-07-17 11:54:09 +02:00
hathach
65d6acdbfa
fix build warnings
2023-06-16 12:02:42 +07:00
hathach
9593ab7acc
fix usbh issue when device genreate multiple attach/detach/attach when plugging in
2023-06-13 16:40:29 +07:00
hathach
9b7dee563e
able to response with good crc
2023-06-07 18:57:48 +07:00
Dave Nadler
70a92291fe
Fix diagnostic format string (missing %u)
2023-06-01 10:58:03 -04:00
hathach
20ef6c4ef7
slightly clean up
2023-05-29 13:29:11 +07:00
hathach
5c428d35a6
check status_change is not zero first
2023-05-29 13:27:20 +07:00
Ivo Popov
8ad024e51b
Even when we get an empty "status change" interrupt from the hub, schedule another interrupt poll.
...
During enumeration, when there are multiple devices attached to the
hub as it's plugged into the Pi Pico, enumeration hangs, because we
get a "status change" callback with value zero. With this patch, we
retry several times on "zero" status change callbacks, until
eventually we succeed.
This is the cheapo hub that exhibits this behavior, but I assume it's
not the only one: https://www.amazon.com/gp/product/B083RQMC7S .
While debugging this, I consulted the implementation in the Linux
kernel. There, hub setup explicitly checks each port individually,
before starting to depend on "status change" interrupts:
https://elixir.bootlin.com/linux/latest/source/drivers/usb/core/hub.c#L1133 .
We probably should do something like that here, but it's a much bigger
change.
2023-05-29 13:18:16 +07:00
hathach
5dae5e1292
ehci fix dcache clean when control endpoint failed
2023-05-19 13:32:49 +07:00
hathach
49e2aabc81
EHCI more improvement
...
- more dcache clean/invalidate
- extract init_periodic_list()
- improve isr list handling
2023-05-18 13:45:38 +07:00
hathach
a3e017bfd2
EHCI adding dcahe support, passing enumertaion
2023-05-18 10:04:48 +07:00
hathach
eb89df4115
adding hcd_dcache_clean/hcd_dcache_invalidate
2023-05-17 16:14:35 +07:00
hathach
2c48050993
add various check for disconncted device, also fix #1511 un-roll recursive hub removal with usbh queue
2023-05-16 11:09:22 +07:00
hathach
1c4f22a54c
EHCI: fix xfer failed with disconnected device as stalled
...
- change CFG_TUH_ENDPOINT_MAX to 16 (max endpoint pair per device) if
not defined
- change QHD_MAX for EHCI, should be user configurable and more
optimized in the future
2023-05-16 11:09:22 +07:00
hathach
206d63e038
correct EHCI reporting failed xfer (instead of stalled) when device is unplugged
2023-05-16 11:09:21 +07:00
hathach
0a43a7b418
improve host serial drivers
...
- tuh_control_xfer() update xfer result to user_data if complete
callback = NULL (sync/blocking)
- refactor host serial driver for acm/ftdi/cp210x
2023-04-28 19:13:25 +07:00
hathach
45169d833d
hacky, but ftdi work with hard code baudrate = 9600
2023-04-26 22:36:17 +07:00
hathach
71fb6469d4
separate CFG_TUSB_MEM_SECTION and CFG_TUSB_MEM_ALIGN to
...
- CFG_TUD_MEM_SECTION and CFG_TUD_MEM_ALIGN
- CFG_TUH_MEM_SECTION and CFG_TUH_MEM_ALIGN
- fix missing mem section and align for host
2023-03-24 14:05:21 +07:00
hathach
f8a5cde3c7
add tuh_task_event_ready(), better implement blocking control transfer for rtos
2023-03-22 09:23:44 +07:00
hathach
8a0b17598c
add osal_task_delay() for control blocking
2023-03-21 18:15:45 +07:00
hathach
d34508a316
add note for blocking tuh_configuration_set(), tuh_interface_set()
2023-03-21 18:13:25 +07:00
hathach
e44e461ce3
add tuh_set_interface
2023-03-21 12:55:52 +07:00
hathach
bdfcd50b1b
Merge branch 'master' into portability
2023-03-17 23:53:38 +07:00
hathach
3623ba1884
fix trailing space and new line
...
temporarily disable codespell
2023-03-17 16:12:49 +07:00
hathach
e1fda007f6
minor refactor to invalid index
2023-03-17 14:46:02 +07:00
hathach
f349ae7702
fix enumerate one device at a time
2023-03-17 13:58:01 +07:00
hathach
1466afafeb
move and add optional tusb_app_virt_to_phys/tusb_app_phys_to_virt
...
also add place holder for tusb_app_dcache_flush() and
tusb_app_dcache_invalidate()
2023-02-22 22:14:50 +07:00
hathach
95403ed9ac
fix host issue when mounting an CDC device without IAD
2023-01-31 18:40:07 +07:00
pete-pjb
f5cffeedec
Fix typo in audio.h. Specifiy _ctrl_xfer struct in CFG_TUSB_MEM_SECTION
...
Add NULL check to loop in list_remove_qhd_by_addr() function in ehci.c
2023-01-03 10:33:36 +00:00
hathach
14d45b580e
correct host cdc enum
2022-12-22 19:17:09 +07:00
hathach
8323e4b79a
moving edpt_stream API into common tusb.c
2022-12-22 08:52:01 +07:00
hathach
cb2af4c0bc
minor debug log
2022-12-21 11:46:58 +07:00
hathach
d1ea3844f7
rename TU_LOG_VAR to TU_LOG_PTR, print out setup of failed control transfer when LOG=1
2022-12-21 11:04:57 +07:00
hathach
fc9321ce26
correct cdc usbh_driver_set_config_complete()
2022-12-16 23:54:21 +07:00
hathach
bd1f7f86ce
add common EPSIZE for bulk/iso in full and highspeed
...
adding cdc host fifo tx/rx
2022-12-16 17:08:37 +07:00
hathach
f0c51eae44
cdc check for bNumEndpoints before checking for endpoint descriptor
2022-12-16 17:08:37 +07:00
hathach
1e99480ad2
fix ci with usbh and unit test
2022-12-16 15:19:40 +07:00
hathach
88e6da7273
use OSAL_MUTEX_REQUIRED to replace CFG_FIFO_MUTEX/TUSB_OPT_MUTEX
...
add macro to swallow mutex API in order to simplify code with mutex
2022-12-15 18:03:01 +07:00
Bastien Nocera
6a2cf67289
Fix typos
2022-12-04 19:43:23 +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
hathach
460bef9dbb
host msc example work well with rp2040 pio-usb
2022-11-21 15:49:38 +07:00
Ben Avison
01edbb8af6
IAR doesn't support __attribute__((fallthrough))
...
IAR generates warning Pa167 'the "fallthrough" attribute is not supported'.
It doesn't generate warnings when one switch case falls through to another,
so simply make TU_ATTR_FALLTHROUGH expand to an empty string.
Also replace one instance of __attribute__ with the macro.
2022-09-13 18:00:51 +01:00
Ben Avison
53f0d5538b
Don't assume ints automatically convert to enums
...
IAR generates warning Pe188 'enumerated type mixed with another type'.
2022-09-13 18:00:50 +01:00
Ryzee119
2b2354d302
Hub: Clear other port feature changes
2022-08-16 18:25:46 +09:30
Ryzee119
3c7b5dcaff
Hub: Handle hub device status change interrupt
2022-08-16 18:25:43 +09:30
Ryzee119
aafea8ef5d
Hub: Rename port status callback to be more generic
2022-08-15 17:43:04 +09:30
Ryzee119
5efef4393c
Hub: Expand hub helpers to handle device events
2022-08-15 17:42:56 +09:30
hathach
7e4c0f64cd
abtract attribute fallthrough
2022-07-14 18:39:47 +07:00
graham sanderson
4bd47bcb99
disable bad gcc 6 warning
2022-07-12 13:29:47 -05:00
hathach
345558307d
fix incorrect null-dereference warnings when compiling with gcc7
2022-07-12 00:50:52 +07:00
hathach
a0ef489890
fix all warnings with host rp2040
2022-06-27 17:11:24 +07:00
hathach
0042eccb3b
fix redundant-decls warnings by usbd/usbh
2022-06-24 22:52:11 +07:00
Ha Thach
d7b579a978
Merge pull request #1480 from Ryzee119/multihub_rebase
...
Host: Add support for multi-level usb hubs
2022-06-16 16:33:48 +07:00
hathach
f4a7b5b80c
add note for recursive calls of process_device_unplugged() in case of hub
2022-06-16 14:37:57 +07:00
hathach
040ef0640d
more dynamic controller for host
2022-06-10 14:53:03 +07:00
hathach
8cbc34de11
add tuh_configure() for port/dynamic host behavior config
2022-06-08 01:17:01 +07:00
Ryzee119
7df7590f7f
Hub: Remove multi-level hub bypass
2022-06-04 18:58:20 +09:30
Ryzee119
b7c8cb3c41
Hub: Unplug downstream devices on non-root hub disconnect
2022-05-29 14:15:57 +09:30
Ryzee119
9e30ec4f16
Hub: Retry port status transfer if failed
2022-05-29 14:15:23 +09:30
Ryzee119
688a3a0cc2
Fix non-trivial designated initializers compile error
2022-05-29 14:15:18 +09:30
hathach
0b30a10ab3
configure hid_to_cdc example to build with rp2040 with pio usb as host
2022-04-29 22:24:36 +07:00
hathach
85dcb73774
more clean up
2022-04-28 18:00:30 +07:00
hathach
a72d4e2462
make hcd_event_handler() fastfunc, and force inline other helper
2022-04-27 20:54:21 +07:00
hathach
ae5490e5a5
clean up
2022-04-27 20:52:56 +07:00
hathach
98bbb0d402
Merge branch 'master' into pio-host
2022-04-21 12:05:22 +07:00
hathach
6a022c73db
add note for tud_task() behavior in freertos example
2022-04-20 18:35:38 +07:00
hathach
b034c18077
add tud_task_ext(), tuh_task_ext() as exteneded version that take timeout and in_isr
...
also allow exit tud_task,tuh_task after processing all events for
running other background task for user
2022-04-20 18:29:41 +07:00
hathach
a90839688c
add msec timeout to osal_queue_receive(), tud_task() and tuh_task() both pending for event queue with timeout of 1 ms
2022-04-20 13:25:38 +07:00
hathach
d97c154695
add need_pre for pio usb, but not work out well
2022-04-05 00:04:47 +07:00
hathach
e6e3dfedc8
hid example work well
2022-04-01 16:34:36 +07:00
hathach
75bca96bc6
pio usb control work well including stall response
2022-04-01 16:01:24 +07:00
hathach
45052c625e
Merge branch 'master' into pio-host
2022-03-20 00:51:00 +07:00
hathach
821be65b03
rename usbh_edpt_open() to tuh_edpt_open()
2022-03-19 14:59:31 +07:00
hathach
4795cca04a
add parse config descriptor to example
...
move usbh_edpt_open() to public API, remove rhport from its signature
2022-03-19 00:43:31 +07:00
hathach
ba1185bf28
implement tuh_edpt_xfer() for non-control
2022-03-18 22:22:21 +07:00
hathach
9ae0304b1e
move code around
2022-03-18 18:04:25 +07:00
hathach
8750e3b577
move daddr into xfer struct
2022-03-18 16:39:35 +07:00
hathach
2ff8978dde
update sync API, move timeout into xfer struct
...
remove tuh_control_xfer_sync()
2022-03-18 13:38:30 +07:00
hathach
85c6d6d37d
minor update for control xfer
2022-03-18 12:51:12 +07:00
hathach
c063ab4944
try to fix ci
2022-03-18 00:56:51 +07:00
hathach
f89ff939d8
rename user_arg to user_data
2022-03-17 22:37:51 +07:00
hathach
9dd2f11f4a
add CFG_TUH_API_EDPT_XFER to enable generic edpt xfer
2022-03-17 21:20:20 +07:00
hathach
55428d7dd2
rename tuh_control_xfer_t to tuh_xfer_t
2022-03-17 20:52:16 +07:00
hathach
102b99a0e8
add actual_len supported
2022-03-17 20:48:32 +07:00
hathach
8aedb2ff37
slightly change the signature of tuh_control_xfer
2022-03-17 17:25:53 +07:00
hathach
66942b814b
change return type of callback to void
2022-03-17 16:55:29 +07:00
hathach
deab8c276a
remove const in xfer callback
2022-03-17 16:53:54 +07:00
hathach
6df420f7f3
move result into transfer struct
2022-03-17 16:24:43 +07:00
hathach
68bfd048a5
change tuh_control_xfer_t struct
2022-03-17 12:53:52 +07:00
hathach
98d4ed0584
update hid host to use new control xfer for set config
2022-03-16 18:44:41 +07:00