mbox series

[v2,0/1,Unstable,Oracular] Add Bluetooth device IDs for new Mediatek MT7920/MT7925

Message ID 20240918070616.3087314-1-vicamo.yang@canonical.com
Headers show
Series Add Bluetooth device IDs for new Mediatek MT7920/MT7925 | expand

Message

You-Sheng Yang Sept. 18, 2024, 7:06 a.m. UTC
BugLink: https://bugs.launchpad.net/bugs/2078878

[Impact]

Failed to enable Bluetooth adapter of MT7920/MT7925 models:
```
$ sudo dmesg|grep Bluetooth
[ 2.706311] Bluetooth: Core ver 2.22
[ 2.706322] Bluetooth: HCI device and connection manager initialized
[ 2.706325] Bluetooth: HCI socket layer initialized
[ 2.706327] Bluetooth: L2CAP socket layer initialized
[ 2.706329] Bluetooth: SCO socket layer initialized
[ 4.962246] Bluetooth: hci0: Opcode 0x0c03 failed: -110
```

[Fix]

Patch in upstream review:
https://patchwork.kernel.org/project/bluetooth/patch/20240604074100.572-1-jiande.lu@mediatek.com/

[Test Case]

Expecting dmesg messages:
```
$ sudo dmesg|grep Blue
[ 3.078949] Bluetooth: hci0: HW/SW Version: 0x008a008a, Build Time: 20240802111438
[ 5.879115] Bluetooth: hci0: Device setup in 2780230 usecs
[ 5.879127] Bluetooth: hci0: HCI Enhanced Setup Synchronous Connection command is advertised, but not supported.
[ 5.945319] Bluetooth: hci0: AOSP extensions version v1.00
[ 5.945324] Bluetooth: hci0: AOSP quality report is supported
```

And btmgmt output:
```
$ btmgmt info
Index list with 1 item
hci0: Primary controller
        addr 3C:0A:F3:13:2A:68 version 11 manufacturer 70 class 0x001f00
        supported settings: powered connectable fast-connectable discoverable
                            bondable link-security ssp br/edr le advertising
                            secure-conn debug-keys privacy configuration
                            static-addr phy-configuration wide-band-speech
                            cis-central cis-peripheral
        current settings: br/edr cis-central cis-peripheral
        name MTK MT7961 #1
        short name
hci0: Configuration options
        supported options: public-address
        missing options:
```

[Where problems could occur]

New model. Expecting various stability issues.

[Other Info]

Nominating for linux-oem-6.11/noble, linux/oracular and linux-unstable/oracular.

v2:

