From: Max Chou <max.chou@realtek.com>
To: Paul Menzel <pmenzel@molgen.mpg.de>
Cc: "marcel@holtmann.org" <marcel@holtmann.org>,
"johan.hedberg@gmail.com" <johan.hedberg@gmail.com>,
"luiz.dentz@gmail.com" <luiz.dentz@gmail.com>,
"linux-bluetooth@vger.kernel.org"
<linux-bluetooth@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"alex_lu@realsil.com.cn" <alex_lu@realsil.com.cn>,
Hilda Wu <hildawu@realtek.com>, Karen Hsu <karenhsu@realtek.com>
Subject: RE: [PATCH] Bluetooth: btrtl: Add the support for RTL8852BT/RTL8852BE-VT
Date: Tue, 26 Dec 2023 11:28:28 +0000 [thread overview]
Message-ID: <00cfe6d5e12d4b86ae68354bb635651e@realtek.com> (raw)
In-Reply-To: <e9586bad-0101-415e-ba34-390fd34bf252@molgen.mpg.de>
Hi! Paul,
If the USB VID is 0x0bda, it will be determined to Realtek device as below.
/* Realtek Bluetooth devices */
{ USB_VENDOR_AND_INTERFACE_INFO(0x0bda, 0xe0, 0x01, 0x01),
.driver_info = BTUSB_REALTEK },
In btrtl.c, btrtl_setup_realtek() will judge what the chip is and start the initialization for firmware download.
Hence, PID is not necessary.
However, I will send the v2 for the ID info. Thanks for the advice.
BRs,
Max
-----Original Message-----
From: Paul Menzel <pmenzel@molgen.mpg.de>
Sent: Tuesday, December 26, 2023 4:39 PM
To: Max Chou <max.chou@realtek.com>
Cc: marcel@holtmann.org; johan.hedberg@gmail.com; luiz.dentz@gmail.com; linux-bluetooth@vger.kernel.org; linux-kernel@vger.kernel.org; alex_lu@realsil.com.cn; Hilda Wu <hildawu@realtek.com>; Karen Hsu <karenhsu@realtek.com>
Subject: Re: [PATCH] Bluetooth: btrtl: Add the support for RTL8852BT/RTL8852BE-VT
External mail.
Dear Max,
Thank you for your patch.
Am 26.12.23 um 02:57 schrieb max.chou@realtek.com:
> From: Max Chou <max.chou@realtek.com>
>
> Add the support for RTL8852BT/RTL8852BE-VT BT controller on USB interface.
It’d be great if you stated, how it differs from the existing devices.
Judging from your diff, only the ids need to be added.
> The necessary firmware will be submitted to linux-firmware project.
>
> The device info from /sys/kernel/debug/usb/devices as below.
>
> T: Bus=02 Lev=02 Prnt=02 Port=05 Cnt=01 Dev#= 8 Spd=12 MxCh= 0
> D: Ver= 1.00 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
> P: Vendor=0bda ProdID=8520 Rev= 0.00
> S: Manufacturer=Realtek
> S: Product=Bluetooth Radio
> S: SerialNumber=00e04c000001
> C:* #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=500mA
> 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=1ms
> E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
> E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
> I:* If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
> E: Ad=03(O) Atr=01(Isoc) MxPS= 0 Ivl=1ms
> E: Ad=83(I) 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=03(O) Atr=01(Isoc) MxPS= 9 Ivl=1ms
> E: Ad=83(I) 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=03(O) Atr=01(Isoc) MxPS= 17 Ivl=1ms
> E: Ad=83(I) 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=03(O) Atr=01(Isoc) MxPS= 25 Ivl=1ms
> E: Ad=83(I) 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=03(O) Atr=01(Isoc) MxPS= 33 Ivl=1ms
> E: Ad=83(I) 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=03(O) Atr=01(Isoc) MxPS= 49 Ivl=1ms
> E: Ad=83(I) Atr=01(Isoc) MxPS= 49 Ivl=1ms
>
> Signed-off-by: Max Chou <max.chou@realtek.com>
> ---
> drivers/bluetooth/btrtl.c | 14 ++++++++++++++
> 1 file changed, 14 insertions(+)
>
> diff --git a/drivers/bluetooth/btrtl.c b/drivers/bluetooth/btrtl.c
> index 277d039ecbb4..cc50de69e8dc 100644
> --- a/drivers/bluetooth/btrtl.c
> +++ b/drivers/bluetooth/btrtl.c
> @@ -69,6 +69,7 @@ enum btrtl_chip_id {
> CHIP_ID_8852B = 20,
> CHIP_ID_8852C = 25,
> CHIP_ID_8851B = 36,
> + CHIP_ID_8852BT = 47,
> };
>
> struct id_table {
> @@ -307,6 +308,15 @@ static const struct id_table ic_id_table[] = {
> .fw_name = "rtl_bt/rtl8851bu_fw",
> .cfg_name = "rtl_bt/rtl8851bu_config",
> .hw_info = "rtl8851bu" },
> +
> + /* 8852BT/8852BE-VT */
> + { IC_INFO(RTL_ROM_LMP_8852A, 0x87, 0xc, HCI_USB),
> + .config_needed = false,
> + .has_rom_version = true,
> + .has_msft_ext = true,
> + .fw_name = "rtl_bt/rtl8852btu_fw",
> + .cfg_name = "rtl_bt/rtl8852btu_config",
> + .hw_info = "rtl8852btu" },
> };
>
> static const struct id_table *btrtl_match_ic(u16 lmp_subver, u16
> hci_rev, @@ -645,6 +655,7 @@ static int rtlbt_parse_firmware(struct hci_dev *hdev,
> { RTL_ROM_LMP_8852A, 20 }, /* 8852B */
> { RTL_ROM_LMP_8852A, 25 }, /* 8852C */
> { RTL_ROM_LMP_8851B, 36 }, /* 8851B */
> + { RTL_ROM_LMP_8852A, 47 }, /* 8852BT */
> };
>
> if (btrtl_dev->fw_len <= 8)
> @@ -1275,6 +1286,7 @@ void btrtl_set_quirks(struct hci_dev *hdev, struct btrtl_device_info *btrtl_dev)
> case CHIP_ID_8852B:
> case CHIP_ID_8852C:
> case CHIP_ID_8851B:
> + case CHIP_ID_8852BT:
> set_bit(HCI_QUIRK_VALID_LE_STATES, &hdev->quirks);
> set_bit(HCI_QUIRK_WIDEBAND_SPEECH_SUPPORTED,
> &hdev->quirks);
>
> @@ -1505,6 +1517,8 @@ MODULE_FIRMWARE("rtl_bt/rtl8852bs_fw.bin");
> MODULE_FIRMWARE("rtl_bt/rtl8852bs_config.bin");
> MODULE_FIRMWARE("rtl_bt/rtl8852bu_fw.bin");
> MODULE_FIRMWARE("rtl_bt/rtl8852bu_config.bin");
> +MODULE_FIRMWARE("rtl_bt/rtl8852btu_fw.bin");
> +MODULE_FIRMWARE("rtl_bt/rtl8852btu_config.bin");
Should btu be ordered before bu?
> MODULE_FIRMWARE("rtl_bt/rtl8852cu_fw.bin");
> MODULE_FIRMWARE("rtl_bt/rtl8852cu_fw_v2.bin");
> MODULE_FIRMWARE("rtl_bt/rtl8852cu_config.bin");
Kind regards,
Paul
prev parent reply other threads:[~2023-12-26 11:29 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-12-26 1:57 [PATCH] Bluetooth: btrtl: Add the support for RTL8852BT/RTL8852BE-VT max.chou
2023-12-26 2:42 ` bluez.test.bot
2023-12-26 8:38 ` [PATCH] " Paul Menzel
2023-12-26 11:28 ` Max Chou [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=00cfe6d5e12d4b86ae68354bb635651e@realtek.com \
--to=max.chou@realtek.com \
--cc=alex_lu@realsil.com.cn \
--cc=hildawu@realtek.com \
--cc=johan.hedberg@gmail.com \
--cc=karenhsu@realtek.com \
--cc=linux-bluetooth@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=luiz.dentz@gmail.com \
--cc=marcel@holtmann.org \
--cc=pmenzel@molgen.mpg.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.