diff options
author | Nick Pelly <npelly@google.com> | 2009-12-08 19:42:21 -0800 |
---|---|---|
committer | Colin Cross <ccross@android.com> | 2010-09-29 17:49:23 -0700 |
commit | 8401653065a6c0adbf7f54e94f7ee1a85467f01c (patch) | |
tree | 5bda24eb52ce117fe496fe12f86791c544943053 /include/net | |
parent | 197cf17c5c81851981f2f3fceead81299a901077 (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.h | 5 | ||||
-rw-r--r-- | include/net/bluetooth/l2cap.h | 2 |
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; |