Skip to content

follow up to PR3506#3509

Merged
hathach merged 2 commits into
masterfrom
pr3506-followup
Feb 24, 2026
Merged

follow up to PR3506#3509
hathach merged 2 commits into
masterfrom
pr3506-followup

Conversation

@hathach
Copy link
Copy Markdown
Owner

@hathach hathach commented Feb 23, 2026

No additional information provided.

Copilot AI review requested due to automatic review settings February 23, 2026 08:59
Copy link
Copy Markdown
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 PR is a follow-up to PR3506 that performs code cleanup and refactoring in the DWC2 USB driver. The changes improve variable naming consistency and clarify the distinction between PHY capability and actual operating mode.

Changes:

  • Renamed function parameter from highspeed_phy to is_hs_phy in dwc2_core_init() for clarity
  • Modified dfifo_host_init() to accept runtime operating speed instead of PHY capability
  • Applied consistent indentation to preprocessor directives inside functions (2-space indentation)
  • Minor whitespace cleanup and comment improvements

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated no comments.

File Description
src/portable/synopsys/dwc2/hcd_dwc2.c Updated variable naming from highspeed_phy to is_hs_phy, changed dfifo_host_init to accept runtime is_highspeed parameter instead of querying PHY capability, applied consistent preprocessor directive indentation
src/portable/synopsys/dwc2/dwc2_common.h Updated function declaration parameter name from highspeed_phy to is_hs_phy
src/portable/synopsys/dwc2/dwc2_common.c Updated function implementation parameter name from highspeed_phy to is_hs_phy
src/portable/synopsys/dwc2/dcd_dwc2.c Updated variable naming from highspeed_phy to is_hs_phy for consistency

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

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 1eef6f4f4f

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/portable/synopsys/dwc2/hcd_dwc2.c Outdated
// disable high speed mode
dwc2->hcfg |= HCFG_FSLS_ONLY;
bool is_highspeed;
if (!TUH_OPT_HIGH_SPEED || rh_init->speed < TUSB_SPEED_HIGH) {
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Gate HS FIFO sizing on selected PHY

This branch derives is_highspeed only from TUH_OPT_HIGH_SPEED and rh_init->speed, but dwc2_core_init() may already have selected a full-speed PHY (is_hs_phy == false) in the same function. In that mismatch case (e.g. no HS PHY available or HS PHY disabled via DWC2 config), dfifo_host_init() is called with is_highspeed=true and allocates HS-sized FIFOs, which can exceed FS FIFO budgets and trigger the internal TU_ASSERT, leaving FIFO registers uninitialized; before this commit, FIFO sizing followed dwc2_core_is_highspeed_phy() and avoided that regression.

Useful? React with 👍 / 👎.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Feb 23, 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

file .text .rodata size % diff
dwc2_common.c 590 ➙ 601 (+11) 30 607 ➙ 618 (+11) +1.8%
TOTAL 590 ➙ 601 (+11) 30 607 ➙ 618 (+11) +1.8%

Changes <1% in size

file .text .rodata .data .bss size % diff
hcd_dwc2.c 4968 ➙ 4970 (+2) 32 1 512 5513 ➙ 5516 (+3) +0.1%
TOTAL 4968 ➙ 4970 (+2) 32 1 512 5513 ➙ 5516 (+3) +0.1%
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%
cdc_host.c 6596 487 15 1539 8357 +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%
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_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 107725 1097 16742 44999 154766 +0.0%

Comment thread src/portable/synopsys/dwc2/hcd_dwc2.c Outdated
// configure fixed-allocated fifo scheme
dfifo_host_init(rhport);
// configure a fixed-allocated fifo scheme
dfifo_host_init(rhport, is_highspeed);
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Sorry if I don't really know what I'm talking about, but Is it really a good idea to reduce the size of the buffers if the core is able to have bigger buffers?

There is this comment in dfifo_host_init() that implies that a "small" buffer is allocated because of the core limitation:

// - ptx_largest is limited to 256 for FS since most FS core only has 1024 bytes total

But that certainly does not apply if the core is HS-capable.

Copy link
Copy Markdown
Owner Author

@hathach hathach Feb 23, 2026

Choose a reason for hiding this comment

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

hmm, you are right. Maybe it is ok just leave it as before.

} else {
const bool has_fs_phy = (ghwcfg2.fs_phy_type != GHWCFG2_FSPHY_NOT_SUPPORTED);
// false if has fs phy, otherwise true since hs phy is the only available phy
return !has_fs_phy && has_hs_phy;
Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

@HiFiPhile U5 fall into this category with UTMI+ without fs_phy

@hathach hathach merged commit 2e5d566 into master Feb 24, 2026
305 checks passed
@hathach hathach deleted the pr3506-followup branch February 24, 2026 04:52
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.

3 participants