|
@@ -51,6 +51,7 @@
|
|
static int disable_cfc = 0;
|
|
static int disable_cfc = 0;
|
|
static int channel_mtu = -1;
|
|
static int channel_mtu = -1;
|
|
static unsigned int l2cap_mtu = RFCOMM_MAX_L2CAP_MTU;
|
|
static unsigned int l2cap_mtu = RFCOMM_MAX_L2CAP_MTU;
|
|
|
|
+static int l2cap_ertm = 0;
|
|
|
|
|
|
static struct task_struct *rfcomm_thread;
|
|
static struct task_struct *rfcomm_thread;
|
|
|
|
|
|
@@ -702,6 +703,8 @@ static struct rfcomm_session *rfcomm_session_create(bdaddr_t *src, bdaddr_t *dst
|
|
sk = sock->sk;
|
|
sk = sock->sk;
|
|
lock_sock(sk);
|
|
lock_sock(sk);
|
|
l2cap_pi(sk)->imtu = l2cap_mtu;
|
|
l2cap_pi(sk)->imtu = l2cap_mtu;
|
|
|
|
+ if (l2cap_ertm)
|
|
|
|
+ l2cap_pi(sk)->mode = L2CAP_MODE_ERTM;
|
|
release_sock(sk);
|
|
release_sock(sk);
|
|
|
|
|
|
s = rfcomm_session_add(sock, BT_BOUND);
|
|
s = rfcomm_session_add(sock, BT_BOUND);
|
|
@@ -2185,6 +2188,9 @@ MODULE_PARM_DESC(channel_mtu, "Default MTU for the RFCOMM channel");
|
|
module_param(l2cap_mtu, uint, 0644);
|
|
module_param(l2cap_mtu, uint, 0644);
|
|
MODULE_PARM_DESC(l2cap_mtu, "Default MTU for the L2CAP connection");
|
|
MODULE_PARM_DESC(l2cap_mtu, "Default MTU for the L2CAP connection");
|
|
|
|
|
|
|
|
+module_param(l2cap_ertm, bool, 0644);
|
|
|
|
+MODULE_PARM_DESC(l2cap_ertm, "Use L2CAP ERTM mode for connection");
|
|
|
|
+
|
|
MODULE_AUTHOR("Marcel Holtmann <marcel@holtmann.org>");
|
|
MODULE_AUTHOR("Marcel Holtmann <marcel@holtmann.org>");
|
|
MODULE_DESCRIPTION("Bluetooth RFCOMM ver " VERSION);
|
|
MODULE_DESCRIPTION("Bluetooth RFCOMM ver " VERSION);
|
|
MODULE_VERSION(VERSION);
|
|
MODULE_VERSION(VERSION);
|