Re: [PATCH v3 1/2] Bluetooth: btrtl: Adjust the position of strcut definition

From: Marcel Holtmann
Date: Fri Apr 23 2021 - 02:56:25 EST


Hi Hilda,

> Adjust the position of strcut definition for btrtl and hci_h5.
> The purpose is to avoid re-defining some chip features and let UART devices
> get relevant information too.
>
> Signed-off-by: hildawu <hildawu@xxxxxxxxxxx>
> ---
> drivers/bluetooth/btrtl.c | 36 ------------------------------------
> drivers/bluetooth/btrtl.h | 36 +++++++++++++++++++++++++++++++++++-
> 2 files changed, 35 insertions(+), 37 deletions(-)
>
> diff --git a/drivers/bluetooth/btrtl.c b/drivers/bluetooth/btrtl.c
> index e7fe5fb22753..94d1e7885aee 100644
> --- a/drivers/bluetooth/btrtl.c
> +++ b/drivers/bluetooth/btrtl.c
> @@ -38,42 +38,6 @@
> .hci_ver = (hciv), \
> .hci_bus = (bus)
>
> -enum btrtl_chip_id {
> - CHIP_ID_8723A,
> - CHIP_ID_8723B,
> - CHIP_ID_8821A,
> - CHIP_ID_8761A,
> - CHIP_ID_8822B = 8,
> - CHIP_ID_8723D,
> - CHIP_ID_8821C,
> - CHIP_ID_8822C = 13,
> - CHIP_ID_8761B,
> - CHIP_ID_8852A = 18,
> -};
> -
> -struct id_table {
> - __u16 match_flags;
> - __u16 lmp_subver;
> - __u16 hci_rev;
> - __u8 hci_ver;
> - __u8 hci_bus;
> - bool config_needed;
> - bool has_rom_version;
> - char *fw_name;
> - char *cfg_name;
> -};
> -
> -struct btrtl_device_info {
> - const struct id_table *ic_info;
> - u8 rom_version;
> - u8 *fw_data;
> - int fw_len;
> - u8 *cfg_data;
> - int cfg_len;
> - bool drop_fw;
> - int project_id;
> -};
> -
> static const struct id_table ic_id_table[] = {
> /* 8723A */
> { IC_INFO(RTL_ROM_LMP_8723A, 0xb, 0x6, HCI_USB),
> diff --git a/drivers/bluetooth/btrtl.h b/drivers/bluetooth/btrtl.h
> index 2a582682136d..08bda0597c0c 100644
> --- a/drivers/bluetooth/btrtl.h
> +++ b/drivers/bluetooth/btrtl.h
> @@ -12,7 +12,41 @@
> #define rtl_dev_info(dev, fmt, ...) bt_dev_info(dev, "RTL: " fmt, ##__VA_ARGS__)
> #define rtl_dev_dbg(dev, fmt, ...) bt_dev_dbg(dev, "RTL: " fmt, ##__VA_ARGS__)
>
> -struct btrtl_device_info;
> +enum btrtl_chip_id {
> + CHIP_ID_8723A,
> + CHIP_ID_8723B,
> + CHIP_ID_8821A,
> + CHIP_ID_8761A,
> + CHIP_ID_8822B = 8,
> + CHIP_ID_8723D,
> + CHIP_ID_8821C,
> + CHIP_ID_8822C = 13,
> + CHIP_ID_8761B,
> + CHIP_ID_8852A = 18,
> +};
> +
> +struct id_table {
> + __u16 match_flags;
> + __u16 lmp_subver;
> + __u16 hci_rev;
> + __u8 hci_ver;
> + __u8 hci_bus;
> + bool config_needed;
> + bool has_rom_version;
> + char *fw_name;
> + char *cfg_name;
> +};
> +
> +struct btrtl_device_info {
> + const struct id_table *ic_info;
> + u8 rom_version;
> + u8 *fw_data;
> + int fw_len;
> + u8 *cfg_data;
> + int cfg_len;
> + bool drop_fw;
> + int project_id;
> +};

I really doubt that you need to expose all of these. Provide access function if needed.

Regards

Marcel