* [PATCH] Bluetooth: btusb: Ignore Nintendo Wii module
@ 2024-11-22 4:12 Alan Jones
2024-11-22 4:18 ` bluez.test.bot
2024-11-22 5:20 ` [PATCH] " Alan Jones
0 siblings, 2 replies; 10+ messages in thread
From: Alan Jones @ 2024-11-22 4:12 UTC (permalink / raw)
To: linux-bluetooth@vger.kernel.org
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(+)
diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
index 279fe6c115fa..b85b98a40a87 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 },
--
2.43.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* RE: Bluetooth: btusb: Ignore Nintendo Wii module
2024-11-22 4:12 [PATCH] Bluetooth: btusb: Ignore Nintendo Wii module Alan Jones
@ 2024-11-22 4:18 ` bluez.test.bot
2024-11-22 5:20 ` [PATCH] " Alan Jones
1 sibling, 0 replies; 10+ messages in thread
From: bluez.test.bot @ 2024-11-22 4:18 UTC (permalink / raw)
To: linux-bluetooth, j.alan.jones
[-- Attachment #1: Type: text/plain, Size: 552 bytes --]
This is an automated email and please do not reply to this email.
Dear Submitter,
Thank you for submitting the patches to the linux bluetooth mailing list.
While preparing the CI tests, the patches you submitted couldn't be applied to the current HEAD of the repository.
----- Output -----
error: patch failed: drivers/bluetooth/btusb.c:185
error: drivers/bluetooth/btusb.c: patch does not apply
hint: Use 'git am --show-current-patch' to see the failed patch
Please resolve the issue and submit the patches again.
---
Regards,
Linux Bluetooth
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH] Bluetooth: btusb: Ignore Nintendo Wii module
2024-11-22 4:12 [PATCH] Bluetooth: btusb: Ignore Nintendo Wii module Alan Jones
2024-11-22 4:18 ` bluez.test.bot
@ 2024-11-22 5:20 ` Alan Jones
2024-11-22 5:58 ` bluez.test.bot
` (3 more replies)
1 sibling, 4 replies; 10+ messages in thread
From: Alan Jones @ 2024-11-22 5:20 UTC (permalink / raw)
To: j.alan.jones; +Cc: linux-bluetooth
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(+)
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 },
--
2.43.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* RE: Bluetooth: btusb: Ignore Nintendo Wii module
2024-11-22 5:20 ` [PATCH] " Alan Jones
@ 2024-11-22 5:58 ` bluez.test.bot
2024-11-22 8:29 ` [PATCH] " Paul Menzel
` (2 subsequent siblings)
3 siblings, 0 replies; 10+ messages in thread
From: bluez.test.bot @ 2024-11-22 5:58 UTC (permalink / raw)
To: linux-bluetooth, j.alan.jones
[-- Attachment #1: Type: text/plain, Size: 2172 bytes --]
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
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] Bluetooth: btusb: Ignore Nintendo Wii module
2024-11-22 5:20 ` [PATCH] " Alan Jones
2024-11-22 5:58 ` bluez.test.bot
@ 2024-11-22 8:29 ` Paul Menzel
2024-11-23 16:58 ` Alan Jones
2024-11-23 16:45 ` Alan Jones
2024-11-23 17:04 ` [PATCH] " Alan Jones
3 siblings, 1 reply; 10+ messages in thread
From: Paul Menzel @ 2024-11-22 8:29 UTC (permalink / raw)
To: Alan Jones; +Cc: 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
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH] Bluetooth: btusb: Ignore Nintendo Wii module
2024-11-22 5:20 ` [PATCH] " Alan Jones
2024-11-22 5:58 ` bluez.test.bot
2024-11-22 8:29 ` [PATCH] " Paul Menzel
@ 2024-11-23 16:45 ` Alan Jones
2024-11-23 17:29 ` bluez.test.bot
2024-11-23 17:04 ` [PATCH] " Alan Jones
3 siblings, 1 reply; 10+ messages in thread
From: Alan Jones @ 2024-11-23 16:45 UTC (permalink / raw)
To: j.alan.jones; +Cc: linux-bluetooth
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 | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
index e9534fbc92e3..be8c009b8ab6 100644
--- a/drivers/bluetooth/btusb.c
+++ b/drivers/bluetooth/btusb.c
@@ -182,7 +182,10 @@ static const struct usb_device_id quirks_table[] = {
/* Broadcom BCM2033 without firmware */
{ USB_DEVICE(0x0a5c, 0x2033), .driver_info = BTUSB_IGNORE },
- /* Broadcom BCM2045 devices */
+ /* Broadcom BCM2045 devices with Nintendo Wii firmware */
+ { USB_DEVICE(0x057e, 0x0305), .driver_info = BTUSB_IGNORE },
+
+ /* Broadcom BCM2045 devices with common firmware */
{ USB_DEVICE(0x0a5c, 0x2045), .driver_info = BTUSB_BCM2045 },
/* Atheros 3011 with sflash firmware */
--
2.43.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH] Bluetooth: btusb: Ignore Nintendo Wii module
2024-11-22 8:29 ` [PATCH] " Paul Menzel
@ 2024-11-23 16:58 ` Alan Jones
0 siblings, 0 replies; 10+ messages in thread
From: Alan Jones @ 2024-11-23 16:58 UTC (permalink / raw)
To: Paul Menzel; +Cc: linux-bluetooth
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
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH] Bluetooth: btusb: Ignore Nintendo Wii module
2024-11-22 5:20 ` [PATCH] " Alan Jones
` (2 preceding siblings ...)
2024-11-23 16:45 ` Alan Jones
@ 2024-11-23 17:04 ` Alan Jones
2024-11-23 17:13 ` bluez.test.bot
3 siblings, 1 reply; 10+ messages in thread
From: Alan Jones @ 2024-11-23 17:04 UTC (permalink / raw)
To: j.alan.jones; +Cc: linux-bluetooth
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 | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
index e9534fbc92e3..be8c009b8ab6 100644
--- a/drivers/bluetooth/btusb.c
+++ b/drivers/bluetooth/btusb.c
@@ -182,7 +182,10 @@ static const struct usb_device_id quirks_table[] = {
/* Broadcom BCM2033 without firmware */
{ USB_DEVICE(0x0a5c, 0x2033), .driver_info = BTUSB_IGNORE },
- /* Broadcom BCM2045 devices */
+ /* Broadcom BCM2045 devices with Nintendo Wii firmware */
+ { USB_DEVICE(0x057e, 0x0305), .driver_info = BTUSB_IGNORE },
+
+ /* Broadcom BCM2045 devices with common firmware */
{ USB_DEVICE(0x0a5c, 0x2045), .driver_info = BTUSB_BCM2045 },
/* Atheros 3011 with sflash firmware */
--
2.43.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* RE: Bluetooth: btusb: Ignore Nintendo Wii module
2024-11-23 17:04 ` [PATCH] " Alan Jones
@ 2024-11-23 17:13 ` bluez.test.bot
0 siblings, 0 replies; 10+ messages in thread
From: bluez.test.bot @ 2024-11-23 17:13 UTC (permalink / raw)
To: linux-bluetooth, j.alan.jones
[-- Attachment #1: Type: text/plain, Size: 552 bytes --]
This is an automated email and please do not reply to this email.
Dear Submitter,
Thank you for submitting the patches to the linux bluetooth mailing list.
While preparing the CI tests, the patches you submitted couldn't be applied to the current HEAD of the repository.
----- Output -----
error: patch failed: drivers/bluetooth/btusb.c:182
error: drivers/bluetooth/btusb.c: patch does not apply
hint: Use 'git am --show-current-patch' to see the failed patch
Please resolve the issue and submit the patches again.
---
Regards,
Linux Bluetooth
^ permalink raw reply [flat|nested] 10+ messages in thread
* RE: Bluetooth: btusb: Ignore Nintendo Wii module
2024-11-23 16:45 ` Alan Jones
@ 2024-11-23 17:29 ` bluez.test.bot
0 siblings, 0 replies; 10+ messages in thread
From: bluez.test.bot @ 2024-11-23 17:29 UTC (permalink / raw)
To: linux-bluetooth, j.alan.jones
[-- Attachment #1: Type: text/plain, Size: 2436 bytes --]
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=911980
---Test result---
Test Summary:
CheckPatch PENDING 0.29 seconds
GitLint PENDING 0.21 seconds
SubjectPrefix PASS 0.09 seconds
BuildKernel PASS 24.54 seconds
CheckAllWarning PASS 27.10 seconds
CheckSparse PASS 30.40 seconds
BuildKernel32 PASS 24.53 seconds
TestRunnerSetup PASS 436.30 seconds
TestRunner_l2cap-tester PASS 20.55 seconds
TestRunner_iso-tester FAIL 26.96 seconds
TestRunner_bnep-tester PASS 4.93 seconds
TestRunner_mgmt-tester FAIL 122.82 seconds
TestRunner_rfcomm-tester PASS 7.56 seconds
TestRunner_sco-tester PASS 13.39 seconds
TestRunner_ioctl-tester PASS 8.05 seconds
TestRunner_mesh-tester FAIL 6.21 seconds
TestRunner_smp-tester PASS 6.97 seconds
TestRunner_userchan-tester PASS 5.01 seconds
IncrementalBuild PENDING 0.57 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.198 seconds
##############################
Test: TestRunner_mesh-tester - FAIL
Desc: Run mesh-tester with test-runner
Output:
Total: 10, Passed: 9 (90.0%), Failed: 1, Not Run: 0
Failed Test Cases
Mesh - Send cancel - 2 Failed 0.114 seconds
##############################
Test: IncrementalBuild - PENDING
Desc: Incremental build with the patches in the series
Output:
---
Regards,
Linux Bluetooth
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2024-11-23 17:29 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-11-22 4:12 [PATCH] Bluetooth: btusb: Ignore Nintendo Wii module Alan Jones
2024-11-22 4:18 ` bluez.test.bot
2024-11-22 5:20 ` [PATCH] " Alan Jones
2024-11-22 5:58 ` bluez.test.bot
2024-11-22 8:29 ` [PATCH] " Paul Menzel
2024-11-23 16:58 ` Alan Jones
2024-11-23 16:45 ` Alan Jones
2024-11-23 17:29 ` bluez.test.bot
2024-11-23 17:04 ` [PATCH] " Alan Jones
2024-11-23 17:13 ` bluez.test.bot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox