summaryrefslogtreecommitdiff
path: root/include/net
diff options
context:
space:
mode:
authorNick Pelly <npelly@google.com>2009-12-08 19:42:21 -0800
committerColin Cross <ccross@android.com>2010-09-29 17:49:23 -0700
commit8401653065a6c0adbf7f54e94f7ee1a85467f01c (patch)
tree5bda24eb52ce117fe496fe12f86791c544943053 /include/net
parent197cf17c5c81851981f2f3fceead81299a901077 (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/net')
-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 84ae84074973..2a833d9aa28a 100644
--- a/include/net/bluetooth/hci.h
+++ b/include/net/bluetooth/hci.h
@@ -150,11 +150,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 6c241444f902..bcb78529c390 100644
--- a/include/net/bluetooth/l2cap.h
+++ b/include/net/bluetooth/l2cap.h
@@ -75,6 +75,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
@@ -327,6 +328,7 @@ struct l2cap_pinfo {
__u8 sec_level;
__u8 role_switch;
__u8 force_reliable;
+ __u8 flushable;
__u8 conf_req[64];
__u8 conf_len;