summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorNick Pelly <npelly@google.com>2009-12-08 19:42:21 -0800
committerArve Hjønnevåg <arve@android.com>2010-02-08 15:36:00 -0800
commitd7897fd1e9fb3a5df0740dc2dc45ec94ca0965f2 (patch)
tree212679db880f96eafc6e1ed81aa2f3ab8e0f7e15 /include
parent7b75ff3c3f0b0014dd22c1db05ca916cd4b886e8 (diff)
Bluetooth: Introduce L2CAP_LM_FLUSHABLE to allow flushing of ACL packets.
With Bluetooth 2.1 ACL packets can be flushable or non-flushable. This changes makes the default ACL packet non-flushable, and allows selection of flushable packets on a per-L2CAP socket basis with L2CAP_LM_FLUSHABLE. Note the HCI Write Automatic Flush Timeout command also needs to be issued to set the flush timeout to non-zero. Need to featurize this change to Bluetooth 2.1 chipsets only before pushing upstream. Signed-off-by: Nick Pelly <npelly@google.com>
Diffstat (limited to 'include')
-rw-r--r--include/net/bluetooth/hci.h5
-rw-r--r--include/net/bluetooth/l2cap.h2
2 files changed, 6 insertions, 1 deletions
diff --git a/include/net/bluetooth/hci.h b/include/net/bluetooth/hci.h
index b2d8a99e5177..4f7795f27e04 100644
--- a/include/net/bluetooth/hci.h
+++ b/include/net/bluetooth/hci.h
@@ -143,11 +143,14 @@ enum {
#define EDR_ESCO_MASK (ESCO_2EV3 | ESCO_3EV3 | ESCO_2EV5 | ESCO_3EV5)
/* ACL flags */
+#define ACL_START 0x00
#define ACL_CONT 0x01
-#define ACL_START 0x02
+#define ACL_START_FLUSHABLE 0x02
#define ACL_ACTIVE_BCAST 0x04
#define ACL_PICO_BCAST 0x08
+#define ACL_PB_MASK (ACL_CONT | ACL_START | ACL_START_FLUSHABLE)
+
/* Baseband links */
#define SCO_LINK 0x00
#define ACL_LINK 0x01
diff --git a/include/net/bluetooth/l2cap.h b/include/net/bluetooth/l2cap.h
index 9516f4b4a3c2..904d9a9d1c53 100644
--- a/include/net/bluetooth/l2cap.h
+++ b/include/net/bluetooth/l2cap.h
@@ -70,6 +70,7 @@ struct l2cap_conninfo {
#define L2CAP_LM_TRUSTED 0x0008
#define L2CAP_LM_RELIABLE 0x0010
#define L2CAP_LM_SECURE 0x0020
+#define L2CAP_LM_FLUSHABLE 0x0040
/* L2CAP command codes */
#define L2CAP_COMMAND_REJ 0x01
@@ -316,6 +317,7 @@ struct l2cap_pinfo {
__u8 sec_level;
__u8 role_switch;
__u8 force_reliable;
+ __u8 flushable;
__u8 conf_req[64];
__u8 conf_len;