diff mbox series

Bluetooth: btusb: Add support Mediatek MT7920

Message ID 20240304144844.2042-1-peter.tsao@mediatek.com (mailing list archive)
State Accepted
Commit 2ea671b1789685be8716f5fa90f0455f0a08dbb7
Headers show
Series Bluetooth: btusb: Add support Mediatek MT7920 | expand

Checks

Context Check Description
tedd_an/pre-ci_am success Success
tedd_an/CheckPatch success CheckPatch PASS
tedd_an/GitLint success Gitlint PASS
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/CheckSmatch 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 success TestRunner PASS
tedd_an/TestRunner_bnep-tester success TestRunner PASS
tedd_an/TestRunner_mgmt-tester fail TestRunner_mgmt-tester: Total: 492, Passed: 489 (99.4%), Failed: 1, Not Run: 2
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
tedd_an/IncrementalBuild success Incremental Build PASS

Commit Message

Peter Tsao March 4, 2024, 2:48 p.m. UTC
This patch is added support Mediatek MT7920
The firmware location of MT7920 will set to
/lib/firmware/mediatek/

The information in /sys/kernel/debug/usb/devices about MT7920U
Bluetooth device is listed as the below

T:  Bus=01 Lev=02 Prnt=02 Port=00 Cnt=01 Dev#= 12 Spd=480  MxCh= 0
D:  Ver= 2.10 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=0e8d ProdID=7920 Rev= 1.00
S:  Manufacturer=MediaTek Inc.
S:  Product=Wireless_Device
S:  SerialNumber=000000000
C:* #Ifs= 3 Cfg#= 1 Atr=e0 MxPwr=100mA
A:  FirstIf#= 0 IfCount= 3 Cls=e0(wlcon) Sub=01 Prot=01
I:* If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E:  Ad=81(I) Atr=03(Int.) MxPS=  16 Ivl=125us
E:  Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E:  Ad=83(I) Atr=01(Isoc) MxPS=   0 Ivl=1ms
E:  Ad=03(O) Atr=01(Isoc) MxPS=   0 Ivl=1ms
I:  If#= 1 Alt= 1 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E:  Ad=83(I) Atr=01(Isoc) MxPS=   9 Ivl=1ms
E:  Ad=03(O) Atr=01(Isoc) MxPS=   9 Ivl=1ms
I:  If#= 1 Alt= 2 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E:  Ad=83(I) Atr=01(Isoc) MxPS=  17 Ivl=1ms
E:  Ad=03(O) Atr=01(Isoc) MxPS=  17 Ivl=1ms
I:  If#= 1 Alt= 3 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E:  Ad=83(I) Atr=01(Isoc) MxPS=  25 Ivl=1ms
E:  Ad=03(O) Atr=01(Isoc) MxPS=  25 Ivl=1ms
I:  If#= 1 Alt= 4 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E:  Ad=83(I) Atr=01(Isoc) MxPS=  33 Ivl=1ms
E:  Ad=03(O) Atr=01(Isoc) MxPS=  33 Ivl=1ms
I:  If#= 1 Alt= 5 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E:  Ad=83(I) Atr=01(Isoc) MxPS=  49 Ivl=1ms
E:  Ad=03(O) Atr=01(Isoc) MxPS=  49 Ivl=1ms
I:  If#= 1 Alt= 6 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E:  Ad=83(I) Atr=01(Isoc) MxPS=  63 Ivl=1ms
E:  Ad=03(O) Atr=01(Isoc) MxPS=  63 Ivl=1ms
I:* If#= 2 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=(none)
E:  Ad=8a(I) Atr=03(Int.) MxPS=  64 Ivl=125us
E:  Ad=0a(O) Atr=03(Int.) MxPS=  64 Ivl=125us
I:  If#= 2 Alt= 1 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=(none)
E:  Ad=8a(I) Atr=03(Int.) MxPS= 512 Ivl=125us
E:  Ad=0a(O) Atr=03(Int.) MxPS= 512 Ivl=125us

