Skip to content

Fix musb RXRDY Clearing#3594

Open
BrentK-ADI wants to merge 1 commit intohathach:masterfrom
BrentK-ADI:musb_rx_fifo_fixes
Open

Fix musb RXRDY Clearing#3594
BrentK-ADI wants to merge 1 commit intohathach:masterfrom
BrentK-ADI:musb_rx_fifo_fixes

Conversation

@BrentK-ADI
Copy link
Copy Markdown
Contributor

@BrentK-ADI BrentK-ADI commented Apr 10, 2026

Resolves an issue in the musb handle_xfer_out function where not all execution paths cleared the MUSB_RXCSRL1_RXRDY bit, causing the RX interface to hang and no longer communicate with the host.

This issue was discovered while using the RNDIS class in a media converter application. When running iperf testing at full speed (10Mbps link) the USB stack was under constant load of packets and eventually would stop receiving new frames from the host PC. Other USB events and interrupts were still occurring.

It is believed the root cause was the RXRDY bit not being cleared in all data paths of the xfer handler, resulting in the peripheral no longer accepting new frames into the FIFO. Applying this change allowed continuous operation under these high traffic conditions without lockup.

Verification Testing

Testing was performed with 2x MAX32690's acting as RNDIS to 10Mbps single pair ethernet media converters, connected to Linux PCs. Bidirectional iperf was run for 12 hours resulting in each MCU sending and receiving 18M+ packets (~24 GB) in each direction with no driver lock ups of failures. Prior to these updates, testing would fail within minutes.

@BrentK-ADI BrentK-ADI marked this pull request as draft April 10, 2026 19:27
Resolves an issue in the musb handle_xfer_out function where not all
execution paths cleared the MUSB_RXCSRL1_RXRDY bit, causing the RX
interface to hang and no longer communicate with the host.

Signed-off-by: Brent Kowal <brent.kowal@analog.com>
@BrentK-ADI BrentK-ADI marked this pull request as ready for review April 11, 2026 11:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant