Sony WH-1000X M3 bluetooth issue

My Sony WH-1000X M3 bluetooth headphone produces various strange things for a long while. Current symptom: the sound is strongly distorted on my manjaro machine. Voice is understandable, but it is very challenging, and no fun at all. In another devices (android & windows) it works fine. I’ve tried multiple kernel versions and I’ve tried everything related I’ve found on the internet. I’ve gathered many information, but it was little help. Does anybody spot the issue from the information below?

Bluetooth status:

● bluetooth.service - Bluetooth service
     Loaded: loaded (/usr/lib/systemd/system/bluetooth.service; enabled; vendor preset: disabled)
     Active: active (running) since Tue 2022-03-15 17:10:53 CET; 4 weeks 0 days ago
       Docs: man:bluetoothd(8)
   Main PID: 1383 (bluetoothd)
     Status: "Running"
      Tasks: 1 (limit: 18416)
     Memory: 2.9M
        CPU: 10min 45.688s
     CGroup: /system.slice/bluetooth.service
             └─1383 /usr/lib/bluetooth/bluetoothd

Apr 12 08:51:05 adrian bluetoothd[1383]: Endpoint registered: sender=:1.69 path=/MediaEndpoint/A2DPSource/sbc
Apr 12 08:51:05 adrian bluetoothd[1383]: Endpoint registered: sender=:1.69 path=/MediaEndpoint/A2DPSink/sbc_xq_453
Apr 12 08:51:05 adrian bluetoothd[1383]: Endpoint registered: sender=:1.69 path=/MediaEndpoint/A2DPSource/sbc_xq_453
Apr 12 08:51:05 adrian bluetoothd[1383]: Endpoint registered: sender=:1.69 path=/MediaEndpoint/A2DPSink/sbc_xq_512
Apr 12 08:51:05 adrian bluetoothd[1383]: Endpoint registered: sender=:1.69 path=/MediaEndpoint/A2DPSource/sbc_xq_512
Apr 12 08:51:05 adrian bluetoothd[1383]: Endpoint registered: sender=:1.69 path=/MediaEndpoint/A2DPSink/sbc_xq_552
Apr 12 08:51:05 adrian bluetoothd[1383]: Endpoint registered: sender=:1.69 path=/MediaEndpoint/A2DPSource/sbc_xq_552
Apr 12 23:40:07 adrian bluetoothd[1383]: src/adv_monitor.c:btd_adv_monitor_offload_supported() Manager is NULL, get offload support failed
Apr 12 23:40:08 adrian bluetoothd[1383]: src/adv_monitor.c:btd_adv_monitor_offload_supported() Manager is NULL, get offload support failed
Apr 12 23:40:14 adrian bluetoothd[1383]: /org/bluez/hci0/dev_38_18_4C_BE_C6_B2/sep5/fd6: fd(43) ready

After restarting the bluetooth system:

● bluetooth.service - Bluetooth service
     Loaded: loaded (/usr/lib/systemd/system/bluetooth.service; enabled; vendor preset: disabled)
     Active: active (running) since Tue 2022-04-12 23:57:12 CEST; 56s ago
       Docs: man:bluetoothd(8)
   Main PID: 1125647 (bluetoothd)
     Status: "Running"
      Tasks: 1 (limit: 18416)
     Memory: 2.8M
        CPU: 169ms
     CGroup: /system.slice/bluetooth.service
             └─1125647 /usr/lib/bluetooth/bluetoothd

Apr 12 23:57:24 adrian bluetoothd[1125647]: profiles/input/hog-lib.c:report_value_cb() bt_uhid_send: Invalid argument (22)
Apr 12 23:57:24 adrian bluetoothd[1125647]: profiles/input/hog-lib.c:report_value_cb() bt_uhid_send: Invalid argument (22)
Apr 12 23:57:24 adrian bluetoothd[1125647]: profiles/input/hog-lib.c:report_value_cb() bt_uhid_send: Invalid argument (22)
Apr 12 23:57:24 adrian bluetoothd[1125647]: profiles/input/hog-lib.c:report_value_cb() bt_uhid_send: Invalid argument (22)
Apr 12 23:57:24 adrian bluetoothd[1125647]: profiles/input/hog-lib.c:report_value_cb() bt_uhid_send: Invalid argument (22)
Apr 12 23:57:24 adrian bluetoothd[1125647]: profiles/input/hog-lib.c:report_value_cb() bt_uhid_send: Invalid argument (22)
Apr 12 23:57:24 adrian bluetoothd[1125647]: profiles/input/hog-lib.c:report_value_cb() bt_uhid_send: Invalid argument (22)
Apr 12 23:57:24 adrian bluetoothd[1125647]: profiles/input/hog-lib.c:report_value_cb() bt_uhid_send: Invalid argument (22)
Apr 12 23:57:24 adrian bluetoothd[1125647]: profiles/input/hog-lib.c:report_value_cb() bt_uhid_send: Invalid argument (22)
Apr 12 23:58:05 adrian bluetoothd[1125647]: /org/bluez/hci0/dev_38_18_4C_BE_C6_B2/sep5/fd0: fd(43) ready