Signed-off-by: Peter Tsao <peter.tsao@mediatek.com>
---
 drivers/bluetooth/btusb.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

Comments

bluez.test.bot@gmail.com March 4, 2024, 3:34 p.m. UTC | #1
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=832126

---Test result---

Test Summary:
CheckPatch                    PASS      0.52 seconds
GitLint                       PASS      0.23 seconds
SubjectPrefix                 PASS      0.07 seconds
BuildKernel                   PASS      28.10 seconds
CheckAllWarning               PASS      30.80 seconds
CheckSparse                   PASS      36.71 seconds
CheckSmatch                   PASS      101.59 seconds
BuildKernel32                 PASS      27.65 seconds
TestRunnerSetup               PASS      505.81 seconds
TestRunner_l2cap-tester       PASS      18.28 seconds
TestRunner_iso-tester         PASS      99.47 seconds
TestRunner_bnep-tester        PASS      4.79 seconds
TestRunner_mgmt-tester        FAIL      112.18 seconds
TestRunner_rfcomm-tester      PASS      7.47 seconds
TestRunner_sco-tester         PASS      15.03 seconds
TestRunner_ioctl-tester       PASS      7.97 seconds
TestRunner_mesh-tester        PASS      5.96 seconds
TestRunner_smp-tester         PASS      6.87 seconds
TestRunner_userchan-tester    PASS      5.03 seconds
IncrementalBuild              PASS      26.49 seconds

Details
##############################
Test: TestRunner_mgmt-tester - FAIL
Desc: Run mgmt-tester with test-runner
Output:
Total: 492, Passed: 489 (99.4%), Failed: 1, Not Run: 2

Failed Test Cases
LL Privacy - Add Device 7 (AL is full)               Failed       0.201 seconds


---
Regards,
Linux Bluetooth
patchwork-bot+bluetooth@kernel.org March 4, 2024, 9:30 p.m. UTC | #2
Hello:

This patch was applied to bluetooth/bluetooth-next.git (master)
by Luiz Augusto von Dentz <luiz.von.dentz@intel.com>:

On Mon, 4 Mar 2024 22:48:44 +0800 you wrote:
> This patch is added support Mediatek MT7920
> The firmware location of MT7920 will set to
> /lib/firmware/mediatek/
> 
> The information in /sys/kernel/debug/usb/devices about MT7920U
> Bluetooth device is listed as the below
> 
> [...]

Here is the summary with links:
  - Bluetooth: btusb: Add support Mediatek MT7920
    https://git.kernel.org/bluetooth/bluetooth-next/c/2ea671b17896

You are awesome, thank you!
Mike Lothian April 1, 2024, 2:44 p.m. UTC | #3
Hi

I think this patch is cauisng issues with older firmware

Bus 003 Device 002: ID 13d3:3563 IMC Networks Wireless_Device

[    0.315064] Bluetooth: Core ver 2.22
[    0.315064] NET: Registered PF_BLUETOOTH protocol family
[    0.315064] Bluetooth: HCI device and connection manager initialized
[    0.315064] Bluetooth: HCI socket layer initialized
[    0.315064] Bluetooth: L2CAP socket layer initialized
[    0.315064] Bluetooth: SCO socket layer initialized
[    4.670811] Bluetooth: RFCOMM TTY layer initialized
[    4.671029] Bluetooth: RFCOMM socket layer initialized
[    4.671790] Bluetooth: RFCOMM ver 1.11
[    4.673416] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[    4.673659] Bluetooth: BNEP filters: protocol multicast
[    4.673895] Bluetooth: BNEP socket layer initialized
[    4.674125] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[    4.674360] Bluetooth: HIDP socket layer initialized
[    5.016365] bluetooth hci0: Direct firmware load for mediatek/BT_RAM_CODE_MT7961_1a_2_hdr.bin failed with error -2
[    5.017163] Bluetooth: hci0: Failed to load firmware file (-2)
[    5.017557] Bluetooth: hci0: Failed to set up firmware (-2)
[    5.018129] Bluetooth: hci0: HCI Enhanced Setup Synchronous Connection command is advertised, but not supported.

