From nobody Mon Sep 28 23:06:23 2026 Received: from mail-lj1-f181.google.com (mail-lj1-f181.google.com [209.85.208.181]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2D90638F255 for ; Sat, 15 Aug 2026 08:48:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.181 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786783736; cv=none; b=JkLIRSMGuAsmmzlEEtHWXObuKuczyjCqDk9mKT7G8BEJx3mt5Pxc58+KhUyP0+kqbIxPzN7+oFaUbv/dAg6gqmBxZhnct80xHXLnnV5bnRbqH17l+SEe88Fbwm/vbhWsOGETHVJSlVZIO98EijeO7BuPx0ZegLYrTCDzRO0IzVc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786783736; c=relaxed/simple; bh=N2WuJXqW6W2AwNf3O0dCKGdwD6LJugwsonsXif9nwPM=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=CnttvSPvwH4Yry/PnDDuBY8KPadACTaFsUW9cyM5gGjxvunNku5ZbePXRTy/WLN5JMJknh2Va6dM8x1ch56s2Q0E4dKi9xQzGJKKsGaZwjZvjZrQkwDJrT7dcALN/t311j5sd+FOmgBpQUqJaNjj+0HM9FGbC7my/tEiXlRIJA8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Y22V6AY4; arc=none smtp.client-ip=209.85.208.181 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Y22V6AY4" Received: by mail-lj1-f181.google.com with SMTP id 38308e7fff4ca-39c74722e27so24428481fa.0 for ; Sat, 15 Aug 2026 01:48:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1786783733; x=1787388533; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=/WHmCee2oMCSUH1ICyIg6euX+e+Fy9mQg4Kq6rXynRE=; b=Y22V6AY4UbbUhYNHLlezm2aarmIkGZHGC7GFubm/K5vrWWwBacyMxK5Z5+NFB3m4QB Arc/niYqA2XWWqHG/t2/nBNO+UeRdozL6KWlx5Zy907+68ZvwTzGp/VF650qF/XdvF+U VRKOUOpjPtr8zgyJ5jOA0ihTaeam40pfEExHse9i71jCbuq6H2C97cP0UJfELg5wjGuR 8IcmTVlIPToxwBzWYEJgAWmzQMFJcWEH1QzNG4t10a4UW8QEYGEcbMbJecesOi5nJs4G NJdM27rW+TmS/dOyIrBeekcMHF45z9DvWmvrjIl9W+bPmfNCNkWlx4OXnKqzVV6a3O1n zS8g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786783733; x=1787388533; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=/WHmCee2oMCSUH1ICyIg6euX+e+Fy9mQg4Kq6rXynRE=; b=dbU6VUqegK+OfvOqfCdLDALBvf5zYpIq3vH/hXkey0wpsfegMlhqqKANLyzUxOU7N+ OUe/cW1fkStMOrkn7RKVkmYi63NvKkM25EvO3ijnI9caS0EaW0txWeuWM2NsTtCKINlz Rokd+ZjUaKPyydjZ48XJPBuZZwMyDjjIjRUfcexyCAIPCZkMSqFRCZlnAWKTetTun2Q6 b4C7OsONfrT6iJXx+15EFypN0M9QWC6JM4mbz4KA60tCCF7sVdwKvqHu2OU8XmAdd6zZ 2+TY4id7jjQS+xwUk7BvhPEWubX/9eDYtwMcgOpnxdegCOzVPQu/jdzKQcT5Y9gC144h puDg== X-Forwarded-Encrypted: i=1; AHgh+RrlSKP6/m38+QJpkBwJ/8sNQGlL6iQt1mDR00LkAki3WGnecp/DslDZQxN2Nj8GY+dv6Q/8lWmfJsyeQ9g=@vger.kernel.org X-Gm-Message-State: AOJu0YyZBDhITUmn/F7IRuVCHj9lNf/RD3/haQeFvmAkxERjOGaSXonI 76tYuAlJYFeahAHgX0pjZtwei87kFApet5FOCluD285wXjbcATHhpflL X-Gm-Gg: AR+sD132NYHFsMxcmqgo9NsYA+XLEf5OcKjwpLzi2pgdYemP6w/gC5eOUfZ2gGLbBMf 6TdUZ33xmiuW2jIYIsYLRVPiSoETJFS4fV9GGvTy/s+27CKd8cPjuMvLeCy8DYaePoGTa6nDuPw uKMOk3fcB+eAQPx2LpXABfaHQ/i2Ko90yND5kgh9hcyTLI4raQP0yuBsnInrXcWAMuzANf9EIrW IXdYbK3nCTLj2Y8RkeC9UDaYzoiixsy4kN8YNT60hZviJPtKMMlUNXohT3/1JGNb1VsF8GCc0M+ oqeMY4R6YwuQkRXfIcWwBnx8RB87imw7aX10dVV8WUOwdjlErpD70L7Ynyic5tXi9nG814hlsGB rcwp7Tau/NHbGcYYQ+EQciFOjKDCbItnARPNQ5u0lhI4LSKQIp/BO59ssoDzqUUNft+OR4tRvQc CKiXFwVdzToRZuri2LmzNiR+2CyL8y0gt7Xv4g0nX8KOlpsOxCbcVO5uxX+k0E3q0R/n/o4AT7w A== X-Received: by 2002:a2e:bc1d:0:b0:3a1:11ff:c30e with SMTP id 38308e7fff4ca-3a11b95fd1bmr26046371fa.4.1786783733013; Sat, 15 Aug 2026 01:48:53 -0700 (PDT) Received: from localhost.localdomain ([188.162.14.60]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-3a130cd8e3asm10490801fa.25.2026.08.15.01.48.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 15 Aug 2026 01:48:52 -0700 (PDT) From: Andrew Bille To: Marcel Holtmann , Luiz Augusto von Dentz Cc: Paul Menzel , Daniel Drake , linux-bluetooth@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2] Bluetooth: btusb: treat 0bda:0002 rev 7558 as a generic HCI device Date: Sat, 15 Aug 2026 15:48:38 +0700 Message-ID: <20260815084838.27092-1-andrewbille@gmail.com> X-Mailer: git-send-email 2.47.3 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The internal Bluetooth controller of a Quanta JW6H laptop reports itself as "CSR BS8510" and exposes a standard Bluetooth USB interface. Relevant /sys/kernel/debug/usb/devices output is: D: Ver=3D 2.00 Cls=3De0(wlcon) Sub=3D01 Prot=3D01 MxPS=3D64 #Cfgs=3D 1 P: Vendor=3D0bda ProdID=3D0002 Rev=3D75.58 S: Product=3DCSR BS8510 I:* If#=3D 0 Alt=3D 0 #EPs=3D 3 Cls=3De0(wlcon) Sub=3D01 Prot=3D01 Driv= er=3Dbtusb The device currently matches the vendor-wide Realtek quirk and is therefore initialized through btrtl. It does not respond to the Realtek-specific register access and initialization fails with: Bluetooth: hci0: RTL: RTL: Read reg16 failed (-110) No Bluetooth controller is then available to userspace. No external firmware is required when the device is handled through the generic HCI path. It is not known whether other devices using USB ID 0bda:0002 are genuine Realtek controllers. Limit the exception to the observed bcdDevice revision 0x7558 and log when generic HCI handling is forced, so other revisions continue to use the existing Realtek path. With this change the controller registers successfully. Scanning, pairing and A2DP audio have been tested successfully. Fixes: a2698a9bf9b0 ("Bluetooth: btusb: Add Realtek 8723A/8723B/8761A/8821A= support") Cc: stable@vger.kernel.org Reviewed-by: Paul Menzel Assisted-by: ChatGPT:GPT-5.6-Sol Signed-off-by: Andrew Bille --- Changes in v2: - Restrict the quirk to the observed bcdDevice revision 0x7558. - Log when generic HCI handling is forced. - Add the Quanta JW6H platform and USB descriptor information. - Document that no external firmware is required. - Document the possible conflict with other 0bda:0002 devices. drivers/bluetooth/btusb.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c index 184e95c1625e..bf94722fdedb 100644 --- a/drivers/bluetooth/btusb.c +++ b/drivers/bluetooth/btusb.c @@ -67,6 +67,7 @@ static struct usb_driver btusb_driver; #define BTUSB_INTEL_NO_WBS_SUPPORT BIT(26) #define BTUSB_ACTIONS_SEMI BIT(27) #define BTUSB_BARROT BIT(28) +#define BTUSB_FORCE_GENERIC BIT(29) =20 static const struct usb_device_id btusb_table[] =3D { /* Generic Bluetooth USB device */ @@ -615,6 +616,10 @@ static const struct usb_device_id quirks_table[] =3D { { USB_DEVICE(0x0489, 0xe130), .driver_info =3D BTUSB_REALTEK | BTUSB_WIDEBAND_SPEECH }, =20 + /* Device reporting itself as "CSR BS8510" */ + { USB_DEVICE_VER(0x0bda, 0x0002, 0x7558, 0x7558), + .driver_info =3D BTUSB_FORCE_GENERIC }, + /* Realtek Bluetooth devices */ { USB_VENDOR_AND_INTERFACE_INFO(0x0bda, 0xe0, 0x01, 0x01), .driver_info =3D BTUSB_REALTEK }, @@ -4089,6 +4094,9 @@ static int btusb_probe(struct usb_interface *intf, id =3D match; } =20 + if (id->driver_info & BTUSB_FORCE_GENERIC) + dev_info(&intf->dev, "using generic HCI handling\n"); + if (id->driver_info =3D=3D BTUSB_IGNORE) return -ENODEV; =20 --=20 2.47.3