Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
c1c6c11a
Commit
c1c6c11a
authored
Aug 07, 2008
by
David S. Miller
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
git://git.kernel.org/pub/scm/linux/kernel/git/holtmann/bluetooth-2.6
parents
2aaab9a0
cfeb4145
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
179 additions
and
36 deletions
+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
No files found.
drivers/bluetooth/bcm203x.c
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment