Commit Graph

2119 Commits

Author SHA1 Message Date
Ha Thach 958cf2cfba
Merge pull request #1102 from kasjer/kasjer/usbd-small-ep0-enumeration-workaround
usbd: Workaround for non standard device descriptor request
2021-09-25 18:37:24 +07:00
hathach 73872a5df0 add CFG_TUSB_OS_INC_PATH for os include path
useful for freertos/ prefix with esp IDF
2021-09-25 16:16:55 +07:00
Ha Thach 1c17cb1c45
Merge pull request #1103 from kasjer/kasjer/da146xx-close-cleanup
dcd_da146xx: Remove registers pointer from xfer_ctl_t
2021-09-24 20:55:16 +07:00
Ha Thach cd865f896b
Merge pull request #1096 from kasjer/kasjer/da146xx-close-all
dcd_da146xx: Implement dcd_edpt_close_all()
2021-09-24 20:53:06 +07:00
Jerzy Kasenberg c62c1433e7 usbd: Workaround for non standard device descriptor request
Windows and Linux host during enumeration requests device
descriptor with request size set to 64 bytes when device
was in default state (no address).
Those systems do not want 64 bytes though since usb descriptors is
only 18 bytes long so they silently expect that only one packet
will be received possibly 18 bytes for EPS > 16 or 8 or 16 bytes
for smaller EP0.

For devices with CFG_TUD_ENDPOINT0_SIZE size 8 or 16 there was
workaround that reduced request size to CFG_TUD_ENDPOINT0_SIZE
and that was enough to satisfy Windows and Linux hosts.

However USBCV testing application also requests device descriptor
but with size set to 18 bytes. Workaround for Window/Linux
prevented USBVC to tests devices with 8 bytes EP0 size since it
send only 8 bytes while application did wanted 18 bytes.

Solution that satisfies both cases it to check if in default state device
descriptor request wants more bytes than descriptor size (18).
If so host is expecting to receive less bytes then requested
and workaround would be applied since Linux/Windows only try
to read one packet.
If 18 bytes was requested as is the case for USBCV, core returns
descriptor in 2 or 3 packets as application expects.
2021-09-24 14:19:04 +02:00
Jerzy Kasenberg fbac58e3e4 dcd_da146xx: Implement dcd_edpt_close_all()
Unconditionally disables all endpoints except EP0.
2021-09-24 10:46:16 +02:00
Jerzy Kasenberg 1503955860 dcd_da146xx: Clear transfer data on dcd_edpt_close
Closing endpoint clears data in affected xfer_ctl_t
2021-09-24 09:28:51 +02:00
Jerzy Kasenberg f172c5ee13 dcd_da146xx: Remove registers pointer from xfer_ctl_t
Note: this commit does not change any logic.

xfer_ctl_t structure keeps all dynamic data connected with transfer.
It used to have pointer to register set that was constant and was there
for convenience only.
Removing register pointer from structure makes cleanup easier as whole
structure can be erased with memset like function.

In many cases functions were using local variable regs and xfer->regs which
were same, that could be confusing so this part is unified.

Few macros were added for easy conversion between epnum, xfer, and regs.
2021-09-24 09:28:51 +02:00
Ha Thach 4766e7f348
Merge pull request #1093 from szymonh/master
Enforced buffer boundaries for hid devices
2021-09-23 13:31:46 +07:00
Ha Thach 3e569f8e79
Merge pull request #1094 from kasjer/kasjer/da146xx-vbus-handling
dcd_da146xx: Add VBUS handling
2021-09-18 23:12:40 +07:00
Jerzy Kasenberg 6d8677a78a dcd_da146xx: Add VBUS handling
DA146xx are Bluetooth devices that may be battery
powered and when not connected to USB host there
is no need for USB peripheral to be running.

This change allows to enable USB peripheral when
VBUS is present otherwise USB is down reducing
power consumption.

