diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-22 22:22:33 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-22 22:22:33 -0400 |
commit | f09cc910fe3af7e63298105bc0482653eb534c3c (patch) | |
tree | a09dca8a3d033352edff6cb1d911f3cd0e980f1f /net/bluetooth/sco.c | |
parent | 8b0eaccab4584ace24d233214bfee3cb50e49a60 (diff) | |
parent | ea2c47b42f12dadbad9d879fb6df102b9003ab82 (diff) |
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
* 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6: (30 commits)
[IPSEC] IPV6: Fix to add tunnel mode SA correctly.
[NET]: Cut off the queue_mapping field from sk_buff
[NET]: Hide the queue_mapping field inside netif_subqueue_stopped
[NET]: Make and use skb_get_queue_mapping
[NET]: Use the skb_set_queue_mapping where appropriate
[INET]: Use MODULE_ALIAS_NET_PF_PROTO_TYPE where possible.
[INET]: Let inet_diag and friends autoload
[NIU]: Cleanup PAGE_SIZE checks a bit
[NET]: Fix SKB_WITH_OVERHEAD calculation
[ATM]: Fix clip module reload crash.
[TG3]: Update version to 3.85
[TG3]: PCI command adjustment
[TG3]: Add management FW version to ethtool report
[TG3]: Add 5723 support
[Bluetooth] Convert RFCOMM to use kthread API
[Bluetooth] Add constant for Bluetooth socket options level
[Bluetooth] Add support for handling simple eSCO links
[Bluetooth] Add address and channel attribute to RFCOMM TTY device
[Bluetooth] Fix wrong argument in debug code of HIDP
[Bluetooth] Add generic driver for Bluetooth USB devices
...
Diffstat (limited to 'net/bluetooth/sco.c')
-rw-r--r-- | net/bluetooth/sco.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/net/bluetooth/sco.c b/net/bluetooth/sco.c index 65b6fb1c4154..82d0dfdfa7e2 100644 --- a/net/bluetooth/sco.c +++ b/net/bluetooth/sco.c | |||
@@ -189,7 +189,7 @@ static int sco_connect(struct sock *sk) | |||
189 | struct sco_conn *conn; | 189 | struct sco_conn *conn; |
190 | struct hci_conn *hcon; | 190 | struct hci_conn *hcon; |
191 | struct hci_dev *hdev; | 191 | struct hci_dev *hdev; |
192 | int err = 0; | 192 | int err, type; |
193 | 193 | ||
194 | BT_DBG("%s -> %s", batostr(src), batostr(dst)); | 194 | BT_DBG("%s -> %s", batostr(src), batostr(dst)); |
195 | 195 | ||
@@ -200,7 +200,9 @@ static int sco_connect(struct sock *sk) | |||
200 | 200 | ||
201 | err = -ENOMEM; | 201 | err = -ENOMEM; |
202 | 202 | ||
203 | hcon = hci_connect(hdev, SCO_LINK, dst); | 203 | type = lmp_esco_capable(hdev) ? ESCO_LINK : SCO_LINK; |
204 | |||
205 | hcon = hci_connect(hdev, type, dst); | ||
204 | if (!hcon) | 206 | if (!hcon) |
205 | goto done; | 207 | goto done; |
206 | 208 | ||
@@ -224,6 +226,7 @@ static int sco_connect(struct sock *sk) | |||
224 | sk->sk_state = BT_CONNECT; | 226 | sk->sk_state = BT_CONNECT; |
225 | sco_sock_set_timer(sk, sk->sk_sndtimeo); | 227 | sco_sock_set_timer(sk, sk->sk_sndtimeo); |
226 | } | 228 | } |
229 | |||
227 | done: | 230 | done: |
228 | hci_dev_unlock_bh(hdev); | 231 | hci_dev_unlock_bh(hdev); |
229 | hci_dev_put(hdev); | 232 | hci_dev_put(hdev); |
@@ -846,7 +849,7 @@ static int sco_connect_cfm(struct hci_conn *hcon, __u8 status) | |||
846 | { | 849 | { |
847 | BT_DBG("hcon %p bdaddr %s status %d", hcon, batostr(&hcon->dst), status); | 850 | BT_DBG("hcon %p bdaddr %s status %d", hcon, batostr(&hcon->dst), status); |
848 | 851 | ||
849 | if (hcon->type != SCO_LINK) | 852 | if (hcon->type != SCO_LINK && hcon->type != ESCO_LINK) |
850 | return 0; | 853 | return 0; |
851 | 854 | ||
852 | if (!status) { | 855 | if (!status) { |
@@ -865,10 +868,11 @@ static int sco_disconn_ind(struct hci_conn *hcon, __u8 reason) | |||
865 | { | 868 | { |
866 | BT_DBG("hcon %p reason %d", hcon, reason); | 869 | BT_DBG("hcon %p reason %d", hcon, reason); |
867 | 870 | ||
868 | if (hcon->type != SCO_LINK) | 871 | if (hcon->type != SCO_LINK && hcon->type != ESCO_LINK) |
869 | return 0; | 872 | return 0; |
870 | 873 | ||
871 | sco_conn_del(hcon, bt_err(reason)); | 874 | sco_conn_del(hcon, bt_err(reason)); |
875 | |||
872 | return 0; | 876 | return 0; |
873 | } | 877 | } |
874 | 878 | ||