Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xiphi1978
linux
提交
c1c6c11a
L
linux
项目概览
xiphi1978
/
linux
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
L
linux
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
c1c6c11a
编写于
8月 07, 2008
作者:
D
David S. Miller
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of
git://git.kernel.org/pub/scm/linux/kernel/git/holtmann/bluetooth-2.6
上级
2aaab9a0
cfeb4145
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
179 addition
and
36 deletion
+179
-36
drivers/bluetooth/bcm203x.c
drivers/bluetooth/bcm203x.c
+2
-7
drivers/bluetooth/bfusb.c
drivers/bluetooth/bfusb.c
+1
-9
drivers/bluetooth/bpa10x.c
drivers/bluetooth/bpa10x.c
+1
-9
drivers/bluetooth/btusb.c
drivers/bluetooth/btusb.c
+161
-2
drivers/bluetooth/hci_usb.c
drivers/bluetooth/hci_usb.c
+2
-6
net/bluetooth/bnep/core.c
net/bluetooth/bnep/core.c
+12
-3
未找到文件。
drivers/bluetooth/bcm203x.c
浏览文件 @
c1c6c11a
...
...
@@ -42,9 +42,7 @@
#define BT_DBG(D...)
#endif
#define VERSION "1.1"
static
int
ignore
=
0
;
#define VERSION "1.2"
static
struct
usb_device_id
bcm203x_table
[]
=
{
/* Broadcom Blutonium (BCM2033) */
...
...
@@ -175,7 +173,7 @@ static int bcm203x_probe(struct usb_interface *intf, const struct usb_device_id
BT_DBG
(
"intf %p id %p"
,
intf
,
id
);
if
(
i
gnore
||
(
intf
->
cur_altsetting
->
desc
.
bInterfaceNumber
!=
0
)
)
if
(
i
ntf
->
cur_altsetting
->
desc
.
bInterfaceNumber
!=
0
)
return
-
ENODEV
;
data
=
kzalloc
(
sizeof
(
*
data
),
GFP_KERNEL
);
...
...
@@ -300,9 +298,6 @@ static void __exit bcm203x_exit(void)
module_init
(
bcm203x_init
);
module_exit
(
bcm203x_exit
);
module_param
(
ignore
,
bool
,
0644
);
MODULE_PARM_DESC
(
ignore
,
"Ignore devices from the matching table"
);
MODULE_AUTHOR
(
"Marcel Holtmann <marcel@holtmann.org>"
);
MODULE_DESCRIPTION
(
"Broadcom Blutonium firmware driver ver "
VERSION
);
MODULE_VERSION
(
VERSION
);
...
...
drivers/bluetooth/bfusb.c
浏览文件 @
c1c6c11a
...
...
@@ -43,9 +43,7 @@
#define BT_DBG(D...)
#endif
#define VERSION "1.1"
static
int
ignore
=
0
;
#define VERSION "1.2"
static
struct
usb_driver
bfusb_driver
;
...
...
@@ -656,9 +654,6 @@ static int bfusb_probe(struct usb_interface *intf, const struct usb_device_id *i
BT_DBG
(
"intf %p id %p"
,
intf
,
id
);
if
(
ignore
)
return
-
ENODEV
;
/* Check number of endpoints */
if
(
intf
->
cur_altsetting
->
desc
.
bNumEndpoints
<
2
)
return
-
EIO
;
...
...
@@ -795,9 +790,6 @@ static void __exit bfusb_exit(void)
module_init
(
bfusb_init
);
module_exit
(
bfusb_exit
);
module_param
(
ignore
,
bool
,
0644
);
MODULE_PARM_DESC
(
ignore
,
"Ignore devices from the matching table"
);
MODULE_AUTHOR
(
"Marcel Holtmann <marcel@holtmann.org>"
);
MODULE_DESCRIPTION
(
"BlueFRITZ! USB driver ver "
VERSION
);
MODULE_VERSION
(
VERSION
);
...
...
drivers/bluetooth/bpa10x.c
浏览文件 @
c1c6c11a
...
...
@@ -40,9 +40,7 @@
#define BT_DBG(D...)
#endif
#define VERSION "0.9"
static
int
ignore
=
0
;
#define VERSION "0.10"
static
struct
usb_device_id
bpa10x_table
[]
=
{
/* Tektronix BPA 100/105 (Digianswer) */
...
...
@@ -460,9 +458,6 @@ static int bpa10x_probe(struct usb_interface *intf, const struct usb_device_id *
BT_DBG
(
"intf %p id %p"
,
intf
,
id
);
if
(
ignore
)
return
-
ENODEV
;
if
(
intf
->
cur_altsetting
->
desc
.
bInterfaceNumber
!=
0
)
return
-
ENODEV
;
...
...
@@ -546,9 +541,6 @@ static void __exit bpa10x_exit(void)
module_init
(
bpa10x_init
);
module_exit
(
bpa10x_exit
);
module_param
(
ignore
,
bool
,
0644
);
MODULE_PARM_DESC
(
ignore
,
"Ignore devices from the matching table"
);
MODULE_AUTHOR
(
"Marcel Holtmann <marcel@holtmann.org>"
);
MODULE_DESCRIPTION
(
"Digianswer Bluetooth USB driver ver "
VERSION
);
MODULE_VERSION
(
VERSION
);
...
...
drivers/bluetooth/btusb.c
浏览文件 @
c1c6c11a
...
...
@@ -41,18 +41,122 @@
#define BT_DBG(D...)
#endif
#define VERSION "0.1"
#define VERSION "0.2"
static
int
ignore_dga
;
static
int
ignore_csr
;
static
int
ignore_sniffer
;
static
int
disable_scofix
;
static
int
force_scofix
;
static
int
reset
;
static
struct
usb_driver
btusb_driver
;
#define BTUSB_IGNORE 0x01
#define BTUSB_RESET 0x02
#define BTUSB_DIGIANSWER 0x04
#define BTUSB_CSR 0x08
#define BTUSB_SNIFFER 0x10
#define BTUSB_BCM92035 0x20
#define BTUSB_BROKEN_ISOC 0x40
#define BTUSB_WRONG_SCO_MTU 0x80
static
struct
usb_device_id
btusb_table
[]
=
{
/* Generic Bluetooth USB device */
{
USB_DEVICE_INFO
(
0xe0
,
0x01
,
0x01
)
},
/* AVM BlueFRITZ! USB v2.0 */
{
USB_DEVICE
(
0x057c
,
0x3800
)
},
/* Bluetooth Ultraport Module from IBM */
{
USB_DEVICE
(
0x04bf
,
0x030a
)
},
/* ALPS Modules with non-standard id */
{
USB_DEVICE
(
0x044e
,
0x3001
)
},
{
USB_DEVICE
(
0x044e
,
0x3002
)
},
/* Ericsson with non-standard id */
{
USB_DEVICE
(
0x0bdb
,
0x1002
)
},
/* Canyon CN-BTU1 with HID interfaces */
{
USB_DEVICE
(
0x0c10
,
0x0000
),
.
driver_info
=
BTUSB_RESET
},
{
}
/* Terminating entry */
};
MODULE_DEVICE_TABLE
(
usb
,
btusb_table
);
static
struct
usb_device_id
blacklist_table
[]
=
{
/* CSR BlueCore devices */
{
USB_DEVICE
(
0x0a12
,
0x0001
),
.
driver_info
=
BTUSB_CSR
},
/* Broadcom BCM2033 without firmware */
{
USB_DEVICE
(
0x0a5c
,
0x2033
),
.
driver_info
=
BTUSB_IGNORE
},
/* Broadcom BCM2035 */
{
USB_DEVICE
(
0x0a5c
,
0x2035
),
.
driver_info
=
BTUSB_RESET
|
BTUSB_WRONG_SCO_MTU
},
{
USB_DEVICE
(
0x0a5c
,
0x200a
),
.
driver_info
=
BTUSB_RESET
|
BTUSB_WRONG_SCO_MTU
},
/* Broadcom BCM2045 */
{
USB_DEVICE
(
0x0a5c
,
0x2039
),
.
driver_info
=
BTUSB_RESET
|
BTUSB_WRONG_SCO_MTU
},
{
USB_DEVICE
(
0x0a5c
,
0x2101
),
.
driver_info
=
BTUSB_RESET
|
BTUSB_WRONG_SCO_MTU
},
/* Broadcom BCM2046 */
{
USB_DEVICE
(
0x0a5c
,
0x2151
),
.
driver_info
=
BTUSB_RESET
},
/* IBM/Lenovo ThinkPad with Broadcom chip */
{
USB_DEVICE
(
0x0a5c
,
0x201e
),
.
driver_info
=
BTUSB_RESET
|
BTUSB_WRONG_SCO_MTU
},
{
USB_DEVICE
(
0x0a5c
,
0x2110
),
.
driver_info
=
BTUSB_RESET
|
BTUSB_WRONG_SCO_MTU
},
/* Targus ACB10US */
{
USB_DEVICE
(
0x0a5c
,
0x2100
),
.
driver_info
=
BTUSB_RESET
},
/* ANYCOM Bluetooth USB-200 and USB-250 */
{
USB_DEVICE
(
0x0a5c
,
0x2111
),
.
driver_info
=
BTUSB_RESET
},
/* HP laptop with Broadcom chip */
{
USB_DEVICE
(
0x03f0
,
0x171d
),
.
driver_info
=
BTUSB_RESET
|
BTUSB_WRONG_SCO_MTU
},
/* Dell laptop with Broadcom chip */
{
USB_DEVICE
(
0x413c
,
0x8126
),
.
driver_info
=
BTUSB_RESET
|
BTUSB_WRONG_SCO_MTU
},
/* Dell Wireless 370 */
{
USB_DEVICE
(
0x413c
,
0x8156
),
.
driver_info
=
BTUSB_RESET
|
BTUSB_WRONG_SCO_MTU
},
/* Dell Wireless 410 */
{
USB_DEVICE
(
0x413c
,
0x8152
),
.
driver_info
=
BTUSB_RESET
|
BTUSB_WRONG_SCO_MTU
},
/* Microsoft Wireless Transceiver for Bluetooth 2.0 */
{
USB_DEVICE
(
0x045e
,
0x009c
),
.
driver_info
=
BTUSB_RESET
},
/* Kensington Bluetooth USB adapter */
{
USB_DEVICE
(
0x047d
,
0x105d
),
.
driver_info
=
BTUSB_RESET
},
{
USB_DEVICE
(
0x047d
,
0x105e
),
.
driver_info
=
BTUSB_RESET
|
BTUSB_WRONG_SCO_MTU
},
/* ISSC Bluetooth Adapter v3.1 */
{
USB_DEVICE
(
0x1131
,
0x1001
),
.
driver_info
=
BTUSB_RESET
},
/* RTX Telecom based adapters with buggy SCO support */
{
USB_DEVICE
(
0x0400
,
0x0807
),
.
driver_info
=
BTUSB_BROKEN_ISOC
},
{
USB_DEVICE
(
0x0400
,
0x080a
),
.
driver_info
=
BTUSB_BROKEN_ISOC
},
/* CONWISE Technology based adapters with buggy SCO support */
{
USB_DEVICE
(
0x0e5e
,
0x6622
),
.
driver_info
=
BTUSB_BROKEN_ISOC
},
/* Belkin F8T012 and F8T013 devices */
{
USB_DEVICE
(
0x050d
,
0x0012
),
.
driver_info
=
BTUSB_RESET
|
BTUSB_WRONG_SCO_MTU
},
{
USB_DEVICE
(
0x050d
,
0x0013
),
.
driver_info
=
BTUSB_RESET
|
BTUSB_WRONG_SCO_MTU
},
/* Digianswer devices */
{
USB_DEVICE
(
0x08fd
,
0x0001
),
.
driver_info
=
BTUSB_DIGIANSWER
},
{
USB_DEVICE
(
0x08fd
,
0x0002
),
.
driver_info
=
BTUSB_IGNORE
},
/* CSR BlueCore Bluetooth Sniffer */
{
USB_DEVICE
(
0x0a12
,
0x0002
),
.
driver_info
=
BTUSB_SNIFFER
},
/* Frontline ComProbe Bluetooth Sniffer */
{
USB_DEVICE
(
0x16d3
,
0x0002
),
.
driver_info
=
BTUSB_SNIFFER
},
{
}
/* Terminating entry */
};
...
...
@@ -433,6 +537,7 @@ static int btusb_probe(struct usb_interface *intf,
BT_DBG
(
"intf %p id %p"
,
intf
,
id
);
/* interface numbers are hardcoded in the spec */
if
(
intf
->
cur_altsetting
->
desc
.
bInterfaceNumber
!=
0
)
return
-
ENODEV
;
...
...
@@ -443,6 +548,18 @@ static int btusb_probe(struct usb_interface *intf,
id
=
match
;
}
if
(
id
->
driver_info
==
BTUSB_IGNORE
)
return
-
ENODEV
;
if
(
ignore_dga
&&
id
->
driver_info
&
BTUSB_DIGIANSWER
)
return
-
ENODEV
;
if
(
ignore_csr
&&
id
->
driver_info
&
BTUSB_CSR
)
return
-
ENODEV
;
if
(
ignore_sniffer
&&
id
->
driver_info
&
BTUSB_SNIFFER
)
return
-
ENODEV
;
data
=
kzalloc
(
sizeof
(
*
data
),
GFP_KERNEL
);
if
(
!
data
)
return
-
ENOMEM
;
...
...
@@ -503,7 +620,31 @@ static int btusb_probe(struct usb_interface *intf,
hdev
->
owner
=
THIS_MODULE
;
set_bit
(
HCI_QUIRK_RESET_ON_INIT
,
&
hdev
->
quirks
);
if
(
reset
||
id
->
driver_info
&
BTUSB_RESET
)
set_bit
(
HCI_QUIRK_RESET_ON_INIT
,
&
hdev
->
quirks
);
if
(
force_scofix
||
id
->
driver_info
&
BTUSB_WRONG_SCO_MTU
)
{
if
(
!
disable_scofix
)
set_bit
(
HCI_QUIRK_FIXUP_BUFFER_SIZE
,
&
hdev
->
quirks
);
}
if
(
id
->
driver_info
&
BTUSB_SNIFFER
)
{
struct
usb_device
*
udev
=
interface_to_usbdev
(
intf
);
if
(
le16_to_cpu
(
udev
->
descriptor
.
bcdDevice
)
>
0x997
)
set_bit
(
HCI_QUIRK_RAW_DEVICE
,
&
hdev
->
quirks
);
}
if
(
id
->
driver_info
&
BTUSB_BCM92035
)
{
unsigned
char
cmd
[]
=
{
0x3b
,
0xfc
,
0x01
,
0x00
};
struct
sk_buff
*
skb
;
skb
=
bt_skb_alloc
(
sizeof
(
cmd
),
GFP_KERNEL
);
if
(
skb
)
{
memcpy
(
skb_put
(
skb
,
sizeof
(
cmd
)),
cmd
,
sizeof
(
cmd
));
skb_queue_tail
(
&
hdev
->
driver_init
,
skb
);
}
}
err
=
hci_register_dev
(
hdev
);
if
(
err
<
0
)
{
...
...
@@ -558,6 +699,24 @@ static void __exit btusb_exit(void)
module_init
(
btusb_init
);
module_exit
(
btusb_exit
);
module_param
(
ignore_dga
,
bool
,
0644
);
MODULE_PARM_DESC
(
ignore_dga
,
"Ignore devices with id 08fd:0001"
);
module_param
(
ignore_csr
,
bool
,
0644
);
MODULE_PARM_DESC
(
ignore_csr
,
"Ignore devices with id 0a12:0001"
);
module_param
(
ignore_sniffer
,
bool
,
0644
);
MODULE_PARM_DESC
(
ignore_sniffer
,
"Ignore devices with id 0a12:0002"
);
module_param
(
disable_scofix
,
bool
,
0644
);
MODULE_PARM_DESC
(
disable_scofix
,
"Disable fixup of wrong SCO buffer size"
);
module_param
(
force_scofix
,
bool
,
0644
);
MODULE_PARM_DESC
(
force_scofix
,
"Force fixup of wrong SCO buffers size"
);
module_param
(
reset
,
bool
,
0644
);
MODULE_PARM_DESC
(
reset
,
"Send HCI reset command on initialization"
);
MODULE_AUTHOR
(
"Marcel Holtmann <marcel@holtmann.org>"
);
MODULE_DESCRIPTION
(
"Generic Bluetooth USB driver ver "
VERSION
);
MODULE_VERSION
(
VERSION
);
...
...
drivers/bluetooth/hci_usb.c
浏览文件 @
c1c6c11a
...
...
@@ -62,7 +62,6 @@
#define URB_ZERO_PACKET 0
#endif
static
int
ignore
;
static
int
ignore_dga
;
static
int
ignore_csr
;
static
int
ignore_sniffer
;
...
...
@@ -74,7 +73,7 @@ static int reset;
static
int
isoc
=
2
;
#endif
#define VERSION "2.
9
"
#define VERSION "2.
10
"
static
struct
usb_driver
hci_usb_driver
;
...
...
@@ -801,7 +800,7 @@ static int hci_usb_probe(struct usb_interface *intf, const struct usb_device_id
id
=
match
;
}
if
(
i
gnore
||
i
d
->
driver_info
&
HCI_IGNORE
)
if
(
id
->
driver_info
&
HCI_IGNORE
)
return
-
ENODEV
;
if
(
ignore_dga
&&
id
->
driver_info
&
HCI_DIGIANSWER
)
...
...
@@ -1108,9 +1107,6 @@ static void __exit hci_usb_exit(void)
module_init
(
hci_usb_init
);
module_exit
(
hci_usb_exit
);
module_param
(
ignore
,
bool
,
0644
);
MODULE_PARM_DESC
(
ignore
,
"Ignore devices from the matching table"
);
module_param
(
ignore_dga
,
bool
,
0644
);
MODULE_PARM_DESC
(
ignore_dga
,
"Ignore devices with id 08fd:0001"
);
...
...
net/bluetooth/bnep/core.c
浏览文件 @
c1c6c11a
...
...
@@ -57,7 +57,10 @@
#define BT_DBG(D...)
#endif
#define VERSION "1.2"
#define VERSION "1.3"
static
int
compress_src
=
1
;
static
int
compress_dst
=
1
;
static
LIST_HEAD
(
bnep_session_list
);
static
DECLARE_RWSEM
(
bnep_session_sem
);
...
...
@@ -418,10 +421,10 @@ static inline int bnep_tx_frame(struct bnep_session *s, struct sk_buff *skb)
iv
[
il
++
]
=
(
struct
kvec
)
{
&
type
,
1
};
len
++
;
if
(
!
compare_ether_addr
(
eh
->
h_dest
,
s
->
eh
.
h_source
))
if
(
compress_src
&&
!
compare_ether_addr
(
eh
->
h_dest
,
s
->
eh
.
h_source
))
type
|=
0x01
;
if
(
!
compare_ether_addr
(
eh
->
h_source
,
s
->
eh
.
h_dest
))
if
(
compress_dst
&&
!
compare_ether_addr
(
eh
->
h_source
,
s
->
eh
.
h_dest
))
type
|=
0x02
;
if
(
type
)
...
...
@@ -727,6 +730,12 @@ static void __exit bnep_exit(void)
module_init
(
bnep_init
);
module_exit
(
bnep_exit
);
module_param
(
compress_src
,
bool
,
0644
);
MODULE_PARM_DESC
(
compress_src
,
"Compress sources headers"
);
module_param
(
compress_dst
,
bool
,
0644
);
MODULE_PARM_DESC
(
compress_dst
,
"Compress destination headers"
);
MODULE_AUTHOR
(
"David Libault <david.libault@inventel.fr>, Maxim Krasnyansky <maxk@qualcomm.com>"
);
MODULE_DESCRIPTION
(
"Bluetooth BNEP ver "
VERSION
);
MODULE_VERSION
(
VERSION
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录