Skip to content

usb: xhci: default to Intel scheme for calculating U1/U2 timeouts#6794

Merged
pelwell merged 1 commit intoraspberrypi:rpi-6.12.yfrom
P33M:intel_lpm
Apr 16, 2025
Merged

usb: xhci: default to Intel scheme for calculating U1/U2 timeouts#6794
pelwell merged 1 commit intoraspberrypi:rpi-6.12.yfrom
P33M:intel_lpm

Conversation

@P33M
Copy link
Copy Markdown
Contributor

@P33M P33M commented Apr 15, 2025

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

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>
@pelwell pelwell merged commit fbadc72 into raspberrypi:rpi-6.12.y Apr 16, 2025
12 of 13 checks passed
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
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.

2 participants