The correct name should be mediatek/BT_RAM_CODE_MT7961_1_2_hdr.bin

Reverting this patch fixes things

Cheers

Mike
Mike Lothian April 1, 2024, 3:20 p.m. UTC | #4
On Mon, 1 Apr 2024 at 15:44, Mike Lothian <mike@fireburn.co.uk> wrote:
>
> Hi
>
> I think this patch is causing issues with older firmware
>
> Bus 003 Device 002: ID 13d3:3563 IMC Networks Wireless_Device
>
> [    0.315064] Bluetooth: Core ver 2.22
> [    0.315064] NET: Registered PF_BLUETOOTH protocol family
> [    0.315064] Bluetooth: HCI device and connection manager initialized
> [    0.315064] Bluetooth: HCI socket layer initialized
> [    0.315064] Bluetooth: L2CAP socket layer initialized
> [    0.315064] Bluetooth: SCO socket layer initialized
> [    4.670811] Bluetooth: RFCOMM TTY layer initialized
> [    4.671029] Bluetooth: RFCOMM socket layer initialized
> [    4.671790] Bluetooth: RFCOMM ver 1.11
> [    4.673416] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
> [    4.673659] Bluetooth: BNEP filters: protocol multicast
> [    4.673895] Bluetooth: BNEP socket layer initialized
> [    4.674125] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
> [    4.674360] Bluetooth: HIDP socket layer initialized
> [    5.016365] bluetooth hci0: Direct firmware load for mediatek/BT_RAM_CODE_MT7961_1a_2_hdr.bin failed with error -2
> [    5.017163] Bluetooth: hci0: Failed to load firmware file (-2)
> [    5.017557] Bluetooth: hci0: Failed to set up firmware (-2)
> [    5.018129] Bluetooth: hci0: HCI Enhanced Setup Synchronous Connection command is advertised, but not supported.
>
> The correct name should be mediatek/BT_RAM_CODE_MT7961_1_2_hdr.bin
>
> Reverting this patch fixes things
>
> Cheers
>
> Mike

