bluetooth: Implement btuart_close for btuart upperhalf driver

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
This commit is contained in:
Xiang Xiao 2022-10-02 03:20:15 +08:00 committed by Alan Carvalho de Assis
parent 11d083b358
commit fab8b081c0
5 changed files with 22 additions and 4 deletions

View file

@ -275,10 +275,6 @@ int btuart_open(FAR struct bt_driver_s *dev)
DEBUGASSERT(upper != NULL && upper->lower != NULL);
lower = upper->lower;
/* Disable Rx callbacks */
lower->rxenable(lower, false);
/* Drain any cached Rx data */
lower->rxdrain(lower);
@ -292,3 +288,21 @@ int btuart_open(FAR struct bt_driver_s *dev)
lower->rxenable(lower, true);
return OK;
}
void btuart_close(FAR struct bt_driver_s *dev)
{
FAR struct btuart_upperhalf_s *upper;
FAR const struct btuart_lowerhalf_s *lower;
upper = (FAR struct btuart_upperhalf_s *)dev;
DEBUGASSERT(upper != NULL && upper->lower != NULL);
lower = upper->lower;
/* Disable Rx callbacks */
lower->rxenable(lower, false);
/* Detach the Rx event handler */
lower->rxattach(lower, NULL, NULL);
}

View file

@ -91,5 +91,6 @@ int btuart_send(FAR struct bt_driver_s *dev,
enum bt_buf_type_e type,
FAR void *data, size_t len);
int btuart_open(FAR struct bt_driver_s *dev);
void btuart_close(FAR struct bt_driver_s *dev);
#endif /* __DRIVER_WIRELESS_BLUETOOTH_BT_UART_H */

View file

@ -423,6 +423,7 @@ int btuart_register(FAR const struct btuart_lowerhalf_s *lower)
upper->dev.head_reserve = H4_HEADER_SIZE;
upper->dev.open = btuart_open;
upper->dev.send = btuart_send;
upper->dev.close = btuart_close;
upper->lower = lower;
/* Load firmware */

View file

@ -189,6 +189,7 @@ int btuart_register(FAR const struct btuart_lowerhalf_s *lower)
upper->dev.head_reserve = H4_HEADER_SIZE;
upper->dev.open = btuart_open;
upper->dev.send = btuart_send;
upper->dev.close = btuart_close;
upper->lower = lower;
/* Load firmware */

View file

@ -83,6 +83,7 @@ int btuart_register(FAR const struct btuart_lowerhalf_s *lower)
upper->dev.head_reserve = H4_HEADER_SIZE;
upper->dev.open = btuart_open;
upper->dev.send = btuart_send;
upper->dev.close = btuart_close;
upper->lower = lower;
/* And register the driver with the network and the Bluetooth stack. */