aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/bluetooth/hci_core.h
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2014-12-05 13:03:35 +0100
committerJohan Hedberg <johan.hedberg@intel.com>2014-12-05 14:14:28 +0200
commitda25cf6a9869cff52b4fd189fdcd322ad2daf023 (patch)
tree87fa00769125e8ee332b6346f24786bb4d6eb73a /include/net/bluetooth/hci_core.h
parentBluetooth: Fix discovery filter when no RSSI is available (diff)
downloadlinux-dev-da25cf6a9869cff52b4fd189fdcd322ad2daf023.tar.xz
linux-dev-da25cf6a9869cff52b4fd189fdcd322ad2daf023.zip
Bluetooth: Report invalid RSSI for service discovery and background scan
When using Start Service Discovery and when background scanning is used to report devices, the RSSI is reported or the value 127 is provided in case RSSI in unavailable. For Start Discovery the value 0 is reported to keep backwards compatibility with the existing users. Signed-off-by: Marcel Holtmann <marcel@holtmann.org> Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Diffstat (limited to 'include/net/bluetooth/hci_core.h')
-rw-r--r--include/net/bluetooth/hci_core.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/include/net/bluetooth/hci_core.h b/include/net/bluetooth/hci_core.h
index f07b1450b3c2..3c7827005c25 100644
--- a/include/net/bluetooth/hci_core.h
+++ b/include/net/bluetooth/hci_core.h
@@ -75,6 +75,7 @@ struct discovery_state {
u32 last_adv_flags;
u8 last_adv_data[HCI_MAX_AD_LENGTH];
u8 last_adv_data_len;
+ bool report_invalid_rssi;
s8 rssi;
u16 uuid_count;
u8 (*uuids)[16];
@@ -506,11 +507,13 @@ static inline void discovery_init(struct hci_dev *hdev)
INIT_LIST_HEAD(&hdev->discovery.all);
INIT_LIST_HEAD(&hdev->discovery.unknown);
INIT_LIST_HEAD(&hdev->discovery.resolve);
+ hdev->discovery.report_invalid_rssi = true;
hdev->discovery.rssi = HCI_RSSI_INVALID;
}
static inline void hci_discovery_filter_clear(struct hci_dev *hdev)
{
+ hdev->discovery.report_invalid_rssi = true;
hdev->discovery.rssi = HCI_RSSI_INVALID;
hdev->discovery.uuid_count = 0;
kfree(hdev->discovery.uuids);