Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
41833af7
cloud-kernel
项目概览
openanolis
/
cloud-kernel
1 年多 前同步成功
通知
160
Star
36
Fork
7
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
10
列表
看板
标记
里程碑
合并请求
2
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
cloud-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
10
Issue
10
列表
看板
标记
里程碑
合并请求
2
合并请求
2
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
41833af7
编写于
4月 09, 2012
作者:
J
John W. Linville
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of
git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth
上级
f68e556e
66f3b913
变更
11
隐藏空白更改
内联
并排
Showing
11 changed file
with
45 addition
and
19 deletion
+45
-19
MAINTAINERS
MAINTAINERS
+4
-4
drivers/bluetooth/ath3k.c
drivers/bluetooth/ath3k.c
+4
-0
drivers/bluetooth/btusb.c
drivers/bluetooth/btusb.c
+4
-1
drivers/bluetooth/hci_ldisc.c
drivers/bluetooth/hci_ldisc.c
+1
-1
include/net/bluetooth/hci.h
include/net/bluetooth/hci.h
+2
-1
include/net/bluetooth/hci_core.h
include/net/bluetooth/hci_core.h
+7
-5
include/net/bluetooth/mgmt.h
include/net/bluetooth/mgmt.h
+1
-1
net/bluetooth/hci_core.c
net/bluetooth/hci_core.c
+7
-0
net/bluetooth/l2cap_core.c
net/bluetooth/l2cap_core.c
+3
-0
net/bluetooth/l2cap_sock.c
net/bluetooth/l2cap_sock.c
+3
-2
net/bluetooth/mgmt.c
net/bluetooth/mgmt.c
+9
-4
未找到文件。
MAINTAINERS
浏览文件 @
41833af7
...
@@ -1521,8 +1521,8 @@ M: Gustavo Padovan <gustavo@padovan.org>
...
@@ -1521,8 +1521,8 @@ M: Gustavo Padovan <gustavo@padovan.org>
M: Johan Hedberg <johan.hedberg@gmail.com>
M: Johan Hedberg <johan.hedberg@gmail.com>
L: linux-bluetooth@vger.kernel.org
L: linux-bluetooth@vger.kernel.org
W: http://www.bluez.org/
W: http://www.bluez.org/
T: git git://git.kernel.org/pub/scm/linux/kernel/git/
padovan
/bluetooth.git
T: git git://git.kernel.org/pub/scm/linux/kernel/git/
bluetooth
/bluetooth.git
T: git git://git.kernel.org/pub/scm/linux/kernel/git/
jh/bluetooth
.git
T: git git://git.kernel.org/pub/scm/linux/kernel/git/
bluetooth/bluetooth-next
.git
S: Maintained
S: Maintained
F: drivers/bluetooth/
F: drivers/bluetooth/
...
@@ -1532,8 +1532,8 @@ M: Gustavo Padovan <gustavo@padovan.org>
...
@@ -1532,8 +1532,8 @@ M: Gustavo Padovan <gustavo@padovan.org>
M: Johan Hedberg <johan.hedberg@gmail.com>
M: Johan Hedberg <johan.hedberg@gmail.com>
L: linux-bluetooth@vger.kernel.org
L: linux-bluetooth@vger.kernel.org
W: http://www.bluez.org/
W: http://www.bluez.org/
T: git git://git.kernel.org/pub/scm/linux/kernel/git/
padovan
/bluetooth.git
T: git git://git.kernel.org/pub/scm/linux/kernel/git/
bluetooth
/bluetooth.git
T: git git://git.kernel.org/pub/scm/linux/kernel/git/
jh/bluetooth
.git
T: git git://git.kernel.org/pub/scm/linux/kernel/git/
bluetooth/bluetooth-next
.git
S: Maintained
S: Maintained
F: net/bluetooth/
F: net/bluetooth/
F: include/net/bluetooth/
F: include/net/bluetooth/
...
...
drivers/bluetooth/ath3k.c
浏览文件 @
41833af7
...
@@ -72,7 +72,9 @@ static struct usb_device_id ath3k_table[] = {
...
@@ -72,7 +72,9 @@ static struct usb_device_id ath3k_table[] = {
/* Atheros AR3012 with sflash firmware*/
/* Atheros AR3012 with sflash firmware*/
{
USB_DEVICE
(
0x0CF3
,
0x3004
)
},
{
USB_DEVICE
(
0x0CF3
,
0x3004
)
},
{
USB_DEVICE
(
0x0CF3
,
0x311D
)
},
{
USB_DEVICE
(
0x13d3
,
0x3375
)
},
{
USB_DEVICE
(
0x13d3
,
0x3375
)
},
{
USB_DEVICE
(
0x04CA
,
0x3005
)
},
/* Atheros AR5BBU12 with sflash firmware */
/* Atheros AR5BBU12 with sflash firmware */
{
USB_DEVICE
(
0x0489
,
0xE02C
)
},
{
USB_DEVICE
(
0x0489
,
0xE02C
)
},
...
@@ -89,7 +91,9 @@ static struct usb_device_id ath3k_blist_tbl[] = {
...
@@ -89,7 +91,9 @@ static struct usb_device_id ath3k_blist_tbl[] = {
/* Atheros AR3012 with sflash firmware*/
/* Atheros AR3012 with sflash firmware*/
{
USB_DEVICE
(
0x0cf3
,
0x3004
),
.
driver_info
=
BTUSB_ATH3012
},
{
USB_DEVICE
(
0x0cf3
,
0x3004
),
.
driver_info
=
BTUSB_ATH3012
},
{
USB_DEVICE
(
0x0cf3
,
0x311D
),
.
driver_info
=
BTUSB_ATH3012
},
{
USB_DEVICE
(
0x13d3
,
0x3375
),
.
driver_info
=
BTUSB_ATH3012
},
{
USB_DEVICE
(
0x13d3
,
0x3375
),
.
driver_info
=
BTUSB_ATH3012
},
{
USB_DEVICE
(
0x04ca
,
0x3005
),
.
driver_info
=
BTUSB_ATH3012
},
{
}
/* Terminating entry */
{
}
/* Terminating entry */
};
};
...
...
drivers/bluetooth/btusb.c
浏览文件 @
41833af7
...
@@ -61,7 +61,7 @@ static struct usb_device_id btusb_table[] = {
...
@@ -61,7 +61,7 @@ static struct usb_device_id btusb_table[] = {
{
USB_DEVICE_INFO
(
0xe0
,
0x01
,
0x01
)
},
{
USB_DEVICE_INFO
(
0xe0
,
0x01
,
0x01
)
},
/* Broadcom SoftSailing reporting vendor specific */
/* Broadcom SoftSailing reporting vendor specific */
{
USB_DEVICE
(
0x0
5a
c
,
0x21e1
)
},
{
USB_DEVICE
(
0x0
a5
c
,
0x21e1
)
},
/* Apple MacBookPro 7,1 */
/* Apple MacBookPro 7,1 */
{
USB_DEVICE
(
0x05ac
,
0x8213
)
},
{
USB_DEVICE
(
0x05ac
,
0x8213
)
},
...
@@ -103,6 +103,7 @@ static struct usb_device_id btusb_table[] = {
...
@@ -103,6 +103,7 @@ static struct usb_device_id btusb_table[] = {
/* Broadcom BCM20702A0 */
/* Broadcom BCM20702A0 */
{
USB_DEVICE
(
0x0a5c
,
0x21e3
)
},
{
USB_DEVICE
(
0x0a5c
,
0x21e3
)
},
{
USB_DEVICE
(
0x0a5c
,
0x21e6
)
},
{
USB_DEVICE
(
0x0a5c
,
0x21e6
)
},
{
USB_DEVICE
(
0x0a5c
,
0x21e8
)
},
{
USB_DEVICE
(
0x0a5c
,
0x21f3
)
},
{
USB_DEVICE
(
0x0a5c
,
0x21f3
)
},
{
USB_DEVICE
(
0x413c
,
0x8197
)
},
{
USB_DEVICE
(
0x413c
,
0x8197
)
},
...
@@ -129,7 +130,9 @@ static struct usb_device_id blacklist_table[] = {
...
@@ -129,7 +130,9 @@ static struct usb_device_id blacklist_table[] = {
/* Atheros 3012 with sflash firmware */
/* Atheros 3012 with sflash firmware */
{
USB_DEVICE
(
0x0cf3
,
0x3004
),
.
driver_info
=
BTUSB_ATH3012
},
{
USB_DEVICE
(
0x0cf3
,
0x3004
),
.
driver_info
=
BTUSB_ATH3012
},
{
USB_DEVICE
(
0x0cf3
,
0x311d
),
.
driver_info
=
BTUSB_ATH3012
},
{
USB_DEVICE
(
0x13d3
,
0x3375
),
.
driver_info
=
BTUSB_ATH3012
},
{
USB_DEVICE
(
0x13d3
,
0x3375
),
.
driver_info
=
BTUSB_ATH3012
},
{
USB_DEVICE
(
0x04ca
,
0x3005
),
.
driver_info
=
BTUSB_ATH3012
},
/* Atheros AR5BBU12 with sflash firmware */
/* Atheros AR5BBU12 with sflash firmware */
{
USB_DEVICE
(
0x0489
,
0xe02c
),
.
driver_info
=
BTUSB_IGNORE
},
{
USB_DEVICE
(
0x0489
,
0xe02c
),
.
driver_info
=
BTUSB_IGNORE
},
...
...
drivers/bluetooth/hci_ldisc.c
浏览文件 @
41833af7
...
@@ -299,11 +299,11 @@ static void hci_uart_tty_close(struct tty_struct *tty)
...
@@ -299,11 +299,11 @@ static void hci_uart_tty_close(struct tty_struct *tty)
hci_uart_close
(
hdev
);
hci_uart_close
(
hdev
);
if
(
test_and_clear_bit
(
HCI_UART_PROTO_SET
,
&
hu
->
flags
))
{
if
(
test_and_clear_bit
(
HCI_UART_PROTO_SET
,
&
hu
->
flags
))
{
hu
->
proto
->
close
(
hu
);
if
(
hdev
)
{
if
(
hdev
)
{
hci_unregister_dev
(
hdev
);
hci_unregister_dev
(
hdev
);
hci_free_dev
(
hdev
);
hci_free_dev
(
hdev
);
}
}
hu
->
proto
->
close
(
hu
);
}
}
kfree
(
hu
);
kfree
(
hu
);
...
...
include/net/bluetooth/hci.h
浏览文件 @
41833af7
...
@@ -92,6 +92,7 @@ enum {
...
@@ -92,6 +92,7 @@ enum {
HCI_SERVICE_CACHE
,
HCI_SERVICE_CACHE
,
HCI_LINK_KEYS
,
HCI_LINK_KEYS
,
HCI_DEBUG_KEYS
,
HCI_DEBUG_KEYS
,
HCI_UNREGISTER
,
HCI_LE_SCAN
,
HCI_LE_SCAN
,
HCI_SSP_ENABLED
,
HCI_SSP_ENABLED
,
...
@@ -1327,8 +1328,8 @@ struct sockaddr_hci {
...
@@ -1327,8 +1328,8 @@ struct sockaddr_hci {
#define HCI_DEV_NONE 0xffff
#define HCI_DEV_NONE 0xffff
#define HCI_CHANNEL_RAW 0
#define HCI_CHANNEL_RAW 0
#define HCI_CHANNEL_CONTROL 1
#define HCI_CHANNEL_MONITOR 2
#define HCI_CHANNEL_MONITOR 2
#define HCI_CHANNEL_CONTROL 3
struct
hci_filter
{
struct
hci_filter
{
unsigned
long
type_mask
;
unsigned
long
type_mask
;
...
...
include/net/bluetooth/hci_core.h
浏览文件 @
41833af7
...
@@ -427,7 +427,7 @@ enum {
...
@@ -427,7 +427,7 @@ enum {
static
inline
bool
hci_conn_ssp_enabled
(
struct
hci_conn
*
conn
)
static
inline
bool
hci_conn_ssp_enabled
(
struct
hci_conn
*
conn
)
{
{
struct
hci_dev
*
hdev
=
conn
->
hdev
;
struct
hci_dev
*
hdev
=
conn
->
hdev
;
return
(
test_bit
(
HCI_SSP_ENABLED
,
&
hdev
->
flags
)
&&
return
(
test_bit
(
HCI_SSP_ENABLED
,
&
hdev
->
dev_
flags
)
&&
test_bit
(
HCI_CONN_SSP_ENABLED
,
&
conn
->
flags
));
test_bit
(
HCI_CONN_SSP_ENABLED
,
&
conn
->
flags
));
}
}
...
@@ -907,11 +907,13 @@ static inline void hci_role_switch_cfm(struct hci_conn *conn, __u8 status,
...
@@ -907,11 +907,13 @@ static inline void hci_role_switch_cfm(struct hci_conn *conn, __u8 status,
static
inline
bool
eir_has_data_type
(
u8
*
data
,
size_t
data_len
,
u8
type
)
static
inline
bool
eir_has_data_type
(
u8
*
data
,
size_t
data_len
,
u8
type
)
{
{
u8
field_len
;
size_t
parsed
=
0
;
size_t
parsed
;
for
(
parsed
=
0
;
parsed
<
data_len
-
1
;
parsed
+=
field_len
)
{
if
(
data_len
<
2
)
field_len
=
data
[
0
];
return
false
;
while
(
parsed
<
data_len
-
1
)
{
u8
field_len
=
data
[
0
];
if
(
field_len
==
0
)
if
(
field_len
==
0
)
break
;
break
;
...
...
include/net/bluetooth/mgmt.h
浏览文件 @
41833af7
...
@@ -117,7 +117,7 @@ struct mgmt_mode {
...
@@ -117,7 +117,7 @@ struct mgmt_mode {
#define MGMT_OP_SET_DISCOVERABLE 0x0006
#define MGMT_OP_SET_DISCOVERABLE 0x0006
struct
mgmt_cp_set_discoverable
{
struct
mgmt_cp_set_discoverable
{
__u8
val
;
__u8
val
;
__
u
16
timeout
;
__
le
16
timeout
;
}
__packed
;
}
__packed
;
#define MGMT_SET_DISCOVERABLE_SIZE 3
#define MGMT_SET_DISCOVERABLE_SIZE 3
...
...
net/bluetooth/hci_core.c
浏览文件 @
41833af7
...
@@ -665,6 +665,11 @@ int hci_dev_open(__u16 dev)
...
@@ -665,6 +665,11 @@ int hci_dev_open(__u16 dev)
hci_req_lock
(
hdev
);
hci_req_lock
(
hdev
);
if
(
test_bit
(
HCI_UNREGISTER
,
&
hdev
->
dev_flags
))
{
ret
=
-
ENODEV
;
goto
done
;
}
if
(
hdev
->
rfkill
&&
rfkill_blocked
(
hdev
->
rfkill
))
{
if
(
hdev
->
rfkill
&&
rfkill_blocked
(
hdev
->
rfkill
))
{
ret
=
-
ERFKILL
;
ret
=
-
ERFKILL
;
goto
done
;
goto
done
;
...
@@ -1849,6 +1854,8 @@ void hci_unregister_dev(struct hci_dev *hdev)
...
@@ -1849,6 +1854,8 @@ void hci_unregister_dev(struct hci_dev *hdev)
BT_DBG
(
"%p name %s bus %d"
,
hdev
,
hdev
->
name
,
hdev
->
bus
);
BT_DBG
(
"%p name %s bus %d"
,
hdev
,
hdev
->
name
,
hdev
->
bus
);
set_bit
(
HCI_UNREGISTER
,
&
hdev
->
dev_flags
);
write_lock
(
&
hci_dev_list_lock
);
write_lock
(
&
hci_dev_list_lock
);
list_del
(
&
hdev
->
list
);
list_del
(
&
hdev
->
list
);
write_unlock
(
&
hci_dev_list_lock
);
write_unlock
(
&
hci_dev_list_lock
);
...
...
net/bluetooth/l2cap_core.c
浏览文件 @
41833af7
...
@@ -1308,6 +1308,7 @@ static void l2cap_monitor_timeout(struct work_struct *work)
...
@@ -1308,6 +1308,7 @@ static void l2cap_monitor_timeout(struct work_struct *work)
if
(
chan
->
retry_count
>=
chan
->
remote_max_tx
)
{
if
(
chan
->
retry_count
>=
chan
->
remote_max_tx
)
{
l2cap_send_disconn_req
(
chan
->
conn
,
chan
,
ECONNABORTED
);
l2cap_send_disconn_req
(
chan
->
conn
,
chan
,
ECONNABORTED
);
l2cap_chan_unlock
(
chan
);
l2cap_chan_unlock
(
chan
);
l2cap_chan_put
(
chan
);
return
;
return
;
}
}
...
@@ -1316,6 +1317,7 @@ static void l2cap_monitor_timeout(struct work_struct *work)
...
@@ -1316,6 +1317,7 @@ static void l2cap_monitor_timeout(struct work_struct *work)
l2cap_send_rr_or_rnr
(
chan
,
L2CAP_CTRL_POLL
);
l2cap_send_rr_or_rnr
(
chan
,
L2CAP_CTRL_POLL
);
l2cap_chan_unlock
(
chan
);
l2cap_chan_unlock
(
chan
);
l2cap_chan_put
(
chan
);
}
}
static
void
l2cap_retrans_timeout
(
struct
work_struct
*
work
)
static
void
l2cap_retrans_timeout
(
struct
work_struct
*
work
)
...
@@ -1335,6 +1337,7 @@ static void l2cap_retrans_timeout(struct work_struct *work)
...
@@ -1335,6 +1337,7 @@ static void l2cap_retrans_timeout(struct work_struct *work)
l2cap_send_rr_or_rnr
(
chan
,
L2CAP_CTRL_POLL
);
l2cap_send_rr_or_rnr
(
chan
,
L2CAP_CTRL_POLL
);
l2cap_chan_unlock
(
chan
);
l2cap_chan_unlock
(
chan
);
l2cap_chan_put
(
chan
);
}
}
static
void
l2cap_drop_acked_frames
(
struct
l2cap_chan
*
chan
)
static
void
l2cap_drop_acked_frames
(
struct
l2cap_chan
*
chan
)
...
...
net/bluetooth/l2cap_sock.c
浏览文件 @
41833af7
...
@@ -82,7 +82,7 @@ static int l2cap_sock_bind(struct socket *sock, struct sockaddr *addr, int alen)
...
@@ -82,7 +82,7 @@ static int l2cap_sock_bind(struct socket *sock, struct sockaddr *addr, int alen)
}
}
if
(
la
.
l2_cid
)
if
(
la
.
l2_cid
)
err
=
l2cap_add_scid
(
chan
,
la
.
l2_cid
);
err
=
l2cap_add_scid
(
chan
,
__le16_to_cpu
(
la
.
l2_cid
)
);
else
else
err
=
l2cap_add_psm
(
chan
,
&
la
.
l2_bdaddr
,
la
.
l2_psm
);
err
=
l2cap_add_psm
(
chan
,
&
la
.
l2_bdaddr
,
la
.
l2_psm
);
...
@@ -123,7 +123,8 @@ static int l2cap_sock_connect(struct socket *sock, struct sockaddr *addr, int al
...
@@ -123,7 +123,8 @@ static int l2cap_sock_connect(struct socket *sock, struct sockaddr *addr, int al
if
(
la
.
l2_cid
&&
la
.
l2_psm
)
if
(
la
.
l2_cid
&&
la
.
l2_psm
)
return
-
EINVAL
;
return
-
EINVAL
;
err
=
l2cap_chan_connect
(
chan
,
la
.
l2_psm
,
la
.
l2_cid
,
&
la
.
l2_bdaddr
);
err
=
l2cap_chan_connect
(
chan
,
la
.
l2_psm
,
__le16_to_cpu
(
la
.
l2_cid
),
&
la
.
l2_bdaddr
);
if
(
err
)
if
(
err
)
return
err
;
return
err
;
...
...
net/bluetooth/mgmt.c
浏览文件 @
41833af7
...
@@ -2523,13 +2523,18 @@ static int set_fast_connectable(struct sock *sk, struct hci_dev *hdev,
...
@@ -2523,13 +2523,18 @@ static int set_fast_connectable(struct sock *sk, struct hci_dev *hdev,
if
(
cp
->
val
)
{
if
(
cp
->
val
)
{
type
=
PAGE_SCAN_TYPE_INTERLACED
;
type
=
PAGE_SCAN_TYPE_INTERLACED
;
acp
.
interval
=
0x0024
;
/* 22.5 msec page scan interval */
/* 22.5 msec page scan interval */
acp
.
interval
=
__constant_cpu_to_le16
(
0x0024
);
}
else
{
}
else
{
type
=
PAGE_SCAN_TYPE_STANDARD
;
/* default */
type
=
PAGE_SCAN_TYPE_STANDARD
;
/* default */
acp
.
interval
=
0x0800
;
/* default 1.28 sec page scan */
/* default 1.28 sec page scan */
acp
.
interval
=
__constant_cpu_to_le16
(
0x0800
);
}
}
acp
.
window
=
0x0012
;
/* default 11.25 msec page scan window */
/* default 11.25 msec page scan window */
acp
.
window
=
__constant_cpu_to_le16
(
0x0012
);
err
=
hci_send_cmd
(
hdev
,
HCI_OP_WRITE_PAGE_SCAN_ACTIVITY
,
sizeof
(
acp
),
err
=
hci_send_cmd
(
hdev
,
HCI_OP_WRITE_PAGE_SCAN_ACTIVITY
,
sizeof
(
acp
),
&
acp
);
&
acp
);
...
@@ -2936,7 +2941,7 @@ int mgmt_device_connected(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 link_type,
...
@@ -2936,7 +2941,7 @@ int mgmt_device_connected(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 link_type,
name
,
name_len
);
name
,
name_len
);
if
(
dev_class
&&
memcmp
(
dev_class
,
"
\0\0\0
"
,
3
)
!=
0
)
if
(
dev_class
&&
memcmp
(
dev_class
,
"
\0\0\0
"
,
3
)
!=
0
)
eir_len
=
eir_append_data
(
&
ev
->
eir
[
eir_len
]
,
eir_len
,
eir_len
=
eir_append_data
(
ev
->
eir
,
eir_len
,
EIR_CLASS_OF_DEV
,
dev_class
,
3
);
EIR_CLASS_OF_DEV
,
dev_class
,
3
);
put_unaligned_le16
(
eir_len
,
&
ev
->
eir_len
);
put_unaligned_le16
(
eir_len
,
&
ev
->
eir_len
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录