tud_vsub_changed() function must be called
whenever VBUS change was detected.
For bus-powered devices this function should be called
at startup since VBUS must be present while device
is working.
2021-09-17 12:10:17 +02:00
hathach b363afc091 minor clean up 2021-09-17 00:46:29 +07:00
hathach c65cc75c6b use correct resume detection for kl25z 2021-09-17 00:44:39 +07:00
hathach 8dfe0898e7 minor update to dcd khci 2021-09-17 00:43:10 +07:00
kkitayam fbe1bf375c Fix stall interrupt handling 2021-09-15 21:39:02 +09:00
hathach 93ed3034c0 merge master and minor clean up 2021-09-15 18:35:52 +07:00
hathach f39656b6d7 Merge branch 'master' of github.com:hathach/tinyusb into kkitayam-impl_close_all_for_khci 2021-09-15 18:29:28 +07:00
Ha Thach 03866ddf9b
Merge pull request #1062 from HiFiPhile/fifo_dcd_transdimension
Improvements for dcd_transdimension
2021-09-15 16:07:06 +07:00
MasterPhi 0ded1c5bac Reset EP flags on close. 2021-09-14 21:08:12 +02:00
MasterPhi 3639168066 Fix warning. 2021-09-14 11:58:22 +02:00
Ha Thach 6d3fb7eb98
Merge pull request #1087 from HiFiPhile/nuc_wkp
NUC126: fix remote_wakeup
2021-09-14 11:40:55 +07:00
szymonh 2d6407e7a5 Enforced buffer boundaries for hid devices 2021-09-13 22:56:25 +02:00
Ha Thach 1c3215257e
Merge pull request #1091 from hathach/esp32sx-compliance
Esp32sx compliance
2021-09-13 21:26:29 +07:00
hathach cdc63459eb esp32sx implement dcd_remote_wakeup(), fully compliance to chapter9 test suite 2021-09-13 16:49:38 +07:00
hathach e64bfb9ff5 implement dcd_edpt_close_all(), pass chapter9 test suite (without remote wakeup) 2021-09-13 16:16:37 +07:00
szymonh 50e3c0054f Add size check to tud_bt_hci_cmd_cb call in bth_device.c 2021-09-13 10:23:03 +02:00
hathach 43e6555fd0 clean up 2021-09-13 13:09:38 +07:00
hathach ce5db06ba0 clear PID along with clear stall 2021-09-13 12:05:49 +07:00
hathach 6feda5ae8f Merge branch 'nuc_wkp' of https://github.com/HiFiPhile/tinyusb into HiFiPhile-nuc_wkp 2021-09-13 11:52:16 +07:00
szymonh d5f2c34eaa Prevent buffer overflow in bth_device.c 2021-09-12 20:24:54 +02:00
hathach 9bed4e2e21 refactor nxp TDI dcd_edpt_xfer_fifo 2021-09-13 00:45:15 +07:00
hathach 038ec341f8 Merge branch 'fifo_dcd_transdimension' of https://github.com/HiFiPhile/tinyusb 2021-09-12 17:39:32 +07:00
hathach dd60ce784c nxp tdi: implement dcd edpt close all 2021-09-11 21:29:04 +07:00
hathach 1f7ade2b75 nxp tdi: fix error td prevent further transfer 2021-09-11 19:27:37 +07:00
MasterPhi 22571ec98e reset PID to DATA0 on clear_stall. 2021-09-10 16:04:47 +02:00
MasterPhi 8886de0d8a Fix remote_wakeup 2021-09-10 13:05:15 +02:00
MasterPhi 580893b3fe Shorter expr. 2021-09-10 11:17:33 +02:00
kkitayam 2998f67eac Fix dcd_edpt_clear_stall to reset data toggle 2021-09-10 00:18:43 +09:00
Mengsk 283783c082 dcd_edpt_xfer_fifo: use qtd_init if restriction not met. 2021-09-09 16:45:18 +02:00
hathach ad8c0ee818
nxp tdi: enhance qhd using DCD_ATTR_ENDPOINT_MAX 2021-09-09 20:26:03 +07:00
hathach f948cbe471
nxp tdi implement remote wakeup
enhance bus reset, unplugged, suspend, resume detection
2021-09-09 17:04:04 +07:00
hathach 27800f7e4f
remove connected check for DCD_EVENT_UNPLUGGED since previous bus reset can clear this
implement unplugged detection for trans dimension dcd
2021-09-09 16:01:05 +07:00
hathach f81368174b
add other speed descriptor callback tud_descriptor_other_speed_configuration_cb()
example implement tud_descriptor_device_qualifier_cb() and
tud_descriptor_other_speed_configuration_cb() on high speed device to
fully compliant to usbcv
2021-09-09 15:17:19 +07:00
kkitayam 780852efb3 Fix stall handling 2021-09-09 00:55:02 +09:00
kkitayam 22b5b47045 Implement dcd_edpt_close_all for NXP khci 2021-09-08 21:52:27 +09:00
Ha Thach d66d817c38
Merge pull request #1080 from hathach/rx-msc-compliance
Renesas RX reset PID to DATA0 when open endpoint
2021-09-08 18:31:42 +07:00
Ha Thach 5f141a4c13
Merge pull request #1077 from hathach/st-synopsy-compliance
St synopsy compliance
2021-09-08 18:00:44 +07:00
hathach d077574097 reset PID to DATA0 when open endpoint 2021-09-08 17:56:22 +07:00
Ha Thach c5e6e87d13
Merge pull request #1076 from kkitayam/impl_close_all_for_rx
Implement dcd_edpt_close_all() for Renesas RX family
2021-09-08 17:53:42 +07:00
hathach 67e80f60e3 fix build with gd32vf103 2021-09-08 13:35:11 +07:00