Realtek submitted a new revision
(https://patchwork.kernel.org/project/linux-mediatek/patch/20240916032228.6601-1-jiande.lu@mediatek.com/)
for linux-next. It drops the BTUSB_VALID_LE_STATES flag in comparison to
the previous revision.

In v6.11-rc5, commit aae6b81260fd9a7224f7eb4fc440d625852245bb
("Bluetooth: HCI: Invert LE State quirk to be opt-out rather then
opt-in"), it changed the behaviour from "if has BTUSB_VALID_LE_STATES
flag then set the HCI_QUIRK_VALID_LE_STATES flag" to "if has no
BTUSB_VALID_LE_STATES flag then set the HCI_QUIRK_BROKEN_LE_STATES
flag".

Later in v6.12 merge window, commit 0fec656d08aa59ad3ea1bba148a4f7e5618fd4d3
("Bluetooth: btusb: Invert LE State flag to set invalid rather then
valid"), it drops that BTUSB_VALID_LE_STATES and becomes "if has the
BTUSB_INVALID_LE_STATES flag, then set the HCI_QUIRK_BROKEN_LE_STATES
flag". No btusb device has the flag set at the moment. This fix is not
marked for linux-stable.

So, any way, MT7920/MT7925 doesn't want HCI_QUIRK_BROKEN_LE_STATES to be
set. Then when backported to 6.11 kernels, it should continue to carry
the BTUSB_VALID_LE_STATES flag, and that flag should be dropped when
migrates to v6.12.

Jiande Lu (1):
  UBUNTU: SAUCE: Bluetooth: btusb: Add USB HW IDs for MT7920/MT7925

 drivers/bluetooth/btusb.c | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

Comments

Timo Aaltonen Oct. 2, 2024, 8:29 a.m. UTC | #1
You-Sheng Yang kirjoitti 18.9.2024 klo 10.06:
> BugLink: https://bugs.launchpad.net/bugs/2078878
> 
> [Impact]
> 
> Failed to enable Bluetooth adapter of MT7920/MT7925 models:
> ```
> $ sudo dmesg|grep Bluetooth
> [ 2.706311] Bluetooth: Core ver 2.22
> [ 2.706322] Bluetooth: HCI device and connection manager initialized
> [ 2.706325] Bluetooth: HCI socket layer initialized
> [ 2.706327] Bluetooth: L2CAP socket layer initialized
> [ 2.706329] Bluetooth: SCO socket layer initialized
> [ 4.962246] Bluetooth: hci0: Opcode 0x0c03 failed: -110
> ```
> 
> [Fix]
> 
> Patch in upstream review:
> https://patchwork.kernel.org/project/bluetooth/patch/20240604074100.572-1-jiande.lu@mediatek.com/
> 
> [Test Case]
> 
> Expecting dmesg messages:
> ```
> $ sudo dmesg|grep Blue
> [ 3.078949] Bluetooth: hci0: HW/SW Version: 0x008a008a, Build Time: 20240802111438
> [ 5.879115] Bluetooth: hci0: Device setup in 2780230 usecs
> [ 5.879127] Bluetooth: hci0: HCI Enhanced Setup Synchronous Connection command is advertised, but not supported.
> [ 5.945319] Bluetooth: hci0: AOSP extensions version v1.00
> [ 5.945324] Bluetooth: hci0: AOSP quality report is supported
> ```
> 
> And btmgmt output:
> ```
> $ btmgmt info
> Index list with 1 item
> hci0: Primary controller
>          addr 3C:0A:F3:13:2A:68 version 11 manufacturer 70 class 0x001f00
>          supported settings: powered connectable fast-connectable discoverable
>                              bondable link-security ssp br/edr le advertising
>                              secure-conn debug-keys privacy configuration
>                              static-addr phy-configuration wide-band-speech
>                              cis-central cis-peripheral
>          current settings: br/edr cis-central cis-peripheral
>          name MTK MT7961 #1
>          short name
> hci0: Configuration options
>          supported options: public-address
>          missing options:
> ```
> 
> [Where problems could occur]
> 
> New model. Expecting various stability issues.
> 
> [Other Info]
> 
> Nominating for linux-oem-6.11/noble, linux/oracular and linux-unstable/oracular.
> 
> v2:
> 
> Realtek submitted a new revision
> (https://patchwork.kernel.org/project/linux-mediatek/patch/20240916032228.6601-1-jiande.lu@mediatek.com/)
> for linux-next. It drops the BTUSB_VALID_LE_STATES flag in comparison to
> the previous revision.
> 
> In v6.11-rc5, commit aae6b81260fd9a7224f7eb4fc440d625852245bb
> ("Bluetooth: HCI: Invert LE State quirk to be opt-out rather then
> opt-in"), it changed the behaviour from "if has BTUSB_VALID_LE_STATES
> flag then set the HCI_QUIRK_VALID_LE_STATES flag" to "if has no
> BTUSB_VALID_LE_STATES flag then set the HCI_QUIRK_BROKEN_LE_STATES
> flag".
> 
> Later in v6.12 merge window, commit 0fec656d08aa59ad3ea1bba148a4f7e5618fd4d3
> ("Bluetooth: btusb: Invert LE State flag to set invalid rather then
> valid"), it drops that BTUSB_VALID_LE_STATES and becomes "if has the
> BTUSB_INVALID_LE_STATES flag, then set the HCI_QUIRK_BROKEN_LE_STATES
> flag". No btusb device has the flag set at the moment. This fix is not
> marked for linux-stable.
> 
> So, any way, MT7920/MT7925 doesn't want HCI_QUIRK_BROKEN_LE_STATES to be
> set. Then when backported to 6.11 kernels, it should continue to carry
> the BTUSB_VALID_LE_STATES flag, and that flag should be dropped when
> migrates to v6.12.
> 
> Jiande Lu (1):
>    UBUNTU: SAUCE: Bluetooth: btusb: Add USB HW IDs for MT7920/MT7925
> 
>   drivers/bluetooth/btusb.c | 17 +++++++++++++++++
>   1 file changed, 17 insertions(+)
> 

applied to oracular, thanks