Bluetooth: host: Update RFCOMM to new delayable work API

Update RFCOMM to use the new delayable work API for the RTX host timer
used for disconnecting and idling.

Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
diff --git a/include/bluetooth/rfcomm.h b/include/bluetooth/rfcomm.h
index e6ec3e4..7919862 100644
--- a/include/bluetooth/rfcomm.h
+++ b/include/bluetooth/rfcomm.h
@@ -74,7 +74,7 @@
 /** @brief RFCOMM DLC structure. */
 struct bt_rfcomm_dlc {
 	/* Response Timeout eXpired (RTX) timer */
-	struct k_delayed_work      rtx_work;
+	struct k_work_delayable    rtx_work;
 
 	/* Queue for outgoing data */
 	struct k_fifo              tx_queue;
diff --git a/subsys/bluetooth/host/rfcomm.c b/subsys/bluetooth/host/rfcomm.c
index 99ead1a..e16d6d4 100644
--- a/subsys/bluetooth/host/rfcomm.c
+++ b/subsys/bluetooth/host/rfcomm.c
@@ -240,7 +240,7 @@
 {
 	BT_DBG("dlc %p", dlc);
 
-	k_delayed_work_cancel(&dlc->rtx_work);
+	k_work_cancel_delayable(&dlc->rtx_work);
 	dlc->state = BT_RFCOMM_STATE_IDLE;
 	dlc->session = NULL;
 
@@ -378,7 +378,7 @@
 
 	session->state = BT_RFCOMM_STATE_DISCONNECTING;
 	rfcomm_send_disc(session, 0);
-	k_delayed_work_submit(&session->rtx_work, RFCOMM_DISC_TIMEOUT);
+	k_work_reschedule(&session->rtx_work, RFCOMM_DISC_TIMEOUT);
 }
 
 static struct net_buf *rfcomm_make_uih_msg(struct bt_rfcomm_session *session,
@@ -427,7 +427,7 @@
 
 	BT_DBG("Session %p", session);
 
-	k_delayed_work_cancel(&session->rtx_work);
+	k_work_cancel_delayable(&session->rtx_work);
 	rfcomm_session_disconnected(session);
 	session->state = BT_RFCOMM_STATE_IDLE;
 }
@@ -456,10 +456,10 @@
 	dlc->rx_credit = RFCOMM_DEFAULT_CREDIT;
 	dlc->state = BT_RFCOMM_STATE_INIT;
 	dlc->role = role;
-	k_delayed_work_init(&dlc->rtx_work, rfcomm_dlc_rtx_timeout);
+	k_work_init_delayable(&dlc->rtx_work, rfcomm_dlc_rtx_timeout);
 
 	/* Start a conn timer which includes auth as well */
-	k_delayed_work_submit(&dlc->rtx_work, RFCOMM_CONN_TIMEOUT);
+	k_work_schedule(&dlc->rtx_work, RFCOMM_CONN_TIMEOUT);
 
 	dlc->_next = session->dlcs;
 	session->dlcs = dlc;
@@ -594,7 +594,7 @@
 
 	if (dlc->state == BT_RFCOMM_STATE_DISCONNECTING) {
 		rfcomm_send_disc(dlc->session, dlc->dlci);
-		k_delayed_work_submit(&dlc->rtx_work, RFCOMM_DISC_TIMEOUT);
+		k_work_reschedule(&dlc->rtx_work, RFCOMM_DISC_TIMEOUT);
 	} else {
 		rfcomm_dlc_destroy(dlc);
 	}
@@ -759,7 +759,7 @@
 	}
 
 	/* Cancel conn timer */
-	k_delayed_work_cancel(&dlc->rtx_work);
+	k_work_cancel_delayable(&dlc->rtx_work);
 
 	k_fifo_init(&dlc->tx_queue);
 	k_thread_create(&dlc->tx_thread, dlc->stack,
@@ -828,7 +828,7 @@
 	case BT_RFCOMM_STATE_CONFIG:
 		dlc->state = BT_RFCOMM_STATE_DISCONNECTING;
 		rfcomm_send_disc(dlc->session, dlc->dlci);
-		k_delayed_work_submit(&dlc->rtx_work, RFCOMM_DISC_TIMEOUT);
+		k_work_reschedule(&dlc->rtx_work, RFCOMM_DISC_TIMEOUT);
 		break;
 	case BT_RFCOMM_STATE_CONNECTED:
 		dlc->state = BT_RFCOMM_STATE_DISCONNECTING;
@@ -895,7 +895,7 @@
 		}
 
 		/* Cancel idle timer if any */
