Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
69d4cfef
cloud-kernel
项目概览
openanolis
/
cloud-kernel
大约 1 年 前同步成功
通知
158
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看板
体验新版 GitCode,发现更多精彩内容 >>
提交
69d4cfef
编写于
6月 19, 2012
作者:
J
John W. Linville
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'for-upstream' of
git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth
上级
858faa57
ea1e76a3
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
32 addition
and
13 deletion
+32
-13
drivers/bluetooth/ath3k.c
drivers/bluetooth/ath3k.c
+3
-0
drivers/bluetooth/btmrvl_drv.h
drivers/bluetooth/btmrvl_drv.h
+1
-1
drivers/bluetooth/btmrvl_main.c
drivers/bluetooth/btmrvl_main.c
+12
-2
drivers/bluetooth/btmrvl_sdio.c
drivers/bluetooth/btmrvl_sdio.c
+5
-3
drivers/bluetooth/btusb.c
drivers/bluetooth/btusb.c
+2
-0
net/bluetooth/l2cap_core.c
net/bluetooth/l2cap_core.c
+8
-6
net/bluetooth/mgmt.c
net/bluetooth/mgmt.c
+1
-1
未找到文件。
drivers/bluetooth/ath3k.c
浏览文件 @
69d4cfef
...
...
@@ -63,6 +63,7 @@ static struct usb_device_id ath3k_table[] = {
/* Atheros AR3011 with sflash firmware*/
{
USB_DEVICE
(
0x0CF3
,
0x3002
)
},
{
USB_DEVICE
(
0x0CF3
,
0xE019
)
},
{
USB_DEVICE
(
0x13d3
,
0x3304
)
},
{
USB_DEVICE
(
0x0930
,
0x0215
)
},
{
USB_DEVICE
(
0x0489
,
0xE03D
)
},
...
...
@@ -77,6 +78,7 @@ static struct usb_device_id ath3k_table[] = {
{
USB_DEVICE
(
0x04CA
,
0x3005
)
},
{
USB_DEVICE
(
0x13d3
,
0x3362
)
},
{
USB_DEVICE
(
0x0CF3
,
0xE004
)
},
{
USB_DEVICE
(
0x0930
,
0x0219
)
},
/* Atheros AR5BBU12 with sflash firmware */
{
USB_DEVICE
(
0x0489
,
0xE02C
)
},
...
...
@@ -101,6 +103,7 @@ static struct usb_device_id ath3k_blist_tbl[] = {
{
USB_DEVICE
(
0x04ca
,
0x3005
),
.
driver_info
=
BTUSB_ATH3012
},
{
USB_DEVICE
(
0x13d3
,
0x3362
),
.
driver_info
=
BTUSB_ATH3012
},
{
USB_DEVICE
(
0x0cf3
,
0xe004
),
.
driver_info
=
BTUSB_ATH3012
},
{
USB_DEVICE
(
0x0930
,
0x0219
),
.
driver_info
=
BTUSB_ATH3012
},
/* Atheros AR5BBU22 with sflash firmware */
{
USB_DEVICE
(
0x0489
,
0xE03C
),
.
driver_info
=
BTUSB_ATH3012
},
...
...
drivers/bluetooth/btmrvl_drv.h
浏览文件 @
69d4cfef
...
...
@@ -136,7 +136,7 @@ int btmrvl_remove_card(struct btmrvl_private *priv);
void
btmrvl_interrupt
(
struct
btmrvl_private
*
priv
);
void
btmrvl_check_evtpkt
(
struct
btmrvl_private
*
priv
,
struct
sk_buff
*
skb
);
bool
btmrvl_check_evtpkt
(
struct
btmrvl_private
*
priv
,
struct
sk_buff
*
skb
);
int
btmrvl_process_event
(
struct
btmrvl_private
*
priv
,
struct
sk_buff
*
skb
);
int
btmrvl_send_module_cfg_cmd
(
struct
btmrvl_private
*
priv
,
int
subcmd
);
...
...
drivers/bluetooth/btmrvl_main.c
浏览文件 @
69d4cfef
...
...
@@ -44,23 +44,33 @@ void btmrvl_interrupt(struct btmrvl_private *priv)
}
EXPORT_SYMBOL_GPL
(
btmrvl_interrupt
);
void
btmrvl_check_evtpkt
(
struct
btmrvl_private
*
priv
,
struct
sk_buff
*
skb
)
bool
btmrvl_check_evtpkt
(
struct
btmrvl_private
*
priv
,
struct
sk_buff
*
skb
)
{
struct
hci_event_hdr
*
hdr
=
(
void
*
)
skb
->
data
;
struct
hci_ev_cmd_complete
*
ec
;
u16
opcode
,
ocf
;
u16
opcode
,
ocf
,
ogf
;
if
(
hdr
->
evt
==
HCI_EV_CMD_COMPLETE
)
{
ec
=
(
void
*
)
(
skb
->
data
+
HCI_EVENT_HDR_SIZE
);
opcode
=
__le16_to_cpu
(
ec
->
opcode
);
ocf
=
hci_opcode_ocf
(
opcode
);
ogf
=
hci_opcode_ogf
(
opcode
);
if
(
ocf
==
BT_CMD_MODULE_CFG_REQ
&&
priv
->
btmrvl_dev
.
sendcmdflag
)
{
priv
->
btmrvl_dev
.
sendcmdflag
=
false
;
priv
->
adapter
->
cmd_complete
=
true
;
wake_up_interruptible
(
&
priv
->
adapter
->
cmd_wait_q
);
}
if
(
ogf
==
OGF
)
{
BT_DBG
(
"vendor event skipped: ogf 0x%4.4x"
,
ogf
);
kfree_skb
(
skb
);
return
false
;
}
}
return
true
;
}
EXPORT_SYMBOL_GPL
(
btmrvl_check_evtpkt
);
...
...
drivers/bluetooth/btmrvl_sdio.c
浏览文件 @
69d4cfef
...
...
@@ -562,10 +562,12 @@ static int btmrvl_sdio_card_to_host(struct btmrvl_private *priv)
skb_put
(
skb
,
buf_len
);
skb_pull
(
skb
,
SDIO_HEADER_LEN
);
if
(
type
==
HCI_EVENT_PKT
)
btmrvl_check_evtpkt
(
priv
,
skb
);
if
(
type
==
HCI_EVENT_PKT
)
{
if
(
btmrvl_check_evtpkt
(
priv
,
skb
))
hci_recv_frame
(
skb
);
}
else
hci_recv_frame
(
skb
);
hci_recv_frame
(
skb
);
hdev
->
stat
.
byte_rx
+=
buf_len
;
break
;
...
...
drivers/bluetooth/btusb.c
浏览文件 @
69d4cfef
...
...
@@ -125,6 +125,7 @@ static struct usb_device_id blacklist_table[] = {
/* Atheros 3011 with sflash firmware */
{
USB_DEVICE
(
0x0cf3
,
0x3002
),
.
driver_info
=
BTUSB_IGNORE
},
{
USB_DEVICE
(
0x0cf3
,
0xe019
),
.
driver_info
=
BTUSB_IGNORE
},
{
USB_DEVICE
(
0x13d3
,
0x3304
),
.
driver_info
=
BTUSB_IGNORE
},
{
USB_DEVICE
(
0x0930
,
0x0215
),
.
driver_info
=
BTUSB_IGNORE
},
{
USB_DEVICE
(
0x0489
,
0xe03d
),
.
driver_info
=
BTUSB_IGNORE
},
...
...
@@ -139,6 +140,7 @@ static struct usb_device_id blacklist_table[] = {
{
USB_DEVICE
(
0x04ca
,
0x3005
),
.
driver_info
=
BTUSB_ATH3012
},
{
USB_DEVICE
(
0x13d3
,
0x3362
),
.
driver_info
=
BTUSB_ATH3012
},
{
USB_DEVICE
(
0x0cf3
,
0xe004
),
.
driver_info
=
BTUSB_ATH3012
},
{
USB_DEVICE
(
0x0930
,
0x0219
),
.
driver_info
=
BTUSB_ATH3012
},
/* Atheros AR5BBU12 with sflash firmware */
{
USB_DEVICE
(
0x0489
,
0xe02c
),
.
driver_info
=
BTUSB_IGNORE
},
...
...
net/bluetooth/l2cap_core.c
浏览文件 @
69d4cfef
...
...
@@ -2915,12 +2915,14 @@ static void l2cap_conf_rfc_get(struct l2cap_chan *chan, void *rsp, int len)
while
(
len
>=
L2CAP_CONF_OPT_SIZE
)
{
len
-=
l2cap_get_conf_opt
(
&
rsp
,
&
type
,
&
olen
,
&
val
);
switch
(
type
)
{
case
L2CAP_CONF_RFC
:
if
(
olen
==
sizeof
(
rfc
))
memcpy
(
&
rfc
,
(
void
*
)
val
,
olen
);
goto
done
;
}
if
(
type
!=
L2CAP_CONF_RFC
)
continue
;
if
(
olen
!=
sizeof
(
rfc
))
break
;
memcpy
(
&
rfc
,
(
void
*
)
val
,
olen
);
goto
done
;
}
/* Use sane default values in case a misbehaving remote device
...
...
net/bluetooth/mgmt.c
浏览文件 @
69d4cfef
...
...
@@ -1598,7 +1598,7 @@ static int disconnect(struct sock *sk, struct hci_dev *hdev, void *data,
else
conn
=
hci_conn_hash_lookup_ba
(
hdev
,
LE_LINK
,
&
cp
->
addr
.
bdaddr
);
if
(
!
conn
)
{
if
(
!
conn
||
conn
->
state
==
BT_OPEN
||
conn
->
state
==
BT_CLOSED
)
{
err
=
cmd_status
(
sk
,
hdev
->
id
,
MGMT_OP_DISCONNECT
,
MGMT_STATUS_NOT_CONNECTED
);
goto
failed
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录