Bug 204877

Summary: [Regression] Linux 5.3 breaks connecting a DualShock 4 controller via bluetooth
Product: Drivers Reporter: oschowa
Component: BluetoothAssignee: linux-bluetooth (linux-bluetooth)
Status: NEW ---    
Severity: normal CC: aeikum, andrew.smirnov, antoine.saroufim, atosser, ben.r.xiao, edgbla, john.ettedgui+kernel, john, kyazawa, robin.langenc, Vash63, wberrier
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 5.3 Subsystem:
Regression: No Bisected commit-id:

Description oschowa 2019-09-16 11:11:22 UTC
Distribution: Arch Linux
Kernel: 5.3 mainline
Hardware: DualShock4v1 and Intel Wireless-AC 9260 for bluetooth

Since kernel 5.3 a DualShock4 controller fails to connect properly via bluetooth with the following in dmesg:

[   69.529697] sony 0005:054C:05C4.000B: unknown main item tag 0x0
[   69.529879] sony 0005:054C:05C4.000B: DualShock 4 calibration report's CRC check failed, received crc 0x1cffff88 != 0xeb31207e
[   69.529880] sony 0005:054C:05C4.000B: Retrying DualShock 4 get calibration report request
[   69.529885] sony 0005:054C:05C4.000B: DualShock 4 calibration report's CRC check failed, received crc 0x1cffff88 != 0xeb31207e
[   69.529886] sony 0005:054C:05C4.000B: Retrying DualShock 4 get calibration report request
[   69.529899] sony 0005:054C:05C4.000B: DualShock 4 calibration report's CRC check failed, received crc 0x1cffff88 != 0xeb31207e
[   69.529901] sony 0005:054C:05C4.000B: Failed to get calibration data from Dualshock 4
[   69.530370] sony 0005:054C:05C4.000B: hidraw8: BLUETOOTH HID v81.00 Gamepad [Wireless Controller] on a0:51:0b:5a:40:50
[   69.530372] sony 0005:054C:05C4.000B: failed to claim input

Repairing doesn't bring any change. Connection via usb still works. Reverting to kernel 5.2.14 restores porper functionallity.
Comment 1 George Gibbs 2019-09-16 13:34:42 UTC
I can duplicate this issue on both a DS4 v1 (model CUH-ZTC1U) and a v2 (model CUH-ZCT2U), though the crc check numbers are slightly different.

CUH-ZTC1U:
kernel: sony 0005:054C:05C4.0017: unknown main item tag 0x0
kernel: sony 0005:054C:05C4.0017: DualShock 4 calibration report's CRC check failed, received crc 0x1cffff8c != 0xdfe3b226
kernel: sony 0005:054C:05C4.0017: Retrying DualShock 4 get calibration report request
kernel: sony 0005:054C:05C4.0017: DualShock 4 calibration report's CRC check failed, received crc 0x1cffff8c != 0xdfe3b226
kernel: sony 0005:054C:05C4.0017: Retrying DualShock 4 get calibration report request
kernel: sony 0005:054C:05C4.0017: DualShock 4 calibration report's CRC check failed, received crc 0x1cffff8c != 0xdfe3b226
kernel: sony 0005:054C:05C4.0017: Failed to get calibration data from Dualshock 4
kernel: sony 0005:054C:05C4.0017: hidraw18: BLUETOOTH HID v81.00 Gamepad [Wireless Controller] on a0:c5:89:b5:44:e1
kernel: sony 0005:054C:05C4.0017: failed to claim input

