Commit bef64738 authored by Marcel Holtmann's avatar Marcel Holtmann Committed by Johan Hedberg
Browse files

Bluetooth: Make LE scan interval and window a controller option



The scan interval and window for LE passive scanning and connection
establishment should be configurable on a per controller basis. So
introduce a setting that later on will allow modifying it.

This setting does not affect LE active scanning during device
discovery phase. As long as that phase uses interleaved discovery,
it will continuously scan.

Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
Signed-off-by: default avatarJohan Hedberg <johan.hedberg@intel.com>
parent 3932eb33
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -164,6 +164,8 @@ struct hci_dev {
	__u16		page_scan_interval;
	__u16		page_scan_window;
	__u8		page_scan_type;
	__u16		le_scan_interval;
	__u16		le_scan_window;

	__u16		devid_source;
	__u16		devid_vendor;
+2 −2
Original line number Diff line number Diff line
@@ -562,8 +562,8 @@ static int hci_create_le_conn(struct hci_conn *conn)
	hci_req_init(&req, hdev);

	memset(&cp, 0, sizeof(cp));
	cp.scan_interval = __constant_cpu_to_le16(0x0060);
	cp.scan_window = __constant_cpu_to_le16(0x0030);
	cp.scan_interval = cpu_to_le16(hdev->le_scan_interval);
	cp.scan_window = cpu_to_le16(hdev->le_scan_window);
	bacpy(&cp.peer_addr, &conn->dst);
	cp.peer_addr_type = conn->dst_type;
	if (bacmp(&hdev->bdaddr, BDADDR_ANY))
+3 −0
Original line number Diff line number Diff line
@@ -2273,6 +2273,9 @@ struct hci_dev *hci_alloc_dev(void)
	hdev->sniff_max_interval = 800;
	hdev->sniff_min_interval = 80;

	hdev->le_scan_interval = 0x0060;
	hdev->le_scan_window = 0x0030;

	mutex_init(&hdev->lock);
	mutex_init(&hdev->req_lock);