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
Kirill Smelkov
linux
Commits
41833af7
Commit
41833af7
authored
Apr 09, 2012
by
John W. Linville
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth
parents
f68e556e
66f3b913
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
45 additions
and
19 deletions
+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
No files found.
MAINTAINERS
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
);
...
...
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