aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/bluetooth
diff options
context:
space:
mode:
authorVille Tervo <ville.tervo@nokia.com>2011-02-16 09:32:41 -0500
committerGustavo F. Padovan <padovan@profusion.mobi>2011-02-16 14:33:26 -0500
commit6bd32326cdaa9b14794416150c88e4832fb7e592 (patch)
tree4c48387761df0207bb50952dda7fd5c980893351 /include/net/bluetooth
parent7f4b2b04c88377af30c022f36c060190182850fb (diff)
Bluetooth: Use proper timer for hci command timout
Use proper timer instead of hci command flow control to timeout failed hci commands. Otherwise stack ends up sending commands when flow control is used to block new commands. 2010-09-01 18:29:41.592132 < HCI Command: Remote Name Request (0x01|0x0019) plen 10 bdaddr 00:16:CF:E1:C7:D7 mode 2 clkoffset 0x0000 2010-09-01 18:29:41.592681 > HCI Event: Command Status (0x0f) plen 4 Remote Name Request (0x01|0x0019) status 0x00 ncmd 0 2010-09-01 18:29:51.022033 < HCI Command: Remote Name Request Cancel (0x01|0x001a) plen 6 bdaddr 00:16:CF:E1:C7:D7 Signed-off-by: Ville Tervo <ville.tervo@nokia.com> Signed-off-by: Gustavo F. Padovan <padovan@profusion.mobi>
Diffstat (limited to 'include/net/bluetooth')
-rw-r--r--include/net/bluetooth/hci.h3
-rw-r--r--include/net/bluetooth/hci_core.h2
2 files changed, 4 insertions, 1 deletions
diff --git a/include/net/bluetooth/hci.h b/include/net/bluetooth/hci.h
index e756f82a29e5..6d4e11624fef 100644
--- a/include/net/bluetooth/hci.h
+++ b/include/net/bluetooth/hci.h
@@ -119,6 +119,7 @@ enum {
119#define HCI_PAIRING_TIMEOUT (60000) /* 60 seconds */ 119#define HCI_PAIRING_TIMEOUT (60000) /* 60 seconds */
120#define HCI_IDLE_TIMEOUT (6000) /* 6 seconds */ 120#define HCI_IDLE_TIMEOUT (6000) /* 6 seconds */
121#define HCI_INIT_TIMEOUT (10000) /* 10 seconds */ 121#define HCI_INIT_TIMEOUT (10000) /* 10 seconds */
122#define HCI_CMD_TIMEOUT (1000) /* 1 seconds */
122 123
123/* HCI data types */ 124/* HCI data types */
124#define HCI_COMMAND_PKT 0x01 125#define HCI_COMMAND_PKT 0x01
@@ -244,6 +245,8 @@ enum {
244#define HCI_AT_GENERAL_BONDING_MITM 0x05 245#define HCI_AT_GENERAL_BONDING_MITM 0x05
245 246
246/* ----- HCI Commands ---- */ 247/* ----- HCI Commands ---- */
248#define HCI_OP_NOP 0x0000
249
247#define HCI_OP_INQUIRY 0x0401 250#define HCI_OP_INQUIRY 0x0401
248struct hci_cp_inquiry { 251struct hci_cp_inquiry {
249 __u8 lap[3]; 252 __u8 lap[3];
diff --git a/include/net/bluetooth/hci_core.h b/include/net/bluetooth/hci_core.h
index d30b93c82fd4..ecd2acf24420 100644
--- a/include/net/bluetooth/hci_core.h
+++ b/include/net/bluetooth/hci_core.h
@@ -132,7 +132,6 @@ struct hci_dev {
132 unsigned int sco_pkts; 132 unsigned int sco_pkts;
133 unsigned int le_pkts; 133 unsigned int le_pkts;
134 134
135 unsigned long cmd_last_tx;
136 unsigned long acl_last_tx; 135 unsigned long acl_last_tx;
137 unsigned long sco_last_tx; 136 unsigned long sco_last_tx;
138 unsigned long le_last_tx; 137 unsigned long le_last_tx;
@@ -143,6 +142,7 @@ struct hci_dev {
143 struct work_struct power_off; 142 struct work_struct power_off;
144 struct timer_list off_timer; 143 struct timer_list off_timer;
145 144
145 struct timer_list cmd_timer;
146 struct tasklet_struct cmd_task; 146 struct tasklet_struct cmd_task;
147 struct tasklet_struct rx_task; 147 struct tasklet_struct rx_task;
148 struct tasklet_struct tx_task; 148 struct tasklet_struct tx_task;