I am not sure what causes the difference.

dmesg output:

[Apr12 23:43] Bluetooth: hci0: urb 000000008d53fb0f submission failed (90)
[  +0,000004] Bluetooth: hci0: sending frame failed (-90)
[ +24,623925] Bluetooth: hci0: SCO packet for unknown connection handle 3

I’ve checked the Archwiki’s Bluetooth page, but I’ve got no [IdentityResolvingKey] section.

bluetooth management:

zoltan@adrian ~ $ btmgmt info
Index list with 1 item
hci0:   Primary controller
        addr 00:E0:4C:AE:42:03 version 10 manufacturer 93 class 0x7c0104
        supported settings: powered connectable fast-connectable discoverable bondable link-security ssp br/edr le advertising secure-conn debug-keys privacy static-addr phy-configuration 
        current settings: powered fast-connectable bondable ssp br/edr le secure-conn 
        name adrian
        short name

hciconfig:

zoltan@adrian ~ $ hciconfig -a hci0
hci0:   Type: Primary  Bus: USB
        BD Address: 00:E0:4C:AE:42:03  ACL MTU: 1021:6  SCO MTU: 255:12
        UP RUNNING PSCAN 
        RX bytes:12846948 acl:687516 sco:3697 events:25056 errors:0
        TX bytes:16237196 acl:24124 sco:2212 commands:455 errors:0
        Features: 0xff 0xff 0xff 0xfe 0xdb 0xfd 0x7b 0x87
        Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3 
        Link policy: RSWITCH HOLD SNIFF PARK 
        Link mode: PERIPHERAL ACCEPT 
        Name: 'adrian'
        Class: 0x7c0104
        Service Classes: Rendering, Capturing, Object Transfer, Audio, Telephony
        Device Class: Computer, Desktop workstation
        HCI Version: 5.1 (0xa)  Revision: 0x9a9
        LMP Version: 5.1 (0xa)  Subversion: 0x8a6b
        Manufacturer: Realtek Semiconductor Corporation (93)
zoltan@adrian ~ $ hcitool info 38:18:4C:BE:C6:B2
Requesting information ...
        BD Address:  xx:xx:xx:xx:xx:xx
        OUI Company: Sony Home Entertainment&Sound Products Inc (38-18-4C)
        Device Name: WH-1000XM3
        LMP Version: 4.1 (0x7) LMP Subversion: 0x3907
        Manufacturer: Cambridge Silicon Radio (10)
        Features page 0: 0xff 0xff 0x8f 0xfe 0xdb 0xff 0x5b 0x87
                <3-slot packets> <5-slot packets> <encryption> <slot offset> 
                <timing accuracy> <role switch> <hold mode> <sniff mode> 
                <park state> <RSSI> <channel quality> <SCO link> <HV2 packets> 
                <HV3 packets> <u-law log> <A-law log> <CVSD> <paging scheme> 
                <power control> <transparent SCO> <broadcast encrypt> 
                <EDR ACL 2 Mbps> <EDR ACL 3 Mbps> <enhanced iscan> 
                <interlaced iscan> <interlaced pscan> <inquiry with RSSI> 
                <extended SCO> <EV4 packets> <EV5 packets> <AFH cap. perip.> 
                <AFH cls. perip.> <LE support> <3-slot EDR ACL> 
                <5-slot EDR ACL> <sniff subrating> <pause encryption> 
                <AFH cap. central> <AFH cls. central> <EDR eSCO 2 Mbps> 
                <EDR eSCO 3 Mbps> <3-slot EDR eSCO> <extended inquiry> 
                <LE and BR/EDR> <simple pairing> <encapsulated PDU> 
                <non-flush flag> <LSTO> <inquiry TX power> <EPC> 
                <extended features> 
        Features page 1: 0x03 0x00 0x00 0x00 0x00 0x00 0x00 0x00

My system:

System:
  Kernel: 5.15.28-1-MANJARO arch: x86_64 bits: 64 compiler: gcc v: 11.2.0
    parameters: BOOT_IMAGE=/boot/vmlinuz-5.15-x86_64
    root=UUID=51ada9e3-e864-4f90-a085-772e9ba393fb rw quiet apparmor=1
    security=apparmor resume=UUID=74ceb443-e800-4cd8-8259-072d27a86404
    udev.log_priority=3
  Desktop: KDE Plasma v: 5.24.3 tk: Qt v: 5.15.3 info: latte-dock
    wm: kwin_x11 vt: 1 dm: SDDM Distro: Manjaro Linux base: Arch Linux
Machine:
  Type: Desktop Mobo: ASRock model: B550M Steel Legend
    serial: <superuser required> UEFI: American Megatrends LLC. v: P2.20
    date: 08/02/2021