-		k_delayed_work_cancel(&session->rtx_work);
+		k_work_cancel_delayable(&session->rtx_work);
 
 		rfcomm_dlc_connected(dlc);
 	}
@@ -1011,7 +1011,7 @@
 		case BT_RFCOMM_STATE_DISCONNECTING:
 			session->state = BT_RFCOMM_STATE_DISCONNECTED;
 			/* Cancel disc timer */
-			k_delayed_work_cancel(&session->rtx_work);
+			k_work_cancel_delayable(&session->rtx_work);
 			err = bt_l2cap_chan_disconnect(&session->br_chan.chan);
 			if (err < 0) {
 				session->state = BT_RFCOMM_STATE_IDLE;
@@ -1206,7 +1206,7 @@
 		dlc->state = BT_RFCOMM_STATE_CONFIG;
 		rfcomm_send_pn(dlc, BT_RFCOMM_MSG_RESP_CR);
 		/* Cancel idle timer if any */
-		k_delayed_work_cancel(&session->rtx_work);
+		k_work_cancel_delayable(&session->rtx_work);
 	} else {
 		/* If its a command */
 		if (cr) {
@@ -1257,12 +1257,12 @@
 
 		if (!session->dlcs) {
 			/* Start a session idle timer */
-			k_delayed_work_submit(&dlc->session->rtx_work,
-					      RFCOMM_IDLE_TIMEOUT);
+			k_work_reschedule(&dlc->session->rtx_work,
+					  RFCOMM_IDLE_TIMEOUT);
 		}
 	} else {
 		/* Cancel idle timer */
-		k_delayed_work_cancel(&session->rtx_work);
+		k_work_cancel_delayable(&session->rtx_work);
 		rfcomm_send_ua(session, 0);
 		rfcomm_session_disconnected(session);
 	}
@@ -1597,8 +1597,8 @@
 		session->state = BT_RFCOMM_STATE_INIT;
 		session->role = role;
 		session->cfc = BT_RFCOMM_CFC_UNKNOWN;
-		k_delayed_work_init(&session->rtx_work,
-				    rfcomm_session_rtx_timeout);
+		k_work_init_delayable(&session->rtx_work,
+				      rfcomm_session_rtx_timeout);
 		k_sem_init(&session->fc, 0, 1);
 
 		return session;
@@ -1672,7 +1672,7 @@
 			goto fail;
 		}
 		/* Cancel idle timer if any */
-		k_delayed_work_cancel(&session->rtx_work);
+		k_work_cancel_delayable(&session->rtx_work);
 		break;
 	default:
 		BT_ERR("Invalid session state %d", session->state);
@@ -1707,7 +1707,7 @@
 		net_buf_put(&dlc->tx_queue,
 			    net_buf_alloc(&dummy_pool, K_NO_WAIT));
 
-		k_delayed_work_submit(&dlc->rtx_work, RFCOMM_DISC_TIMEOUT);
+		k_work_reschedule(&dlc->rtx_work, RFCOMM_DISC_TIMEOUT);
 
 		return 0;
 	}
diff --git a/subsys/bluetooth/host/rfcomm_internal.h b/subsys/bluetooth/host/rfcomm_internal.h
index 0a23824..03c9818 100644
--- a/subsys/bluetooth/host/rfcomm_internal.h
+++ b/subsys/bluetooth/host/rfcomm_internal.h
@@ -21,7 +21,7 @@
 	/* L2CAP channel this context is associated with */
 	struct bt_l2cap_br_chan br_chan;
 	/* Response Timeout eXpired (RTX) timer */
-	struct k_delayed_work rtx_work;
+	struct k_work_delayable rtx_work;
 	/* Binary sem for aggregate fc */
 	struct k_sem fc;
 	struct bt_rfcomm_dlc *dlcs;