If it helps, the device ID is 0x7961 and the fw_flavour is 24 or 0x18 in hex
Thorsten Leemhuis April 5, 2024, 8:34 a.m. UTC | #5
[CCing the regression list, as it should be in the loop for regressions:
https://docs.kernel.org/admin-guide/reporting-regressions.html]

On 01.04.24 17:20, Mike Lothian wrote:
> On Mon, 1 Apr 2024 at 15:44, Mike Lothian <mike@fireburn.co.uk> wrote:
>>
>> I think this patch is causing issues with older firmware
>>
>> Bus 003 Device 002: ID 13d3:3563 IMC Networks Wireless_Device
>>
>> [    0.315064] Bluetooth: Core ver 2.22
>> [    0.315064] NET: Registered PF_BLUETOOTH protocol family
>> [    0.315064] Bluetooth: HCI device and connection manager initialized
>> [    0.315064] Bluetooth: HCI socket layer initialized
>> [    0.315064] Bluetooth: L2CAP socket layer initialized
>> [    0.315064] Bluetooth: SCO socket layer initialized
>> [    4.670811] Bluetooth: RFCOMM TTY layer initialized
>> [    4.671029] Bluetooth: RFCOMM socket layer initialized
>> [    4.671790] Bluetooth: RFCOMM ver 1.11
>> [    4.673416] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
>> [    4.673659] Bluetooth: BNEP filters: protocol multicast
>> [    4.673895] Bluetooth: BNEP socket layer initialized
>> [    4.674125] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
>> [    4.674360] Bluetooth: HIDP socket layer initialized
>> [    5.016365] bluetooth hci0: Direct firmware load for mediatek/BT_RAM_CODE_MT7961_1a_2_hdr.bin failed with error -2
>> [    5.017163] Bluetooth: hci0: Failed to load firmware file (-2)
>> [    5.017557] Bluetooth: hci0: Failed to set up firmware (-2)
>> [    5.018129] Bluetooth: hci0: HCI Enhanced Setup Synchronous Connection command is advertised, but not supported.
>>
>> The correct name should be mediatek/BT_RAM_CODE_MT7961_1_2_hdr.bin
>>
>> Reverting this patch fixes things
> 
> If it helps, the device ID is 0x7961 and the fw_flavour is 24 or 0x18 in hex

Thanks for the report!

Peter, did you look into this?

Anyway: To be sure the issue doesn't fall through the cracks unnoticed,
I'm adding it to regzbot, the Linux kernel regression tracking bot:

#regzbot report:
https://lore.kernel.org/all/20240401144424.1714-1-mike@fireburn.co.uk/
#regzbot introduced: 1cb63d80fff6c4
#regzbot title: net: Bluetooth: firmware loading problems with older
firmware
#regzbot ignore-activity

Ciao, Thorsten (wearing his 'the Linux kernel's regression tracker' hat)
--
Everything you wanna know about Linux kernel regression tracking:
https://linux-regtracking.leemhuis.info/about/#tldr
That page also explains what to do if mails like this annoy you.
Deren Wu April 5, 2024, 9:15 a.m. UTC | #6
Hi Thorsten,

Thanks for the note. We are looking for solution for this issue. Peter
would post the new patch. :)

Regards,
Deren

On Fri, 2024-04-05 at 10:34 +0200, Linux regression tracking (Thorsten
Leemhuis) wrote:
> [CCing the regression list, as it should be in the loop for
> regressions:
> 
https://urldefense.com/v3/__https://docs.kernel.org/admin-guide/reporting-regressions.html__;!!CTRNKA9wMg0ARbw!n9OQDQtfMiQdddzNLvMEOMLnnEHhw12KRY5W5YPscQJTiNQtuIVuJufNc2UYpy-rUlRtMUwZsL5NDERIf1CoGox8J2I$
>  ]
> 
> On 01.04.24 17:20, Mike Lothian wrote:
> > On Mon, 1 Apr 2024 at 15:44, Mike Lothian <mike@fireburn.co.uk>
> > wrote:
> > > 
> > > I think this patch is causing issues with older firmware
> > > 
> > > Bus 003 Device 002: ID 13d3:3563 IMC Networks Wireless_Device
> > > 
> > > [    0.315064] Bluetooth: Core ver 2.22
> > > [    0.315064] NET: Registered PF_BLUETOOTH protocol family
> > > [    0.315064] Bluetooth: HCI device and connection manager
> > > initialized
> > > [    0.315064] Bluetooth: HCI socket layer initialized
> > > [    0.315064] Bluetooth: L2CAP socket layer initialized
> > > [    0.315064] Bluetooth: SCO socket layer initialized
> > > [    4.670811] Bluetooth: RFCOMM TTY layer initialized
> > > [    4.671029] Bluetooth: RFCOMM socket layer initialized
> > > [    4.671790] Bluetooth: RFCOMM ver 1.11
> > > [    4.673416] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
> > > [    4.673659] Bluetooth: BNEP filters: protocol multicast
> > > [    4.673895] Bluetooth: BNEP socket layer initialized
> > > [    4.674125] Bluetooth: HIDP (Human Interface Emulation) ver
> > > 1.2
> > > [    4.674360] Bluetooth: HIDP socket layer initialized
> > > [    5.016365] bluetooth hci0: Direct firmware load for
> > > mediatek/BT_RAM_CODE_MT7961_1a_2_hdr.bin failed with error -2
> > > [    5.017163] Bluetooth: hci0: Failed to load firmware file (-2)
> > > [    5.017557] Bluetooth: hci0: Failed to set up firmware (-2)
> > > [    5.018129] Bluetooth: hci0: HCI Enhanced Setup Synchronous
> > > Connection command is advertised, but not supported.
> > > 
> > > The correct name should be
> > > mediatek/BT_RAM_CODE_MT7961_1_2_hdr.bin
> > > 
> > > Reverting this patch fixes things
> > 
> > If it helps, the device ID is 0x7961 and the fw_flavour is 24 or
> > 0x18 in hex
> 
> Thanks for the report!
> 
> Peter, did you look into this?
> 
> Anyway: To be sure the issue doesn't fall through the cracks
> unnoticed,
> I'm adding it to regzbot, the Linux kernel regression tracking bot:
> 
> #regzbot report:
> 
https://lore.kernel.org/all/20240401144424.1714-1-mike@fireburn.co.uk/
> #regzbot introduced: 1cb63d80fff6c4
> #regzbot title: net: Bluetooth: firmware loading problems with older
> firmware
> #regzbot ignore-activity
> 
> Ciao, Thorsten (wearing his 'the Linux kernel's regression tracker'
> hat)
> --
> Everything you wanna know about Linux kernel regression tracking:
> 
https://urldefense.com/v3/__https://linux-regtracking.leemhuis.info/about/*tldr__;Iw!!CTRNKA9wMg0ARbw!n9OQDQtfMiQdddzNLvMEOMLnnEHhw12KRY5W5YPscQJTiNQtuIVuJufNc2UYpy-rUlRtMUwZsL5NDERIf1CoQcaol0s$
>  
> That page also explains what to do if mails like this annoy you.
Thorsten Leemhuis April 15, 2024, 12:30 p.m. UTC | #7
On 05.04.24 11:15, Deren Wu (武德仁) wrote:
> 
> Thanks for the note. We are looking for solution for this issue. Peter
> would post the new patch. :)

