mirror of https://gitee.com/openkylin/linux.git
Bluetooth: Enable L2CAP Extended features by default
Change the enable_ertm param to disable_ertm and default value to 0. That means that L2CAP Extended features are enabled by default now. Signed-off-by: Gustavo F. Padovan <padovan@profusion.mobi> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
This commit is contained in:
parent
893ef97112
commit
d1c4a17d58
|
@ -57,7 +57,7 @@
|
||||||
|
|
||||||
#define VERSION "2.15"
|
#define VERSION "2.15"
|
||||||
|
|
||||||
static int enable_ertm = 0;
|
static int disable_ertm = 0;
|
||||||
|
|
||||||
static u32 l2cap_feat_mask = L2CAP_FEAT_FIXED_CHAN;
|
static u32 l2cap_feat_mask = L2CAP_FEAT_FIXED_CHAN;
|
||||||
static u8 l2cap_fixed_chan[8] = { 0x02, };
|
static u8 l2cap_fixed_chan[8] = { 0x02, };
|
||||||
|
@ -464,7 +464,7 @@ static void l2cap_do_start(struct sock *sk)
|
||||||
static inline int l2cap_mode_supported(__u8 mode, __u32 feat_mask)
|
static inline int l2cap_mode_supported(__u8 mode, __u32 feat_mask)
|
||||||
{
|
{
|
||||||
u32 local_feat_mask = l2cap_feat_mask;
|
u32 local_feat_mask = l2cap_feat_mask;
|
||||||
if (enable_ertm)
|
if (!disable_ertm)
|
||||||
local_feat_mask |= L2CAP_FEAT_ERTM | L2CAP_FEAT_STREAMING;
|
local_feat_mask |= L2CAP_FEAT_ERTM | L2CAP_FEAT_STREAMING;
|
||||||
|
|
||||||
switch (mode) {
|
switch (mode) {
|
||||||
|
@ -903,7 +903,7 @@ static void l2cap_sock_init(struct sock *sk, struct sock *parent)
|
||||||
} else {
|
} else {
|
||||||
pi->imtu = L2CAP_DEFAULT_MTU;
|
pi->imtu = L2CAP_DEFAULT_MTU;
|
||||||
pi->omtu = 0;
|
pi->omtu = 0;
|
||||||
if (enable_ertm && sk->sk_type == SOCK_STREAM) {
|
if (!disable_ertm && sk->sk_type == SOCK_STREAM) {
|
||||||
pi->mode = L2CAP_MODE_ERTM;
|
pi->mode = L2CAP_MODE_ERTM;
|
||||||
pi->conf_state |= L2CAP_CONF_STATE2_DEVICE;
|
pi->conf_state |= L2CAP_CONF_STATE2_DEVICE;
|
||||||
} else {
|
} else {
|
||||||
|
@ -1160,7 +1160,7 @@ static int l2cap_sock_connect(struct socket *sock, struct sockaddr *addr, int al
|
||||||
break;
|
break;
|
||||||
case L2CAP_MODE_ERTM:
|
case L2CAP_MODE_ERTM:
|
||||||
case L2CAP_MODE_STREAMING:
|
case L2CAP_MODE_STREAMING:
|
||||||
if (enable_ertm)
|
if (!disable_ertm)
|
||||||
break;
|
break;
|
||||||
/* fall through */
|
/* fall through */
|
||||||
default:
|
default:
|
||||||
|
@ -1226,7 +1226,7 @@ static int l2cap_sock_listen(struct socket *sock, int backlog)
|
||||||
break;
|
break;
|
||||||
case L2CAP_MODE_ERTM:
|
case L2CAP_MODE_ERTM:
|
||||||
case L2CAP_MODE_STREAMING:
|
case L2CAP_MODE_STREAMING:
|
||||||
if (enable_ertm)
|
if (!disable_ertm)
|
||||||
break;
|
break;
|
||||||
/* fall through */
|
/* fall through */
|
||||||
default:
|
default:
|
||||||
|
@ -1986,7 +1986,7 @@ static int l2cap_sock_setsockopt_old(struct socket *sock, int optname, char __us
|
||||||
break;
|
break;
|
||||||
case L2CAP_MODE_ERTM:
|
case L2CAP_MODE_ERTM:
|
||||||
case L2CAP_MODE_STREAMING:
|
case L2CAP_MODE_STREAMING:
|
||||||
if (enable_ertm)
|
if (!disable_ertm)
|
||||||
break;
|
break;
|
||||||
/* fall through */
|
/* fall through */
|
||||||
default:
|
default:
|
||||||
|
@ -3302,7 +3302,7 @@ static inline int l2cap_information_req(struct l2cap_conn *conn, struct l2cap_cm
|
||||||
struct l2cap_info_rsp *rsp = (struct l2cap_info_rsp *) buf;
|
struct l2cap_info_rsp *rsp = (struct l2cap_info_rsp *) buf;
|
||||||
rsp->type = cpu_to_le16(L2CAP_IT_FEAT_MASK);
|
rsp->type = cpu_to_le16(L2CAP_IT_FEAT_MASK);
|
||||||
rsp->result = cpu_to_le16(L2CAP_IR_SUCCESS);
|
rsp->result = cpu_to_le16(L2CAP_IR_SUCCESS);
|
||||||
if (enable_ertm)
|
if (!disable_ertm)
|
||||||
feat_mask |= L2CAP_FEAT_ERTM | L2CAP_FEAT_STREAMING
|
feat_mask |= L2CAP_FEAT_ERTM | L2CAP_FEAT_STREAMING
|
||||||
| L2CAP_FEAT_FCS;
|
| L2CAP_FEAT_FCS;
|
||||||
put_unaligned_le32(feat_mask, rsp->data);
|
put_unaligned_le32(feat_mask, rsp->data);
|
||||||
|
@ -4850,8 +4850,8 @@ EXPORT_SYMBOL(l2cap_load);
|
||||||
module_init(l2cap_init);
|
module_init(l2cap_init);
|
||||||
module_exit(l2cap_exit);
|
module_exit(l2cap_exit);
|
||||||
|
|
||||||
module_param(enable_ertm, bool, 0644);
|
module_param(disable_ertm, bool, 0644);
|
||||||
MODULE_PARM_DESC(enable_ertm, "Enable enhanced retransmission mode");
|
MODULE_PARM_DESC(disable_ertm, "Disable enhanced retransmission mode");
|
||||||
|
|
||||||
MODULE_AUTHOR("Marcel Holtmann <marcel@holtmann.org>");
|
MODULE_AUTHOR("Marcel Holtmann <marcel@holtmann.org>");
|
||||||
MODULE_DESCRIPTION("Bluetooth L2CAP ver " VERSION);
|
MODULE_DESCRIPTION("Bluetooth L2CAP ver " VERSION);
|
||||||
|
|
Loading…
Reference in New Issue