You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by xi...@apache.org on 2022/08/27 14:38:48 UTC

[incubator-nuttx] branch master updated (d7e2704dff -> 38af5befad)

This is an automated email from the ASF dual-hosted git repository.

xiaoxiang pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git


    from d7e2704dff arch/stm32/stm32_adc.c: cosmetics
     new b352a625bf arch/sim: add bth4 bridge codes
     new 38af5befad bt_bridge: Fix error: address argument to atomic operation must be a pointer to _Atomic type

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 arch/sim/src/sim/up_hcisocket.c             | 61 +++++++++++++++++++++++++----
 boards/sim/sim/sim/configs/btuart/defconfig |  2 +-
 drivers/wireless/bluetooth/bt_bridge.c      |  2 +-
 3 files changed, 56 insertions(+), 9 deletions(-)


[incubator-nuttx] 02/02: bt_bridge: Fix error: address argument to atomic operation must be a pointer to _Atomic type

Posted by xi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

xiaoxiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git

commit 38af5befad69e56c4d8f5d1a0ac6537e0363420f
Author: Xiang Xiao <xi...@xiaomi.com>
AuthorDate: Fri Aug 26 14:54:42 2022 +0800

    bt_bridge: Fix error: address argument to atomic operation must be a pointer to _Atomic type
    
    Signed-off-by: Xiang Xiao <xi...@xiaomi.com>
---
 drivers/wireless/bluetooth/bt_bridge.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/wireless/bluetooth/bt_bridge.c b/drivers/wireless/bluetooth/bt_bridge.c
index eb0df53bfb..9ef41c06b4 100644
--- a/drivers/wireless/bluetooth/bt_bridge.c
+++ b/drivers/wireless/bluetooth/bt_bridge.c
@@ -69,7 +69,7 @@ struct bt_bridge_s
 #ifdef CONFIG_BLUETOOTH_BRIDGE_BTSNOOP
   FAR struct snoop_s       *snoop;
 #endif /* CONFIG_BLUETOOTH_BRIDGE_BTSNOOP */
-  uint8_t                   refs;
+  atomic_uint               refs;
 };
 
 /****************************************************************************


[incubator-nuttx] 01/02: arch/sim: add bth4 bridge codes

Posted by xi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

xiaoxiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git

commit b352a625bfbfb477d695686c23cb3623f2f5667e
Author: chengkai <ch...@xiaomi.com>
AuthorDate: Fri Aug 26 19:55:51 2022 +0800

    arch/sim: add bth4 bridge codes
    
    Signed-off-by: chengkai <ch...@xiaomi.com>
---
 arch/sim/src/sim/up_hcisocket.c             | 61 +++++++++++++++++++++++++----
 boards/sim/sim/sim/configs/btuart/defconfig |  2 +-
 2 files changed, 55 insertions(+), 8 deletions(-)

diff --git a/arch/sim/src/sim/up_hcisocket.c b/arch/sim/src/sim/up_hcisocket.c
index 794c77db97..1229da5758 100644
--- a/arch/sim/src/sim/up_hcisocket.c
+++ b/arch/sim/src/sim/up_hcisocket.c
@@ -40,6 +40,7 @@
 #include <nuttx/net/bluetooth.h>
 #include <nuttx/wireless/bluetooth/bt_driver.h>
 #include <nuttx/wireless/bluetooth/bt_uart.h>
+#include <nuttx/wireless/bluetooth/bt_bridge.h>
 #include <nuttx/serial/uart_bth4.h>
 
 #include "up_internal.h"
@@ -200,6 +201,33 @@ static struct bthcisock_s *bthcisock_alloc(int dev_id)
   return dev;
 }
 
+static void bthcisock_free(struct bthcisock_s *dev)
+{
+  sq_rem((sq_entry_t *)&dev->link, &g_bthcisock_list);
+  kmm_free(dev);
+}
+
+static int bthcisock_driver_register(struct bt_driver_s *drv, int id,
+                                     bool bt)
+{
+#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);
+    }
+
+  return uart_bth4_register(name, drv);
+#else
+  return bt_netdev_register(drv);
+#endif
+}
+
 /****************************************************************************
  * Public Functions
  ****************************************************************************/
@@ -222,8 +250,9 @@ static struct bthcisock_s *bthcisock_alloc(int dev_id)
 int bthcisock_register(int dev_id)
 {
   struct bthcisock_s *dev;
-#if defined(CONFIG_UART_BTH4)
-  char name[32];
+#if defined(CONFIG_BLUETOOTH_BRIDGE)
+  struct bt_driver_s *btdrv;
+  struct bt_driver_s *bledrv;
 #endif
   int ret;
 
@@ -233,15 +262,33 @@ int bthcisock_register(int dev_id)
       return -ENOMEM;
     }
 
-#if defined(CONFIG_UART_BTH4)
-  snprintf(name, sizeof(name), "/dev/ttyHCI%d", dev_id);
-  ret = uart_bth4_register(name, &dev->drv);
+#if defined(CONFIG_BLUETOOTH_BRIDGE)
+  ret = bt_bridge_register(&dev->drv, &btdrv, &bledrv);
+  if (ret < 0)
+    {
+      goto end;
+    }
+
+  ret = bthcisock_driver_register(btdrv, dev_id, true);
+  if (ret < 0)
+    {
+      goto end;
+    }
+
+  ret = bthcisock_driver_register(bledrv, dev_id, false);
+  if (ret < 0)
+    {
+      goto end;
+    }
+
+end:
 #else
-  ret = bt_netdev_register(&dev->drv);
+  ret = bthcisock_driver_register(&dev->drv, dev_id, true);
 #endif
+
   if (ret < 0)
     {
-      kmm_free(dev);
+      bthcisock_free(dev);
     }
 
   return ret;
diff --git a/boards/sim/sim/sim/configs/btuart/defconfig b/boards/sim/sim/sim/configs/btuart/defconfig
index 13a94cc263..feebe89b94 100644
--- a/boards/sim/sim/sim/configs/btuart/defconfig
+++ b/boards/sim/sim/sim/configs/btuart/defconfig
@@ -11,7 +11,7 @@ CONFIG_ARCH_BOARD="sim"
 CONFIG_ARCH_BOARD_SIM=y
 CONFIG_ARCH_CHIP="sim"
 CONFIG_ARCH_SIM=y
-CONFIG_BLUETOOTH_UART=y
+CONFIG_BLUETOOTH_BRIDGE=y
 CONFIG_BOARDCTL_POWEROFF=y
 CONFIG_BUILTIN=y
 CONFIG_DEBUG_SYMBOLS=y