Bluetooth: Filter device found events based on RSSI threshold

Using Start Service Discovery allows to provide a RSSI threshold. This
patch implements support for filtering out device found events based
on the provided value.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
This commit is contained in:
Marcel Holtmann 2014-12-05 10:55:56 +01:00 коммит произвёл Johan Hedberg
Родитель 37eab042be
Коммит bda157a400
1 изменённых файлов: 9 добавлений и 0 удалений

Просмотреть файл

@ -6821,6 +6821,15 @@ void mgmt_device_found(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 link_type,
return; return;
} }
/* When using service discovery with a RSSI threshold, then check
* if such a RSSI threshold is specified. If a RSSI threshold has
* been specified, then all results with a RSSI smaller than the
* RSSI threshold will be dropped.
*/
if (hdev->discovery.rssi != HCI_RSSI_INVALID &&
rssi < hdev->discovery.rssi)
return;
/* Make sure that the buffer is big enough. The 5 extra bytes /* Make sure that the buffer is big enough. The 5 extra bytes
* are for the potential CoD field. * are for the potential CoD field.
*/ */