CPU:
  Info: model: AMD Ryzen 5 5600G with Radeon Graphics bits: 64 type: MT MCP
    arch: Zen 3 family: 0x19 (25) model-id: 0x50 (80) stepping: 0
    microcode: 0xA50000C
  Topology: cpus: 1x cores: 6 tpc: 2 threads: 12 smt: enabled cache:
    L1: 384 KiB desc: d-6x32 KiB; i-6x32 KiB L2: 3 MiB desc: 6x512 KiB
    L3: 16 MiB desc: 1x16 MiB
  Speed (MHz): avg: 1932 high: 2984 min/max: 1400/4464 boost: enabled
    scaling: driver: acpi-cpufreq governor: schedutil cores: 1: 1396 2: 1409
    3: 2984 4: 2393 5: 1544 6: 1590 7: 1925 8: 2380 9: 1851 10: 2396 11: 1427
    12: 1899 bogomips: 93456
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm
  Vulnerabilities:
  Type: itlb_multihit status: Not affected
  Type: l1tf status: Not affected
  Type: mds status: Not affected
  Type: meltdown status: Not affected
  Type: spec_store_bypass
    mitigation: Speculative Store Bypass disabled via prctl and seccomp
  Type: spectre_v1
    mitigation: usercopy/swapgs barriers and __user pointer sanitization
  Type: spectre_v2 mitigation: Retpolines, IBPB: conditional, IBRS_FW,
    STIBP: always-on, RSB filling
  Type: srbds status: Not affected
  Type: tsx_async_abort status: Not affected
Audio:
  Device-1: AMD Renoir Radeon High Definition Audio driver: snd_hda_intel
    v: kernel pcie: gen: 3 speed: 8 GT/s lanes: 16 link-max: gen: 4
    speed: 16 GT/s bus-ID: 05:00.1 chip-ID: 1002:1637 class-ID: 0403
  Device-2: AMD Family 17h/19h HD Audio vendor: ASRock driver: snd_hda_intel
    v: kernel pcie: gen: 3 speed: 8 GT/s lanes: 16 link-max: gen: 4
    speed: 16 GT/s bus-ID: 05:00.6 chip-ID: 1022:15e3 class-ID: 0403
  Device-3: C-Media USB PnP Audio Device type: USB
    driver: hid-generic,snd-usb-audio,usbhid bus-ID: 3-2.3:35 chip-ID: 0d8c:0134
    class-ID: 0300
  Sound Server-1: ALSA v: k5.15.28-1-MANJARO running: yes
  Sound Server-2: sndio v: N/A running: no
  Sound Server-3: JACK v: 1.9.20 running: no
  Sound Server-4: PulseAudio v: 15.0 running: yes
  Sound Server-5: PipeWire v: 0.3.48 running: yes
Network:
  Device-1: Realtek RTL8125 2.5GbE vendor: ASRock driver: r8169 v: kernel
    pcie: gen: 2 speed: 5 GT/s lanes: 1 port: f000 bus-ID: 03:00.0
    chip-ID: 10ec:8125 class-ID: 0200
  IF: enp3s0 state: up speed: 1000 Mbps duplex: full mac: <filter>
  IF-ID-1: virbr0 state: down mac: <filter>
Bluetooth:
  Device-1: Realtek Bluetooth Radio type: USB driver: btusb v: 0.8
    bus-ID: 1-6:3 chip-ID: 0bda:8771 class-ID: e001 serial: <filter>
  Report: hciconfig ID: hci0 rfk-id: 14 state: up address: <filter>
    bt-v: 3.0 lmp-v: 5.1 sub-v: 8a6b hci-v: 5.1 rev: 9a9
  Info: acl-mtu: 1021:6 sco-mtu: 255:12 link-policy: rswitch hold sniff park
    link-mode: peripheral accept
    service-classes: rendering, capturing, object transfer, audio, telephony
Info:
  Processes: 425 Uptime: 28d 6h 28m wakeups: 91 Memory: 15 GiB
  used: 12.73 GiB (84.9%) Init: systemd v: 250 tool: systemctl Compilers:
  gcc: 11.2.0 clang: 13.0.1 Packages: 2380 pacman: 2357 lib: 447 flatpak: 13
  snap: 10 Shell: Bash v: 5.1.16 running-in: konsole inxi: 3.3.15

Thanks for the catch, but unfortunately it has not solved the issue,. Nothing changed after deactivating pipewire.

Do you have any other hunch, what could cause the issue?

Audio:
  Device-1: AMD Renoir Radeon High Definition Audio driver: snd_hda_intel
  Device-2: AMD Family 17h/19h HD Audio driver: snd_hda_intel
  Device-3: C-Media USB PnP Audio Device type: USB
    driver: hid-generic,snd-usb-audio,usbhid
  Sound Server-1: ALSA v: k5.15.28-1-MANJARO running: yes
  Sound Server-2: PulseAudio v: 15.0 running: yes
systemctl --user status pipewire                                                                                                                                                                     ✔ 
○ pipewire.service - PipeWire Multimedia Service
     Loaded: loaded (/usr/lib/systemd/user/pipewire.service; disabled; vendor preset: enabled)
     Active: inactive (dead)

Have you tried the reverse ? Use pipewire as default instead ?
And no need to manually disable those, look into manjaro-pipewire package vs the manjaro-pulse
Also, when using pipewire there is a slight difference between pipewire-session-manager and wireplumber