aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2008-07-14 14:13:46 -0400
committerMarcel Holtmann <marcel@holtmann.org>2008-07-14 14:13:46 -0400
commita8746417e864da1ed36dd2432a399fbeb843c2a0 (patch)
treee0e392e8b76d53748f357e888483bced2de24e2b /include
parent9dc0a3afc08d6c20c284994dcd84531787d00ec2 (diff)
[Bluetooth] Track connection packet type changes
The connection packet type can be changed after the connection has been established and thus needs to be properly tracked to ensure that the host stack has always correct and valid information about it. On incoming connections the Bluetooth core switches the supported packet types to the configured list for this controller. However the usefulness of this feature has been questioned a lot. The general consent is that every Bluetooth host stack should enable as many packet types as the hardware actually supports and leave the decision to the link manager software running on the Bluetooth chip. When running on Bluetooth 2.0 or later hardware, don't change the packet type for incoming connections anymore. This hardware likely supports Enhanced Data Rate and thus leave it completely up to the link manager to pick the best packet type. Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Diffstat (limited to 'include')
-rw-r--r--include/net/bluetooth/hci.h9
-rw-r--r--include/net/bluetooth/hci_core.h1
2 files changed, 10 insertions, 0 deletions
diff --git a/include/net/bluetooth/hci.h b/include/net/bluetooth/hci.h
index a8a9eb6af966..f1dc174abc2a 100644
--- a/include/net/bluetooth/hci.h
+++ b/include/net/bluetooth/hci.h
@@ -137,6 +137,8 @@ enum {
137#define ESCO_EV4 0x0010 137#define ESCO_EV4 0x0010
138#define ESCO_EV5 0x0020 138#define ESCO_EV5 0x0020
139 139
140#define SCO_ESCO_MASK (ESCO_HV1 | ESCO_HV2 | ESCO_HV3)
141
140/* ACL flags */ 142/* ACL flags */
141#define ACL_CONT 0x01 143#define ACL_CONT 0x01
142#define ACL_START 0x02 144#define ACL_START 0x02
@@ -696,6 +698,13 @@ struct hci_ev_clock_offset {
696 __le16 clock_offset; 698 __le16 clock_offset;
697} __attribute__ ((packed)); 699} __attribute__ ((packed));
698 700
701#define HCI_EV_PKT_TYPE_CHANGE 0x1d
702struct hci_ev_pkt_type_change {
703 __u8 status;
704 __le16 handle;
705 __le16 pkt_type;
706} __attribute__ ((packed));
707
699#define HCI_EV_PSCAN_REP_MODE 0x20 708#define HCI_EV_PSCAN_REP_MODE 0x20
700struct hci_ev_pscan_rep_mode { 709struct hci_ev_pscan_rep_mode {
701 bdaddr_t bdaddr; 710 bdaddr_t bdaddr;
diff --git a/include/net/bluetooth/hci_core.h b/include/net/bluetooth/hci_core.h
index c8255adee8f5..6424d63e3395 100644
--- a/include/net/bluetooth/hci_core.h
+++ b/include/net/bluetooth/hci_core.h
@@ -162,6 +162,7 @@ struct hci_conn {
162 __u8 dev_class[3]; 162 __u8 dev_class[3];
163 __u8 features[8]; 163 __u8 features[8];
164 __u16 interval; 164 __u16 interval;
165 __u16 pkt_type;
165 __u16 link_policy; 166 __u16 link_policy;
166 __u32 link_mode; 167 __u32 link_mode;
167 __u8 power_save; 168 __u8 power_save;