From: Marcel Holtmann Date: Mon, 3 Jul 2006 08:37:55 +0000 (+0200) Subject: [Bluetooth] Add RFCOMM role switch support X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=300b93974ff64f1bef1ac8294547c573954f0300;p=GitHub%2FLineageOS%2FG12%2Fandroid_kernel_amlogic_linux-4.9.git [Bluetooth] Add RFCOMM role switch support This patch adds the support for RFCOMM role switching before the connection is fully established. Signed-off-by: Marcel Holtmann --- diff --git a/net/bluetooth/rfcomm/core.c b/net/bluetooth/rfcomm/core.c index fe18dc2dd3c1..155a2b93760e 100644 --- a/net/bluetooth/rfcomm/core.c +++ b/net/bluetooth/rfcomm/core.c @@ -1150,6 +1150,8 @@ static inline int rfcomm_check_link_mode(struct rfcomm_dlc *d) static void rfcomm_dlc_accept(struct rfcomm_dlc *d) { + struct sock *sk = d->session->sock->sk; + BT_DBG("dlc %p", d); rfcomm_send_ua(d->session, d->dlci); @@ -1159,6 +1161,9 @@ static void rfcomm_dlc_accept(struct rfcomm_dlc *d) d->state_change(d, 0); rfcomm_dlc_unlock(d); + if (d->link_mode & RFCOMM_LM_MASTER) + hci_conn_switch_role(l2cap_pi(sk)->conn->hcon, 0x00); + rfcomm_send_msc(d->session, 1, d->dlci, d->v24_sig); }