[PATCH BlueZ 2/2] profiles/input: disable force-active for Nintendo Switch Pro v1
From: Frédéric Danis <hidden>
Date: 2026-08-26 16:41:17
Subsystem:
the rest · Maintainer:
Linus Torvalds
For Nintendo Switch Pro v1 controllers (VID:PID 057e:2009), set BT_IO_OPT_FORCE_ACTIVE to BT_POWER_FORCE_ACTIVE_OFF on the HID interrupt channel during connection setup. This avoids repeated host-triggered Exit Sniff requests and reduces Sniff/Exit Sniff churn linked to unexpected disconnects. --- profiles/input/device.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+)
diff --git a/profiles/input/device.c b/profiles/input/device.c
index 5b1be2b16..c2abe2451 100644
--- a/profiles/input/device.c
+++ b/profiles/input/device.c@@ -1065,6 +1065,9 @@ static gboolean encrypt_notify(GIOChannel *io, GIOCondition condition, return FALSE; } +#define NINTENDO_VENDOR_ID 0x057e +#define NINTENDO_PRO_CONTROLLER_PID 0x2009 + static int hidp_add_connection(struct input_device *idev) { struct hidp_connadd_req *req;
@@ -1101,6 +1104,19 @@ static int hidp_add_connection(struct input_device *idev) goto cleanup; } + if ((req->vendor == NINTENDO_VENDOR_ID) && + (req->product == NINTENDO_PRO_CONTROLLER_PID)) { + if (!bt_io_set(idev->intr_io, &gerr, + BT_IO_OPT_FORCE_ACTIVE, + BT_POWER_FORCE_ACTIVE_OFF, + BT_IO_OPT_INVALID)) { + error("btio: %s", gerr->message); + g_error_free(gerr); + err = -EFAULT; + goto cleanup; + } + } + /* Encryption is mandatory for keyboards */ /* Some platforms may choose to require encryption for all devices */ /* Note that this only matters for pre 2.1 devices as otherwise the */
--
2.43.0