CUH-ZCT2U:
kernel: sony 0005:054C:09CC.0019: unknown main item tag 0x0
kernel: sony 0005:054C:09CC.0019: DualShock 4 calibration report's CRC check failed, received crc 0x1cffff8c != 0x48b66901
kernel: sony 0005:054C:09CC.0019: Retrying DualShock 4 get calibration report request
kernel: sony 0005:054C:09CC.0019: DualShock 4 calibration report's CRC check failed, received crc 0x1cffff8c != 0x48b66901
kernel: sony 0005:054C:09CC.0019: Retrying DualShock 4 get calibration report request
kernel: sony 0005:054C:09CC.0019: DualShock 4 calibration report's CRC check failed, received crc 0x1cffff8c != 0x48b66901
kernel: sony 0005:054C:09CC.0019: Failed to get calibration data from Dualshock 4
kernel: sony 0005:054C:09CC.0019: hidraw19: BLUETOOTH HID v80.01 Gamepad [Wireless Controller] on a0:c5:89:b5:44:e1
kernel: sony 0005:054C:09CC.0019: failed to claim input
Comment 2 Novi 2019-09-20 20:20:25 UTC
Distribution: Gentoo Linux
Kernel: gentoo-5.3.0
Hardware: 
    DualShock 4 v1
    Intel Corporation Wireless 8265 / 8275 [8086:24fd] (rev 78)

Confirm affects my model 1 DS4 (CUH-ZTC1U).

[158663.706012] sony 0005:054C:05C4.0019: unknown main item tag 0x0
[158663.706084] sony 0005:054C:05C4.0019: DualShock 4 calibration report's CRC check failed, received crc 0x1cffff94 != 0x5e1d3aa3
[158663.706085] sony 0005:054C:05C4.0019: Retrying DualShock 4 get calibration report request
[158663.706087] sony 0005:054C:05C4.0019: DualShock 4 calibration report's CRC check failed, received crc 0x1cffff94 != 0x5e1d3aa3
[158663.706087] sony 0005:054C:05C4.0019: Retrying DualShock 4 get calibration report request
[158663.706090] sony 0005:054C:05C4.0019: DualShock 4 calibration report's CRC check failed, received crc 0x1cffff94 != 0x5e1d3aa3
[158663.706091] sony 0005:054C:05C4.0019: Failed to get calibration data from Dualshock 4
[158663.706131] sony 0005:054C:05C4.0019: hidraw11: BLUETOOTH HID v81.00 Gamepad [Wireless Controller] on 74:70:fd:1a:b1:5b
[158663.706131] sony 0005:054C:05C4.0019: failed to claim input
Comment 3 Robin Lange 2019-09-21 08:18:11 UTC
Can confirm the same bug happens with a different wireless chip. Same error messages.

Distribution: Archlinux
Kernel: 5.3.0-mainline from package linux-mainline
Wireless chip: Qualcomm Atheros QCA6174 802.11ac Wireless Network Adapter
Kernel driver: ath10k_pci
Controller: DualShock 4 V2

[   79.020352] sony 0005:054C:09CC.0008: unknown main item tag 0x0
[   79.020463] sony 0005:054C:09CC.0008: DualShock 4 calibration report's CRC check failed, received crc 0x1cffff8e != 0x732859f2
[   79.020463] sony 0005:054C:09CC.0008: Retrying DualShock 4 get calibration report request
[   79.020465] sony 0005:054C:09CC.0008: DualShock 4 calibration report's CRC check failed, received crc 0x1cffff8e != 0x732859f2
[   79.020466] sony 0005:054C:09CC.0008: Retrying DualShock 4 get calibration report request
[   79.020467] sony 0005:054C:09CC.0008: DualShock 4 calibration report's CRC check failed, received crc 0x1cffff8e != 0x732859f2
[   79.020467] sony 0005:054C:09CC.0008: Failed to get calibration data from Dualshock 4
[   79.020587] sony 0005:054C:09CC.0008: hidraw7: BLUETOOTH HID v81.00 Gamepad [Wireless Controller] on 9c:b6:d0:68:cd:b6
[   79.020588] sony 0005:054C:09CC.0008: failed to claim input
Comment 5 George Gibbs 2019-09-22 00:43:58 UTC
(In reply to Andrey Smirnov from comment #4)
> AFAICT this issue should be fixed by:
> 
> https://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next.git/
> commit/?id=8bb3537095f107ed55ad51f6241165b397aaafac

Thanks, just tested with this patch and it's working great for me now.
Comment 6 Robin Lange 2019-09-22 01:30:44 UTC
Can confirm that commit fixes the bug here too.
Comment 7 oschowa 2019-10-02 09:42:41 UTC
I can also confirm that the commit fixes the issues.
It would be nice if this could be included in a future 5.3.x stable release,
I'll close the bug once this happens.