Message ID | 20241122051947.716313-1-j.alan.jones@pm.me (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | Bluetooth: btusb: Ignore Nintendo Wii module | expand |
Context | Check | Description |
---|---|---|
tedd_an/pre-ci_am | success | Success |
tedd_an/SubjectPrefix | success | Gitlint PASS |
tedd_an/BuildKernel | success | BuildKernel PASS |
tedd_an/CheckAllWarning | success | CheckAllWarning PASS |
tedd_an/CheckSparse | success | CheckSparse PASS |
tedd_an/BuildKernel32 | success | BuildKernel32 PASS |
tedd_an/TestRunnerSetup | success | TestRunnerSetup PASS |
tedd_an/TestRunner_l2cap-tester | success | TestRunner PASS |
tedd_an/TestRunner_iso-tester | fail | TestRunner_iso-tester: WARNING: possible circular locking dependency detected |
tedd_an/TestRunner_bnep-tester | success | TestRunner PASS |
tedd_an/TestRunner_mgmt-tester | fail | TestRunner_mgmt-tester: Total: 492, Passed: 487 (99.0%), Failed: 1, Not Run: 4 |
tedd_an/TestRunner_rfcomm-tester | success | TestRunner PASS |
tedd_an/TestRunner_sco-tester | success | TestRunner PASS |
tedd_an/TestRunner_ioctl-tester | success | TestRunner PASS |
tedd_an/TestRunner_mesh-tester | success | TestRunner PASS |
tedd_an/TestRunner_smp-tester | success | TestRunner PASS |
tedd_an/TestRunner_userchan-tester | success | TestRunner PASS |
This is automated email and please do not reply to this email! Dear submitter, Thank you for submitting the patches to the linux bluetooth mailing list. This is a CI test results with your patch series: PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=911667 ---Test result--- Test Summary: CheckPatch PENDING 0.18 seconds GitLint PENDING 0.21 seconds SubjectPrefix PASS 0.11 seconds BuildKernel PASS 24.65 seconds CheckAllWarning PASS 27.06 seconds CheckSparse PASS 30.46 seconds BuildKernel32 PASS 24.66 seconds TestRunnerSetup PASS 435.06 seconds TestRunner_l2cap-tester PASS 22.33 seconds TestRunner_iso-tester FAIL 38.74 seconds TestRunner_bnep-tester PASS 4.87 seconds TestRunner_mgmt-tester FAIL 123.46 seconds TestRunner_rfcomm-tester PASS 7.58 seconds TestRunner_sco-tester PASS 11.66 seconds TestRunner_ioctl-tester PASS 10.20 seconds TestRunner_mesh-tester PASS 6.09 seconds TestRunner_smp-tester PASS 7.08 seconds TestRunner_userchan-tester PASS 5.11 seconds IncrementalBuild PENDING 0.39 seconds Details ############################## Test: CheckPatch - PENDING Desc: Run checkpatch.pl script Output: ############################## Test: GitLint - PENDING Desc: Run gitlint Output: ############################## Test: TestRunner_iso-tester - FAIL Desc: Run iso-tester with test-runner Output: WARNING: possible circular locking dependency detected Total: 124, Passed: 120 (96.8%), Failed: 0, Not Run: 4 ############################## Test: TestRunner_mgmt-tester - FAIL Desc: Run mgmt-tester with test-runner Output: Total: 492, Passed: 487 (99.0%), Failed: 1, Not Run: 4 Failed Test Cases LL Privacy - Start Discovery 2 (Disable RL) Failed 0.190 seconds ############################## Test: IncrementalBuild - PENDING Desc: Incremental build with the patches in the series Output: --- Regards, Linux Bluetooth
Dear Alan, Thank you for your patch. Am 22.11.24 um 06:20 schrieb Alan Jones: > The Nintendo Wii uses a BCM2045 module running proprietary firmware. > This adapter is typically managed by emulation software via the raw > interface, and is incompatible with standard Bluetooth devices. > > Attempting to initialize this adapter breaks synchronization with all > previously connected Wii Remotes, requiring applications to > re-synchronize the remotes on each usage. > > Fix Wii Remote re-synchronization issues with the official Nintendo Wii > Bluetooth module by ignoring this adapter. Out of curiosity, is anything logged by Linux? > Signed-off-by: Alan Jones <j.alan.jones@pm.me> > --- > drivers/bluetooth/btusb.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c > index e9534fbc92e3..11c9ea182ea4 100644 > --- a/drivers/bluetooth/btusb.c > +++ b/drivers/bluetooth/btusb.c > @@ -185,6 +185,9 @@ static const struct usb_device_id quirks_table[] = { > /* Broadcom BCM2045 devices */ > { USB_DEVICE(0x0a5c, 0x2045), .driver_info = BTUSB_BCM2045 }, > > + /* Broadcom BCM2045 with Nintendo Wii firmware */ > + { USB_DEVICE(0x057E, 0x0305), .driver_info = BTUSB_IGNORE }, Could you please write the ids lowercase? Also, sort it above 0x0a5c? The comment above the existing entry suggests it’s for all BCM2045 devices. Could you explain, where the difference in the vendor id comes from? > + > /* Atheros 3011 with sflash firmware */ > { USB_DEVICE(0x0489, 0xe027), .driver_info = BTUSB_IGNORE }, > { USB_DEVICE(0x0489, 0xe03d), .driver_info = BTUSB_IGNORE }, Kind regards, Paul
Attempting on re-send via webportal: Thunderbird is chewing-up the reply-to header. If this fails to thread I'll walk-away for a bit. Here's what happens when the module is plugged in and I press a button on a previously paired remote. [483044.866453] usb 3-4: new full-speed USB device number 47 using xhci_hcd [483045.477740] usb 3-4: New USB device found, idVendor=057e, idProduct=0305, bcdDevice= 1.00 [483045.477749] usb 3-4: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [483045.477754] usb 3-4: Product: BCM2045A [483045.477757] usb 3-4: Manufacturer: Broadcom Corp [483047.572500] Bluetooth: hci0: Opcode 0x0c14 failed: -110 Beyond this is gets weird. The version of weird depends on the next steps. The Nintendo stack is almost, but not quite, entirely unlike Bluetooth. The unique vendor and product IDs are a result of the firmware payload. In the manufacturing manual for the component there's a note regarding this (after firmware install): "USD Vender ID and product ID of nintendo module is not same as it of Pre-write module." Link: https://fccid.io/MCLJ27H002/User-Manual/Users-Manual-721663.pdf So in theory: yes, this would apply to all BCM2045 devices re-flashed with Nintendo's firmware. I don't know how feasible this actually is: to my knowledge it isn't widely done. In practice, hobbyists extract the Foxconn WML-C43 or Foxconn/Panasonic J27H002 module from a Wii console and add the wiring to interface to a PC. Example using a daughtercard adapter here: https://www.abbiedoobie.com/product/bluetooth-passthrough-adapter/ Ack on requested changes; I'll send a follow-up Alan On Friday, November 22nd, 2024 at 12:29 AM, Paul Menzel <pmenzel@molgen.mpg.de> wrote: > > > Dear Alan, > > > Thank you for your patch. > > Am 22.11.24 um 06:20 schrieb Alan Jones: > > > The Nintendo Wii uses a BCM2045 module running proprietary firmware. > > This adapter is typically managed by emulation software via the raw > > interface, and is incompatible with standard Bluetooth devices. > > > > Attempting to initialize this adapter breaks synchronization with all > > previously connected Wii Remotes, requiring applications to > > re-synchronize the remotes on each usage. > > > > Fix Wii Remote re-synchronization issues with the official Nintendo Wii > > Bluetooth module by ignoring this adapter. > > > Out of curiosity, is anything logged by Linux? > > > Signed-off-by: Alan Jones j.alan.jones@pm.me > > --- > > drivers/bluetooth/btusb.c | 3 +++ > > 1 file changed, 3 insertions(+) > > > > diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c > > index e9534fbc92e3..11c9ea182ea4 100644 > > --- a/drivers/bluetooth/btusb.c > > +++ b/drivers/bluetooth/btusb.c > > @@ -185,6 +185,9 @@ static const struct usb_device_id quirks_table[] = { > > /* Broadcom BCM2045 devices */ > > { USB_DEVICE(0x0a5c, 0x2045), .driver_info = BTUSB_BCM2045 }, > > > > + /* Broadcom BCM2045 with Nintendo Wii firmware */ > > + { USB_DEVICE(0x057E, 0x0305), .driver_info = BTUSB_IGNORE }, > > > Could you please write the ids lowercase? Also, sort it above 0x0a5c? > > The comment above the existing entry suggests it’s for all BCM2045 > devices. Could you explain, where the difference in the vendor id comes > from? > > > + > > /* Atheros 3011 with sflash firmware */ > > { USB_DEVICE(0x0489, 0xe027), .driver_info = BTUSB_IGNORE }, > > { USB_DEVICE(0x0489, 0xe03d), .driver_info = BTUSB_IGNORE }, > > > > Kind regards, > > Paul
diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c index e9534fbc92e3..11c9ea182ea4 100644 --- a/drivers/bluetooth/btusb.c +++ b/drivers/bluetooth/btusb.c @@ -185,6 +185,9 @@ static const struct usb_device_id quirks_table[] = { /* Broadcom BCM2045 devices */ { USB_DEVICE(0x0a5c, 0x2045), .driver_info = BTUSB_BCM2045 }, + /* Broadcom BCM2045 with Nintendo Wii firmware */ + { USB_DEVICE(0x057E, 0x0305), .driver_info = BTUSB_IGNORE }, + /* Atheros 3011 with sflash firmware */ { USB_DEVICE(0x0489, 0xe027), .driver_info = BTUSB_IGNORE }, { USB_DEVICE(0x0489, 0xe03d), .driver_info = BTUSB_IGNORE },
The Nintendo Wii uses a BCM2045 module running proprietary firmware. This adapter is typically managed by emulation software via the raw interface, and is incompatible with standard Bluetooth devices. Attempting to initialize this adapter breaks synchronization with all previously connected Wii Remotes, requiring applications to re-synchronize the remotes on each usage. Fix Wii Remote re-synchronization issues with the official Nintendo Wii Bluetooth module by ignoring this adapter. Signed-off-by: Alan Jones <j.alan.jones@pm.me> --- drivers/bluetooth/btusb.c | 3 +++ 1 file changed, 3 insertions(+)