Skip to content

Commit 54e84c0

Browse files
author
arctumn
committed
windows(driver): document that bthport refuses an ATT server on the reserved PSM
The AirPods repeatedly open an inbound L2CAP connection to PSM 0x001F (ATT/GATT) and bthport refuses it "PSM not supported" because we register no server there. Tested registering one (LpRegisterAttServer, from the hearing-aid M1): bthport rejects it with STATUS_INVALID_PARAMETER (0xC000000D) — a profile driver may be an ATT client but not a server on the reserved PSM. So the buds' inbound GATT connection is unavoidably refused on Windows; record it next to the lazy-client note so it isn't re-attempted.
1 parent 89cc173 commit 54e84c0

1 file changed

Lines changed: 6 additions & 0 deletions

File tree

windows/drivers/aap/L2cap.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,12 @@ LpConnect(
133133
// hearing-assist is enabled, so opening a second L2CAP channel to it on every
134134
// connect only churns the shared ACL and destabilises the AAP channel / A2DP
135135
// (it opened, idled, and dropped ~30 s later on every session).
136+
//
137+
// NB: we deliberately do NOT register an ATT *server* here to accept the
138+
// buds' inbound PSM-0x001F connection. bthport rejects registering a server
139+
// on the reserved ATT PSM with STATUS_INVALID_PARAMETER (0xC000000D) — a
140+
// profile driver may be an ATT client but not a server (tested 2026-08-12).
141+
// So the AirPods' inbound GATT connection is unavoidably refused on Windows.
136142
} else {
137143
WdfSpinLockAcquire(Ctx->Lock);
138144
Ctx->State = LpDisconnected;

0 commit comments

Comments
 (0)