Skip to content

Fix FTDI host multi-channel loop and update documentation#3513

Merged
hathach merged 1 commit intomasterfrom
fix-cdch-ftdi-mulitple-channel
Feb 25, 2026
Merged

Fix FTDI host multi-channel loop and update documentation#3513
hathach merged 1 commit intomasterfrom
fix-cdch-ftdi-mulitple-channel

Conversation

@hathach
Copy link
Owner

@hathach hathach commented Feb 24, 2026

Description

This pull request includes the following updates:

Copilot AI review requested due to automatic review settings February 24, 2026 16:48
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request fixes a critical bug in the FTDI multi-channel CDC host driver, corrects a function name typo, and adds comprehensive J-Link GDB Server documentation for RTT logging.

Changes:

  • Fixed FTDI multi-channel loop bug where non-zero interface numbers would skip channel assignment, causing incorrect operation for multi-channel FTDI devices
  • Corrected spelling of ftdi_proccess_set_config to ftdi_process_set_config throughout the codebase
  • Refactored and improved cdch_set_config function with complete xfer structure initialization and more direct driver invocation
  • Added detailed J-Link GDB Server + RTT logging instructions to AGENTS.md with practical examples

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
src/class/cdc/cdc_host.c Fixed FTDI multi-channel bug by ensuring all interfaces call ftdi_determine_type() to properly set channel numbers; corrected typo in function name; improved cdch_set_config with complete initialization; added clang-format directives for array formatting
AGENTS.md Added comprehensive J-Link GDB Server + RTT logging section with practical commands for building, flashing, launching GDB server, reading RTT output, and capturing logs to files

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@github-actions
Copy link

github-actions bot commented Feb 24, 2026

Size Difference Report

Because TinyUSB code size varies by port and configuration, the metrics below represent the averaged totals across all example builds.

Note: If there is no change, only one value is shown.

Changes >1% in size

No entries.

Changes <1% in size

file .text .rodata .data .bss size % diff
cdc_host.c 6596 ➙ 6610 (+14) 487 15 1539 8357 ➙ 8371 (+14) +0.2%
TOTAL 6596 ➙ 6610 (+14) 487 15 1539 8357 ➙ 8371 (+14) +0.2%
No changes
file .text .rodata .data .bss size % diff
audio_device.c 2849 0 1248 1673 4518 +0.0%
cdc_device.c 1328 16 19 661 1988 +0.0%
dcd_ch32_usbfs.c 1472 0 0 2444 3916 +0.0%
dcd_ch32_usbhs.c 1648 0 0 448 2096 +0.0%
dcd_ci_fs.c 1925 0 0 1290 3215 +0.0%
dcd_ci_hs.c 1762 0 0 1280 2530 +0.0%
dcd_da146xx.c 3067 0 0 144 3211 +0.0%
dcd_dwc2.c 4174 25 0 265 4463 +0.0%
dcd_eptri.c 2270 0 0 259 2529 +0.0%
dcd_khci.c 1953 0 0 1290 3243 +0.0%
dcd_lpc17_40.c 1470 0 0 648 1794 +0.0%
dcd_lpc_ip3511.c 1463 0 0 264 1639 +0.0%
dcd_mm32f327x_otg.c 1478 0 0 1290 2768 +0.0%
dcd_msp430x5xx.c 1796 0 0 176 1972 +0.0%
dcd_musb.c 2446 0 0 160 2606 +0.0%
dcd_nrf5x.c 2919 0 0 292 3211 +0.0%
dcd_nuc120.c 1093 0 0 78 1171 +0.0%
dcd_nuc121.c 1167 0 0 101 1268 +0.0%
dcd_nuc505.c 0 0 1529 157 1686 +0.0%
dcd_rp2040.c 859 20 604 655 2138 +0.0%
dcd_rusb2.c 2917 0 0 156 3073 +0.0%
dcd_samd.c 1032 0 0 266 1298 +0.0%
dcd_samg.c 1319 0 0 72 1391 +0.0%
dcd_stm32_fsdev.c 2557 0 0 291 2848 +0.0%
dfu_device.c 744 28 712 183 926 +0.0%
dfu_rt_device.c 156 0 134 0 156 +0.0%
dwc2_common.c 601 30 0 0 618 +0.0%
ecm_rndis_device.c 1037 0 1 2272 3310 +0.0%
ehci.c 2761 0 0 5970 7537 +0.0%
fsdev_common.c 180 0 0 0 180 +0.0%
hcd_ch32_usbfs.c 2484 0 0 498 2982 +0.0%
hcd_ci_hs.c 190 0 0 0 190 +0.0%
hcd_dwc2.c 4970 32 1 512 5516 +0.0%
hcd_khci.c 2442 0 0 449 2891 +0.0%
hcd_musb.c 3073 0 0 157 3230 +0.0%
hcd_pio_usb.c 262 0 240 0 502 +0.0%
hcd_rp2040.c 976 73 416 384 1849 +0.0%
hcd_rusb2.c 2923 0 0 245 3168 +0.0%
hcd_samd.c 2220 0 0 324 2544 +0.0%
hcd_stm32_fsdev.c 3282 0 1 420 3703 +0.0%
hid_device.c 1118 44 997 115 1233 +0.0%
hid_host.c 1206 0 0 1250 2456 +0.0%
hub.c 1235 8 8 29 1268 +0.0%
midi_device.c 1127 0 991 589 1714 +0.0%
midi_host.c 1353 7 7 3740 5097 +0.0%
msc_device.c 2518 108 2286 538 3056 +0.0%
msc_host.c 1589 0 0 394 1984 +0.0%
mtp_device.c 1689 22 1449 579 2275 +0.0%
ncm_device.c 1514 28 1408 5830 7358 +0.0%
ohci.c 1942 0 0 2414 4356 +0.0%
rp2040_usb.c 172 75 718 4 969 +0.0%
rusb2_common.c 160 0 16 0 176 +0.0%
tusb.c 429 0 368 3 430 +0.0%
tusb_fifo.c 843 0 477 0 838 +0.0%
typec_stm32.c 820 8 2 12 842 +0.0%
usbc.c 420 2 20 166 608 +0.0%
usbd.c 3191 57 89 276 3531 +0.0%
usbd_control.c 523 0 474 78 600 +0.0%
usbh.c 4395 60 63 954 5436 +0.0%
usbtmc_device.c 2176 24 69 291 2500 +0.0%
vendor_device.c 624 0 530 464 1087 +0.0%
video_device.c 4391 5 1851 472 4855 +0.0%
TOTAL 106700 672 16728 43972 152543 +0.0%

fix typos for ftdi_process_set_config()
add J-Link GDB + RTT logging instructions
@hathach hathach force-pushed the fix-cdch-ftdi-mulitple-channel branch from 7fce9aa to da21dab Compare February 25, 2026 03:05
@hathach hathach merged commit bd1e79b into master Feb 25, 2026
305 checks passed
@hathach hathach deleted the fix-cdch-ftdi-mulitple-channel branch February 25, 2026 03:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Infinite Loop in Multi-Channel FTDI Chip Initialisation

2 participants