Jump to content

[Pull Request] - Enable rockchip64: XHCI HCD USB TRB ENT quirk for RK3328


RSS Bot

Recommended Posts

This resolves a bug that affects r8153b USB network interface causing the RX interface to hang on load.

On some xHCI controllers (e.g. Rockchip RK3399/RK3328/RK1808), they need to enable the ENT flag in the TRB data structure to force xHC to prefetch the next TRB of a TD. The quirk patch is already applied to dwc3 xhci usb on rockchip64, and enabled for rk3399.

Enable the quirk on RK3328 through device tree node properties in rk3328.dtsi

Description

This resolves a bug that affects r8153b USB network interface causing the RX interface to hang on load on Orange Pi R1plus LTS and has been reported in Nano Pi R2S and probably affects Orange Pi R1plus and others using USB3.

On some xHCI controllers (e.g. Rockchip RK3399/RK3328/RK1808), they need to enable the ENT flag in the TRB data structure to force xHC to prefetch the next TRB of a TD. The quirk patch is already applied to dwc3 xhci usb on rockchip64.

Enable the quirk on RK3328 through device tree node properties in rk3328.dtsi

Jira reference number AR-1172

How Has This Been Tested?

Please describe the tests that you ran to verify your changes. Please also note any relevant details for your test configuration. Functional testing on Orange Pi R1plus LTS with 5.15y current: Speeds are similar to those achieved on 5.10 with the old driver. Iperf in the TX direction only: 883 Mbits/sec Iperf in the RX direction only: 699 Mbits/sec

Testing bidirectional with two parallel iperf sessions: Without speed limitations RX 651 Mbits/sec TX 307 Mbits/sec With TX limited to 300 Mbits/sec RX about 640 Mbits/sec With RX limited to 300 Mbits/sec TX about 600 Mbits/sec So total bidirectional bandwidth TX + RX seems approximately around 900 Mbits/sec

Sustained iperf bidirectional load RX limited to 300 Mbits/sec was applied for 20 minutes without issues Sustained iperf bidirectional load TX limited to 300 Mbits/sec was applied for 20 minutes without issues Sustained iperf bidirectional load with no limitations was applied for 20 minutes without issues

Functional testing on 5.17y edge: Testing bidirectional 20 minutes with two parallel iperf sessions: Without speed limitations RX 649 Mbits/sec TX 309 Mbits/sec

Checklist:

  • [Y ] My code follows the style guidelines of this project
  • [ Y] I have performed a self-review of my own code
  • [Y ] I have commented my code, particularly in hard-to-understand areas
  • [ ] I have made corresponding changes to the documentation
  • [Y] My changes generate no new warnings
  • [ ] Any dependent changes have been merged and published in downstream modules

View the full article

Link to comment
Share on other sites

×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines