[PATCH 0/7] Bluetooth: make the Amlogic W1 (W155S2) usable

From: christian . koever-draxl

Date: Sun Oct 25 2026 - 15:36:44 EST


From: Christian Stefan Kövér-Draxl <ckoever@xxxxxxxxxx>

The W1 combo chip in an S905W2 TV box could not be powered on by
bluetoothd and did not survive warm reboots. This series:

1-2: adds two quirks, for controllers that advertise Secure Connections
but reject enabling it, and for controllers that hang on Write
Current IAC LAP (sent when the adapter becomes discoverable);
3: lets hci_aml cope with a controller that still runs firmware from
a previous boot (the enable line does not reset it), retries lost
firmware segments, waits long enough for the firmware to start,
and keeps the controller powered across down/up;
4-5: takes a stable address from local-bd-address, as the controller
keeps none across a power cycle;
6-7: adds amlogic,shared-antenna for boards with one antenna for Wi-Fi
and Bluetooth (about 15 dB better reception there).

Tested: cold boot, warm reboot, rfkill and hciconfig down/up cycles,
classic keyboard pairing and reconnects, LE central and peripheral.

Tool use (Documentation/process/generated-content.rst):
This work was done with the help of an AI coding assistant, Claude
(Anthropic), used through Claude Code over many sessions. It did a large
part of the hands-on work: it read the vendor kernel and the firmware
interfaces, probed registers on the board, drafted the code and the
changelogs, and ran the builds, checkpatch, dt_binding_check and the
tests on the hardware. I directed the work, reviewed every change and
the final patches, and take responsibility for them. There is no single
prompt to quote; the sessions were of the form "find out why X fails on
this board, fix it, test it on the box".

Tested on an Amediatech X98Q TV box (Amlogic S905W2, S4 family, 2 GiB),
vendor U-Boot and BL31/OP-TEE, Linux 7.3 plus this work.

Christian Stefan Kövér-Draxl (7):
Bluetooth: add a quirk for controllers that cannot enable Secure
Connections
Bluetooth: add a quirk for controllers that hang on Write Current IAC
LAP
Bluetooth: hci_aml: cope with a controller that is already running
dt-bindings: net: bluetooth: amlogic,w155s2-bt: allow local-bd-address
Bluetooth: hci_aml: take the address from the firmware description
dt-bindings: net: bluetooth: amlogic,w155s2-bt: add
amlogic,shared-antenna
Bluetooth: hci_aml: configure the RF for a shared antenna

.../net/bluetooth/amlogic,w155s2-bt.yaml | 11 +
drivers/bluetooth/hci_aml.c | 197 ++++++++++++++++--
include/net/bluetooth/hci.h | 32 +++
net/bluetooth/hci_sync.c | 16 +-
4 files changed, 231 insertions(+), 25 deletions(-)


base-commit: 7be4bc52fd9e0e55dc9a2e0232b89427d2c4b614
--
2.56.0