CachyOS / CachyOS/linux-cachyos

[BUG] DS4 controller polling rate anomaly on CachyOS kernel

Open
#729 3 comments 0 reactions 3 assignees Claimed by @ventureoo View on GitHub
bug
Dominant language
Shell
Stars
4.5k
Forks
160
Avg merge
2d 12h
Merged PRs (30d)
1

Description

### Pre-flight checklist

- [x] I have searched existing issues and this is not a duplicate.
- [x] I have read the [Contributing Guidelines](https://github.com/CachyOS/linux-cachyos/blob/master/CONTRIBUTING.md).
- [x] I have verified the issue is reproducible with the latest available CachyOS kernel.

### Upstream / vanilla kernel check

I tested with a vanilla/upstream kernel and the issue does NOT reproduce there (CachyOS-specific bug)

### Kernel variant

linux-cachyos (EEVDF, Clang)

### System information (cachyos-bugreport.sh)

```text
https://paste.cachyos.org/p/543482e.log
```

### Manual system information (if cachyos-bugreport.sh is unavailable)

```text

```

### Bug description

When using a DualShock 4 (v1) controller via Bluetooth with the CachyOS kernel, `ehvz` reports polling rates of up to 20kHz (impossible for the DS4's puny BT chip and impossible for my beefy laptop). When playing, this results in input lag and eaten inputs.

```
# Test 1
Average for Wireless Controller: 11890Hz

Average for Wireless Controller Motion Sensors: 3164Hz

# Test 2
Average for Wireless Controller: 7653Hz

Average for Wireless Controller Motion Sensors: 8853Hz
```

I've tried with a Joy-Con, and it seems to work just fine (maybe a little slow?):

```
# Test 1
Average for Joy-Con (L): 61Hz

# Test 2
Average for Joy-Con (L): 57Hz
```

I've also tried with the latest Arch kernel, and polling rates with the DS4 look normal:

```
Average for Wireless Controller: 213Hz

Average for Wireless Controller Motion Sensors: 257Hz
```

Connecting the DS4 through USB works perfectly.

I'm wired, so Wi-Fi interference shouldn't be a problem.

### Steps to reproduce

1. Connect a DualShock (v1) controller through Bluetooth.
2. Open a terminal and run `sudo ehvz`.
3. Press some buttons and move sticks to register inputs.
4. Press CTRL+C to exit and see the output.

### Expected behavior

Polling rates of the DS4 < 1000Hz (1ms).

### Actual behavior

Impossible polling rates on DS4.

### Logs / stack traces

```text

```

### Additional system information

Made sure to be using `hid-playstation` and not `hid-sony`.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.