usb: xhci: default to Intel scheme for calculating U1/U2 timeouts#6794
Merged
pelwell merged 1 commit intoraspberrypi:rpi-6.12.yfrom Apr 16, 2025
Merged
usb: xhci: default to Intel scheme for calculating U1/U2 timeouts#6794pelwell merged 1 commit intoraspberrypi:rpi-6.12.yfrom
pelwell merged 1 commit intoraspberrypi:rpi-6.12.yfrom
Conversation
By default, the System Exit Latency and Maximum Exit Latency are used to calculate hub port U1 and U2 timeout values. This has the effect of aggressively power-managing a SuperSpeed link but devices are known to report unfeasibly short device exit latencies in their descriptors, which under certain usage conditions can significantly degrade throughput as the link spends longer retraining than being in a useable state. The Intel heuristic approach calculates a reasonably large endpoint-dependent U1 timeout, and uses a minimum U2 timeout that is several multiples of typical U2 exit latencies. Add a module parameter that defaults to using this scheme. This should have the effect of squelching interop edge-cases where LPM noticeably degrades performance, and avoid the usual workaround where userspace manually disables it. Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
popcornmix
added a commit
to raspberrypi/firmware
that referenced
this pull request
Apr 26, 2025
kernel: lockdep fixes for imx708 and imx477 See: raspberrypi/linux#6813 kernel: drm/vc4: plane: Fix incorrect handling of GEN_6_D in vc4_plane_async_set_fb See: raspberrypi/linux#6811 kernel: configs: Enable UNICODE support (for filesystems) See: raspberrypi/linux#6809 kernel: configs: Enable the EROFS read-only filesystem See: raspberrypi/linux#6806 kernel: overlays: Add aht20 support to i2c-sensor See: raspberrypi/linux#6805 kernel: 6.12/iob/topic/imx335 See: raspberrypi/linux#6804 kernel: hwmon: aht10: Fix AHT20 initialization See: raspberrypi/linux#6803 kernel: drm/vc4: plane: Use nearest neighbour filter with YUV444 workaround See: raspberrypi/linux#6796 kernel: dtoverlays: Create Pi5 variant of tc358743 overlay See: raspberrypi/linux#6795 kernel: usb: xhci: default to Intel scheme for calculating U1/U2 timeouts See: raspberrypi/linux#6794 kernel: Add TCS3472 and VEML6040 sensor support (and a few others) See: raspberrypi/linux#6448 kernel: drm/vc4: plane: Increase UPM allocation size for YUV444 See: raspberrypi/linux#6791 kernel: media: i2c: imx219: Restore the 1920x1080 to using a 1:1 PAR See: raspberrypi/linux#6793
popcornmix
added a commit
to raspberrypi/rpi-firmware
that referenced
this pull request
Apr 26, 2025
kernel: lockdep fixes for imx708 and imx477 See: raspberrypi/linux#6813 kernel: drm/vc4: plane: Fix incorrect handling of GEN_6_D in vc4_plane_async_set_fb See: raspberrypi/linux#6811 kernel: configs: Enable UNICODE support (for filesystems) See: raspberrypi/linux#6809 kernel: configs: Enable the EROFS read-only filesystem See: raspberrypi/linux#6806 kernel: overlays: Add aht20 support to i2c-sensor See: raspberrypi/linux#6805 kernel: 6.12/iob/topic/imx335 See: raspberrypi/linux#6804 kernel: hwmon: aht10: Fix AHT20 initialization See: raspberrypi/linux#6803 kernel: drm/vc4: plane: Use nearest neighbour filter with YUV444 workaround See: raspberrypi/linux#6796 kernel: dtoverlays: Create Pi5 variant of tc358743 overlay See: raspberrypi/linux#6795 kernel: usb: xhci: default to Intel scheme for calculating U1/U2 timeouts See: raspberrypi/linux#6794 kernel: Add TCS3472 and VEML6040 sensor support (and a few others) See: raspberrypi/linux#6448 kernel: drm/vc4: plane: Increase UPM allocation size for YUV444 See: raspberrypi/linux#6791 kernel: media: i2c: imx219: Restore the 1920x1080 to using a 1:1 PAR See: raspberrypi/linux#6793
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This is a bit of a downstream wart, but after benchmarking piles of pendrive offerings, it's a net benefit. The most-affected use-case is an IO depth of 1 on a UAS device, or back-to-back short IO requests on a UMS device.
It may also be of use for raspberrypi/rpi-eeprom#692