diff --git a/include/bluetooth/l2cap.h b/include/bluetooth/l2cap.h index 74b0a561681..961b4f67fad 100644 --- a/include/bluetooth/l2cap.h +++ b/include/bluetooth/l2cap.h @@ -32,7 +32,6 @@ extern "C" { #endif #include -#include #include #include @@ -71,7 +70,7 @@ struct bt_l2cap_chan { struct bt_l2cap_chan *_next; bt_l2cap_chan_destroy_t destroy; /* Response Timeout eXpired (RTX) timer */ - struct nano_delayed_work rtx_work; + struct k_delayed_work rtx_work; #if defined(CONFIG_BLUETOOTH_L2CAP_DYNAMIC_CHANNEL) bt_l2cap_chan_state_t state; /** Remote PSM to be connected */ diff --git a/subsys/bluetooth/host/l2cap.c b/subsys/bluetooth/host/l2cap.c index 461db9d5fe8..13506fcc8a3 100644 --- a/subsys/bluetooth/host/l2cap.c +++ b/subsys/bluetooth/host/l2cap.c @@ -22,7 +22,6 @@ #include #include #include -#include #include #include @@ -53,8 +52,8 @@ #define L2CAP_LE_PSM_START 0x0001 #define L2CAP_LE_PSM_END 0x00ff -#define L2CAP_CONN_TIMEOUT (40 * sys_clock_ticks_per_sec) -#define L2CAP_DISC_TIMEOUT sys_clock_ticks_per_sec +#define L2CAP_CONN_TIMEOUT (40 * MSEC_PER_SEC) +#define L2CAP_DISC_TIMEOUT (1 * MSEC_PER_SEC) /* Size of MTU is based on the maximum amount of data the buffer can hold * excluding ACL and driver headers. @@ -302,7 +301,7 @@ destroy: } } -static void l2cap_rtx_timeout(struct nano_work *work) +static void l2cap_rtx_timeout(struct k_work *work) { struct bt_l2cap_le_chan *chan = LE_CHAN_RTX(work); @@ -334,7 +333,7 @@ static bool l2cap_chan_add(struct bt_conn *conn, struct bt_l2cap_chan *chan, return false; } - nano_delayed_work_init(&chan->rtx_work, l2cap_rtx_timeout); + k_delayed_work_init(&chan->rtx_work, l2cap_rtx_timeout); bt_l2cap_chan_add(conn, chan, destroy); @@ -419,7 +418,7 @@ static struct net_buf *l2cap_create_le_sig_pdu(uint8_t code, uint8_t ident, #if defined(CONFIG_BLUETOOTH_L2CAP_DYNAMIC_CHANNEL) static void l2cap_chan_send_req(struct bt_l2cap_le_chan *chan, - struct net_buf *buf, uint32_t ticks) + struct net_buf *buf, int32_t timeout) { /* BLUETOOTH SPECIFICATION Version 4.2 [Vol 3, Part A] page 126: * @@ -430,10 +429,10 @@ static void l2cap_chan_send_req(struct bt_l2cap_le_chan *chan, * final expiration, when the response is received, or the physical * link is lost. */ - if (ticks) { - nano_delayed_work_submit(&chan->chan.rtx_work, ticks); + if (timeout) { + k_delayed_work_submit(&chan->chan.rtx_work, timeout); } else { - nano_delayed_work_cancel(&chan->chan.rtx_work); + k_delayed_work_cancel(&chan->chan.rtx_work); } bt_l2cap_send(chan->chan.conn, BT_L2CAP_CID_LE_SIG, buf); @@ -700,7 +699,7 @@ static void l2cap_chan_destroy(struct bt_l2cap_chan *chan) BT_DBG("chan %p cid 0x%04x", ch, ch->rx.cid); /* Cancel ongoing work */ - nano_delayed_work_cancel(&chan->rtx_work); + k_delayed_work_cancel(&chan->rtx_work); /* There could be a writer waiting for credits so return a dummy credit * to wake it up. @@ -967,7 +966,7 @@ static void le_conn_rsp(struct bt_l2cap *l2cap, uint8_t ident, } /* Cancel RTX work */ - nano_delayed_work_cancel(&chan->chan.rtx_work); + k_delayed_work_cancel(&chan->chan.rtx_work); /* Reset ident since it got a response */ chan->chan.ident = 0; diff --git a/subsys/bluetooth/host/l2cap_br.c b/subsys/bluetooth/host/l2cap_br.c index e00aa52219f..7a02f9e8701 100644 --- a/subsys/bluetooth/host/l2cap_br.c +++ b/subsys/bluetooth/host/l2cap_br.c @@ -22,7 +22,6 @@ #include #include #include -#include #include #include @@ -61,10 +60,10 @@ #define L2CAP_BR_PSM_SDP 0x0001 -#define L2CAP_BR_INFO_TIMEOUT SECONDS(4) -#define L2CAP_BR_CFG_TIMEOUT SECONDS(4) -#define L2CAP_BR_DISCONN_TIMEOUT SECONDS(1) -#define L2CAP_BR_CONN_TIMEOUT SECONDS(40) +#define L2CAP_BR_INFO_TIMEOUT (4 * MSEC_PER_SEC) +#define L2CAP_BR_CFG_TIMEOUT (4 * MSEC_PER_SEC) +#define L2CAP_BR_DISCONN_TIMEOUT (1 * MSEC_PER_SEC) +#define L2CAP_BR_CONN_TIMEOUT (40 * MSEC_PER_SEC) /* Size of MTU is based on the maximum amount of data the buffer can hold * excluding ACL and driver headers. @@ -216,12 +215,12 @@ static void l2cap_br_chan_destroy(struct bt_l2cap_chan *chan) BT_DBG("chan %p cid 0x%04x", BR_CHAN(chan), BR_CHAN(chan)->rx.cid); /* Cancel ongoing work */ - nano_delayed_work_cancel(&chan->rtx_work); + k_delayed_work_cancel(&chan->rtx_work); atomic_clear(BR_CHAN(chan)->flags); } -static void l2cap_br_rtx_timeout(struct nano_work *work) +static void l2cap_br_rtx_timeout(struct k_work *work) { struct bt_l2cap_br_chan *chan = BR_CHAN_RTX(work); @@ -260,7 +259,7 @@ static bool l2cap_br_chan_add(struct bt_conn *conn, struct bt_l2cap_chan *chan, return false; } - nano_delayed_work_init(&chan->rtx_work, l2cap_br_rtx_timeout); + k_delayed_work_init(&chan->rtx_work, l2cap_br_rtx_timeout); bt_l2cap_chan_add(conn, chan, destroy); return true; @@ -280,7 +279,7 @@ static uint8_t l2cap_br_get_ident(void) } static void l2cap_br_chan_send_req(struct bt_l2cap_br_chan *chan, - struct net_buf *buf, uint32_t ticks) + struct net_buf *buf, int32_t timeout) { /* BLUETOOTH SPECIFICATION Version 4.2 [Vol 3, Part A] page 126: * @@ -291,10 +290,10 @@ static void l2cap_br_chan_send_req(struct bt_l2cap_br_chan *chan, * final expiration, when the response is received, or the physical * link is lost. */ - if (ticks) { - nano_delayed_work_submit(&chan->chan.rtx_work, ticks); + if (timeout) { + k_delayed_work_submit(&chan->chan.rtx_work, timeout); } else { - nano_delayed_work_cancel(&chan->chan.rtx_work); + k_delayed_work_cancel(&chan->chan.rtx_work); } bt_l2cap_send(chan->chan.conn, BT_L2CAP_CID_BR_SIG, buf); @@ -383,7 +382,7 @@ static int l2cap_br_info_rsp(struct bt_l2cap_br *l2cap, uint8_t ident, * Release RTX timer since got the response & there's pending * command request. */ - nano_delayed_work_cancel(&l2cap->chan.chan.rtx_work); + k_delayed_work_cancel(&l2cap->chan.chan.rtx_work); } if (buf->len < sizeof(*rsp)) { @@ -856,7 +855,7 @@ static void l2cap_br_conf_rsp(struct bt_l2cap_br *l2cap, uint8_t ident, } /* Release RTX work since got the response */ - nano_delayed_work_cancel(&chan->rtx_work); + k_delayed_work_cancel(&chan->rtx_work); /* * TODO: handle other results than success and parse response data if @@ -1199,7 +1198,7 @@ static void l2cap_br_disconnected(struct bt_l2cap_chan *chan) if (atomic_test_and_clear_bit(BR_CHAN(chan)->flags, L2CAP_FLAG_SIG_INFO_PENDING)) { /* Cancel RTX work on signal channel */ - nano_delayed_work_cancel(&chan->rtx_work); + k_delayed_work_cancel(&chan->rtx_work); } } @@ -1384,7 +1383,7 @@ static void l2cap_br_conn_rsp(struct bt_l2cap_br *l2cap, uint8_t ident, } /* Release RTX work since got the response */ - nano_delayed_work_cancel(&chan->rtx_work); + k_delayed_work_cancel(&chan->rtx_work); if (chan->state != BT_L2CAP_CONNECT) { BT_DBG("Invalid channel %p state %s", chan, @@ -1401,8 +1400,7 @@ static void l2cap_br_conn_rsp(struct bt_l2cap_br *l2cap, uint8_t ident, atomic_clear_bit(BR_CHAN(chan)->flags, L2CAP_FLAG_CONN_PENDING); break; case BT_L2CAP_BR_PENDING: - nano_delayed_work_submit(&chan->rtx_work, - L2CAP_BR_CONN_TIMEOUT); + k_delayed_work_submit(&chan->rtx_work, L2CAP_BR_CONN_TIMEOUT); break; default: l2cap_br_chan_cleanup(chan);