From 24cb8c25ab8961de1e2c567b44c32e846f8a6a34 Mon Sep 17 00:00:00 2001 From: Xiang Xiao Date: Thu, 17 Oct 2024 18:50:38 +0800 Subject: [PATCH] bluetooth: Fix the incompatibility made by https://github.com/apache/nuttx/pull/14224 that pr requires chip turn on CONFIG_DRIVERS_BLUETOOTH to use bluetooth, but not all defconig enable this option, so let's map bt_driver_register to bt_netdev_register in header file in this case, and revert the unnessary change in the related chip and board folders. Signed-off-by: Xiang Xiao --- arch/arm/src/nrf52/nrf52_sdc.c | 2 -- arch/arm/src/nrf53/nrf53_sdc.c | 2 -- arch/arm/src/stm32wb/stm32wb_blehci.c | 2 -- arch/sim/src/sim/sim_hcisocket.c | 4 ---- arch/xtensa/src/esp32/esp32_ble.c | 2 -- arch/xtensa/src/esp32s3/esp32s3_ble.c | 2 -- .../nrf5340-dk/configs/sdc_cpunet/defconfig | 2 -- .../configs/sdc_nimble_cpunet/defconfig | 2 -- drivers/wireless/bluetooth/bt_driver.c | 18 +++++------------- include/nuttx/wireless/bluetooth/bt_driver.h | 8 +++++++- 10 files changed, 12 insertions(+), 32 deletions(-) diff --git a/arch/arm/src/nrf52/nrf52_sdc.c b/arch/arm/src/nrf52/nrf52_sdc.c index b127d0e53e..ef00aabe7c 100644 --- a/arch/arm/src/nrf52/nrf52_sdc.c +++ b/arch/arm/src/nrf52/nrf52_sdc.c @@ -914,14 +914,12 @@ int nrf52_sdc_initialize(void) return ret; } -#ifdef CONFIG_DRIVERS_BLUETOOTH ret = bt_driver_register(&g_bt_driver); if (ret < 0) { wlerr("bt_driver_register error: %d\n", ret); return ret; } -#endif return ret; } diff --git a/arch/arm/src/nrf53/nrf53_sdc.c b/arch/arm/src/nrf53/nrf53_sdc.c index a73231b298..7179c0e874 100644 --- a/arch/arm/src/nrf53/nrf53_sdc.c +++ b/arch/arm/src/nrf53/nrf53_sdc.c @@ -907,14 +907,12 @@ int nrf53_sdc_initialize(void) return ret; } -#ifdef CONFIG_DRIVERS_BLUETOOTH ret = bt_driver_register(&g_bt_driver); if (ret < 0) { wlerr("bt_driver_register error: %d\n", ret); return ret; } -#endif return ret; } diff --git a/arch/arm/src/stm32wb/stm32wb_blehci.c b/arch/arm/src/stm32wb/stm32wb_blehci.c index b55de999e1..6865295c40 100644 --- a/arch/arm/src/stm32wb/stm32wb_blehci.c +++ b/arch/arm/src/stm32wb/stm32wb_blehci.c @@ -332,14 +332,12 @@ static int stm32wb_blehci_driverinitialize(void) { int ret = 0; -#ifdef CONFIG_DRIVERS_BLUETOOTH ret = bt_driver_register(&g_blehci_driver); if (ret < 0) { wlerr("bt_driver_register error: %d\n", ret); return ret; } -#endif return ret; } diff --git a/arch/sim/src/sim/sim_hcisocket.c b/arch/sim/src/sim/sim_hcisocket.c index ad444791a0..2d1ec723c2 100644 --- a/arch/sim/src/sim/sim_hcisocket.c +++ b/arch/sim/src/sim/sim_hcisocket.c @@ -305,7 +305,6 @@ int sim_bthcisock_register(int dev_id) return -ENOMEM; } -#ifdef CONFIG_DRIVERS_BLUETOOTH ret = bt_driver_register_with_id(&dev->drv, dev_id); if (ret < 0) { @@ -313,9 +312,6 @@ int sim_bthcisock_register(int dev_id) bthcisock_free(dev); return ret; } -#else -# error "Please select CONFIG_DRIVERS_BLUETOOTH" -#endif return work_queue(HPWORK, &dev->worker, sim_bthcisock_work, dev, 0); } diff --git a/arch/xtensa/src/esp32/esp32_ble.c b/arch/xtensa/src/esp32/esp32_ble.c index b65574185d..16f1b2a2b6 100644 --- a/arch/xtensa/src/esp32/esp32_ble.c +++ b/arch/xtensa/src/esp32/esp32_ble.c @@ -318,14 +318,12 @@ int esp32_ble_initialize(void) return ERROR; } -#ifdef CONFIG_DRIVERS_BLUETOOTH ret = bt_driver_register(&g_ble_priv.drv); if (ret < 0) { wlerr("bt_driver_register error: %d\n", ret); return ret; } -#endif return OK; } diff --git a/arch/xtensa/src/esp32s3/esp32s3_ble.c b/arch/xtensa/src/esp32s3/esp32s3_ble.c index 1b8098e395..8010cb4371 100644 --- a/arch/xtensa/src/esp32s3/esp32s3_ble.c +++ b/arch/xtensa/src/esp32s3/esp32s3_ble.c @@ -306,14 +306,12 @@ int esp32s3_ble_initialize(void) return ERROR; } -#ifdef CONFIG_DRIVERS_BLUETOOTH ret = bt_driver_register(&g_ble_priv.drv); if (ret < 0) { wlerr("bt_driver_register error: %d\n", ret); return ret; } -#endif return OK; } diff --git a/boards/arm/nrf53/nrf5340-dk/configs/sdc_cpunet/defconfig b/boards/arm/nrf53/nrf5340-dk/configs/sdc_cpunet/defconfig index 566bb33538..d1d3fe10bb 100644 --- a/boards/arm/nrf53/nrf5340-dk/configs/sdc_cpunet/defconfig +++ b/boards/arm/nrf53/nrf5340-dk/configs/sdc_cpunet/defconfig @@ -30,8 +30,6 @@ CONFIG_BTSAK=y CONFIG_BUILTIN=y CONFIG_DEFAULT_SMALL=y CONFIG_DISABLE_MQUEUE_SYSV=y -CONFIG_DRIVERS_BLUETOOTH=y -CONFIG_DRIVERS_WIRELESS=y CONFIG_EXPERIMENTAL=y CONFIG_FAT_LCNAMES=y CONFIG_FAT_LFN=y diff --git a/boards/arm/nrf53/nrf5340-dk/configs/sdc_nimble_cpunet/defconfig b/boards/arm/nrf53/nrf5340-dk/configs/sdc_nimble_cpunet/defconfig index f968544cad..d351b06c94 100644 --- a/boards/arm/nrf53/nrf5340-dk/configs/sdc_nimble_cpunet/defconfig +++ b/boards/arm/nrf53/nrf5340-dk/configs/sdc_nimble_cpunet/defconfig @@ -34,8 +34,6 @@ CONFIG_BOARDCTL_MKRD=y CONFIG_BOARD_LOOPSPERMSEC=5500 CONFIG_DEFAULT_SMALL=y CONFIG_DISABLE_MQUEUE_SYSV=y -CONFIG_DRIVERS_BLUETOOTH=y -CONFIG_DRIVERS_WIRELESS=y CONFIG_EXAMPLES_NIMBLE=y CONFIG_EXPERIMENTAL=y CONFIG_FILE_STREAM=y diff --git a/drivers/wireless/bluetooth/bt_driver.c b/drivers/wireless/bluetooth/bt_driver.c index fcf371f552..c30ef44825 100644 --- a/drivers/wireless/bluetooth/bt_driver.c +++ b/drivers/wireless/bluetooth/bt_driver.c @@ -44,20 +44,12 @@ ****************************************************************************/ static int bt_driver_register_internal(FAR struct bt_driver_s *driver, - int id, bool bt) + FAR const char *prefix, int id) { #ifdef CONFIG_UART_BTH4 char name[32]; - if (bt) - { - snprintf(name, sizeof(name), "/dev/ttyBT%d", id); - } - else - { - snprintf(name, sizeof(name), "/dev/ttyBLE%d", id); - } - + snprintf(name, sizeof(name), prefix, id); return uart_bth4_register(name, driver); #elif defined(CONFIG_NET_BLUETOOTH) return bt_netdev_register(driver); @@ -109,20 +101,20 @@ int bt_driver_register_with_id(FAR struct bt_driver_s *driver, int id) return ret; } - ret = bt_driver_register_internal(btdrv, id, true); + ret = bt_driver_register_internal(btdrv, "/dev/ttyBT%d", id); if (ret < 0) { return ret; } - ret = bt_driver_register_internal(bledrv, id, false); + ret = bt_driver_register_internal(bledrv, "/dev/ttyBLE%d", id); if (ret < 0) { return ret; } #else - ret = bt_driver_register_internal(driver, id, true); + ret = bt_driver_register_internal(driver, "/dev/ttyHCI%d", id); if (ret < 0) { return ret; diff --git a/include/nuttx/wireless/bluetooth/bt_driver.h b/include/nuttx/wireless/bluetooth/bt_driver.h index 4d61a67f5a..53a5f6cc39 100644 --- a/include/nuttx/wireless/bluetooth/bt_driver.h +++ b/include/nuttx/wireless/bluetooth/bt_driver.h @@ -49,8 +49,12 @@ #define bt_netdev_receive(btdev, type, data, len) \ (btdev)->receive(btdev, type, data, len) -#define bt_driver_register(btdev) \ +#ifdef CONFIG_DRIVERS_BLUETOOTH +# define bt_driver_register(btdev) \ bt_driver_register_with_id(btdev, CONFIG_BLUETOOTH_DEVICE_ID) +#else +# define bt_driver_register(btdev) bt_netdev_register(btdev) +#endif /**************************************************************************** * Public Types @@ -155,6 +159,8 @@ int bt_netdev_unregister(FAR struct bt_driver_s *btdev); * ****************************************************************************/ +#ifdef CONFIG_DRIVERS_BLUETOOTH int bt_driver_register_with_id(FAR struct bt_driver_s *driver, int id); +#endif #endif /* __INCLUDE_NUTTX_WIRELESS_BLUETOOTH_BT_DRIVER_H */