Anyone still working on this, as that afaics did not happen -- or was
there progress and I just missed it?

Ciao, Thorsten (wearing his 'the Linux kernel's regression tracker' hat)
--
Everything you wanna know about Linux kernel regression tracking:
https://linux-regtracking.leemhuis.info/about/#tldr
If I did something stupid, please tell me, as explained on that page.

#regzbot poke

> On Fri, 2024-04-05 at 10:34 +0200, Linux regression tracking (Thorsten
> Leemhuis) wrote:
>> [CCing the regression list, as it should be in the loop for
>> regressions:
>>
> https://urldefense.com/v3/__https://docs.kernel.org/admin-guide/reporting-regressions.html__;!!CTRNKA9wMg0ARbw!n9OQDQtfMiQdddzNLvMEOMLnnEHhw12KRY5W5YPscQJTiNQtuIVuJufNc2UYpy-rUlRtMUwZsL5NDERIf1CoGox8J2I$
>>  ]
>>
>> On 01.04.24 17:20, Mike Lothian wrote:
>>> On Mon, 1 Apr 2024 at 15:44, Mike Lothian <mike@fireburn.co.uk>
>>> wrote:
>>>>
>>>> I think this patch is causing issues with older firmware
>>>>
>>>> Bus 003 Device 002: ID 13d3:3563 IMC Networks Wireless_Device
>>>>
>>>> [    0.315064] Bluetooth: Core ver 2.22
>>>> [    0.315064] NET: Registered PF_BLUETOOTH protocol family
>>>> [    0.315064] Bluetooth: HCI device and connection manager
>>>> initialized
>>>> [    0.315064] Bluetooth: HCI socket layer initialized
>>>> [    0.315064] Bluetooth: L2CAP socket layer initialized
>>>> [    0.315064] Bluetooth: SCO socket layer initialized
>>>> [    4.670811] Bluetooth: RFCOMM TTY layer initialized
>>>> [    4.671029] Bluetooth: RFCOMM socket layer initialized
>>>> [    4.671790] Bluetooth: RFCOMM ver 1.11
>>>> [    4.673416] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
>>>> [    4.673659] Bluetooth: BNEP filters: protocol multicast
>>>> [    4.673895] Bluetooth: BNEP socket layer initialized
>>>> [    4.674125] Bluetooth: HIDP (Human Interface Emulation) ver
>>>> 1.2
>>>> [    4.674360] Bluetooth: HIDP socket layer initialized
>>>> [    5.016365] bluetooth hci0: Direct firmware load for
>>>> mediatek/BT_RAM_CODE_MT7961_1a_2_hdr.bin failed with error -2
>>>> [    5.017163] Bluetooth: hci0: Failed to load firmware file (-2)
>>>> [    5.017557] Bluetooth: hci0: Failed to set up firmware (-2)
>>>> [    5.018129] Bluetooth: hci0: HCI Enhanced Setup Synchronous
>>>> Connection command is advertised, but not supported.
>>>>
>>>> The correct name should be
>>>> mediatek/BT_RAM_CODE_MT7961_1_2_hdr.bin
>>>>
>>>> Reverting this patch fixes things
>>>
>>> If it helps, the device ID is 0x7961 and the fw_flavour is 24 or
>>> 0x18 in hex
>>
>> Thanks for the report!
>>
>> Peter, did you look into this?
>>
>> Anyway: To be sure the issue doesn't fall through the cracks
>> unnoticed,
>> I'm adding it to regzbot, the Linux kernel regression tracking bot:
>>
>> #regzbot report:
>>
> https://lore.kernel.org/all/20240401144424.1714-1-mike@fireburn.co.uk/
>> #regzbot introduced: 1cb63d80fff6c4
>> #regzbot title: net: Bluetooth: firmware loading problems with older
>> firmware
>> #regzbot ignore-activity
>>
>> Ciao, Thorsten (wearing his 'the Linux kernel's regression tracker'
>> hat)
>> --
>> Everything you wanna know about Linux kernel regression tracking:
>>
> https://urldefense.com/v3/__https://linux-regtracking.leemhuis.info/about/*tldr__;Iw!!CTRNKA9wMg0ARbw!n9OQDQtfMiQdddzNLvMEOMLnnEHhw12KRY5W5YPscQJTiNQtuIVuJufNc2UYpy-rUlRtMUwZsL5NDERIf1CoQcaol0s$
>>  
>> That page also explains what to do if mails like this annoy you.
diff mbox series

Patch

diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
index edfb49bbaa28..ba6ac853110b 100644
--- a/drivers/bluetooth/btusb.c
+++ b/drivers/bluetooth/btusb.c
@@ -3088,7 +3088,7 @@  static int btusb_mtk_setup(struct hci_dev *hdev)
 	int err, status;
 	u32 dev_id = 0;
 	char fw_bin_name[64];
-	u32 fw_version = 0;
+	u32 fw_version = 0, fw_flavor = 0;
 	u8 param;
 	struct btmediatek_data *mediatek;
 
@@ -3111,6 +3111,11 @@  static int btusb_mtk_setup(struct hci_dev *hdev)
 			bt_dev_err(hdev, "Failed to get fw version (%d)", err);
 			return err;
 		}
+		err = btusb_mtk_id_get(data, 0x70010020, &fw_flavor);
+		if (err < 0) {
+			bt_dev_err(hdev, "Failed to get fw flavor (%d)", err);
+			return err;
+		}
 	}
 
 	mediatek = hci_get_priv(hdev);
@@ -3135,6 +3140,10 @@  static int btusb_mtk_setup(struct hci_dev *hdev)
 			snprintf(fw_bin_name, sizeof(fw_bin_name),
 				 "mediatek/mt%04x/BT_RAM_CODE_MT%04x_1_%x_hdr.bin",
 				 dev_id & 0xffff, dev_id & 0xffff, (fw_version & 0xff) + 1);
+		else if (dev_id == 0x7961 && fw_flavor)
+			snprintf(fw_bin_name, sizeof(fw_bin_name),
+				 "mediatek/BT_RAM_CODE_MT%04x_1a_%x_hdr.bin",
+				 dev_id & 0xffff, (fw_version & 0xff) + 1);
 		else
 			snprintf(fw_bin_name, sizeof(fw_bin_name),
 				 "mediatek/BT_RAM_CODE_MT%04x_1_%x_hdr.bin",