summaryrefslogtreecommitdiffstats
path: root/include/net
diff options
context:
space:
mode:
authorAndrei Emeltchenko <andrei.emeltchenko@intel.com>2012-11-29 17:46:05 +0200
committerGustavo Padovan <gustavo.padovan@collabora.co.uk>2012-12-03 16:00:00 -0200
commit5d05416e0907b0dd30b62b002bed3b85e6efbd61 (patch)
tree8ee7c46ae2533c168a63e9e1ea10980168c06a2c /include/net
parentced5c338d7b696021058c23fb6a286def2171df5 (diff)
downloadlinux-5d05416e0907b0dd30b62b002bed3b85e6efbd61.tar.gz
linux-5d05416e0907b0dd30b62b002bed3b85e6efbd61.tar.bz2
linux-5d05416e0907b0dd30b62b002bed3b85e6efbd61.zip
Bluetooth: AMP: Check that AMP is present and active
Before starting quering remote AMP controllers make sure that there is local active AMP controller. Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com> Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
Diffstat (limited to 'include/net')
-rw-r--r--include/net/bluetooth/hci_core.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/include/net/bluetooth/hci_core.h b/include/net/bluetooth/hci_core.h
index 2f2b743f5b10..014a2eaa5389 100644
--- a/include/net/bluetooth/hci_core.h
+++ b/include/net/bluetooth/hci_core.h
@@ -779,6 +779,22 @@ void hci_conn_del_sysfs(struct hci_conn *conn);
#define lmp_host_le_capable(dev) !!((dev)->host_features[0] & LMP_HOST_LE)
#define lmp_host_le_br_capable(dev) !!((dev)->host_features[0] & LMP_HOST_LE_BREDR)
+/* returns true if at least one AMP active */
+static inline bool hci_amp_capable(void)
+{
+ struct hci_dev *hdev;
+ bool ret = false;
+
+ read_lock(&hci_dev_list_lock);
+ list_for_each_entry(hdev, &hci_dev_list, list)
+ if (hdev->amp_type == HCI_AMP &&
+ test_bit(HCI_UP, &hdev->flags))
+ ret = true;
+ read_unlock(&hci_dev_list_lock);
+
+ return ret;
+}
+
/* ----- HCI protocols ----- */
#define HCI_PROTO_DEFER 0x01