Bluetooth: Add proper definitions for scan interval and window
authorLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
Thu, 28 Mar 2024 19:46:01 +0000 (15:46 -0400)
committerLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
Tue, 14 May 2024 14:51:04 +0000 (10:51 -0400)
This adds proper definitions for scan interval and window and then make
use of them instead their values.

Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
include/net/bluetooth/hci_core.h
net/bluetooth/hci_core.c

index e8f581f3f3ce6d4fe3d0d6db8c8a9688daf4addb..9fc1eccad9bbf594c4179c29520331a42e3da0d0 100644 (file)
@@ -2235,8 +2235,22 @@ void hci_mgmt_chan_unregister(struct hci_mgmt_chan *c);
 /* These LE scan and inquiry parameters were chosen according to LE General
  * Discovery Procedure specification.
  */
-#define DISCOV_LE_SCAN_WIN             0x12
-#define DISCOV_LE_SCAN_INT             0x12
+#define DISCOV_LE_SCAN_WIN             0x0012 /* 11.25 msec */
+#define DISCOV_LE_SCAN_INT             0x0012 /* 11.25 msec */
+#define DISCOV_LE_SCAN_INT_FAST                0x0060 /* 60 msec */
+#define DISCOV_LE_SCAN_WIN_FAST                0x0030 /* 30 msec */
+#define DISCOV_LE_SCAN_INT_CONN                0x0060 /* 60 msec */
+#define DISCOV_LE_SCAN_WIN_CONN                0x0060 /* 60 msec */
+#define DISCOV_LE_SCAN_INT_SLOW1       0x0800 /* 1.28 sec */
+#define DISCOV_LE_SCAN_WIN_SLOW1       0x0012 /* 11.25 msec */
+#define DISCOV_LE_SCAN_INT_SLOW2       0x1000 /* 2.56 sec */
+#define DISCOV_LE_SCAN_WIN_SLOW2       0x0024 /* 22.5 msec */
+#define DISCOV_CODED_SCAN_INT_FAST     0x0120 /* 180 msec */
+#define DISCOV_CODED_SCAN_WIN_FAST     0x0090 /* 90 msec */
+#define DISCOV_CODED_SCAN_INT_SLOW1    0x1800 /* 3.84 sec */
+#define DISCOV_CODED_SCAN_WIN_SLOW1    0x0036 /* 33.75 msec */
+#define DISCOV_CODED_SCAN_INT_SLOW2    0x3000 /* 7.68 sec */
+#define DISCOV_CODED_SCAN_WIN_SLOW2    0x006c /* 67.5 msec */
 #define DISCOV_LE_TIMEOUT              10240   /* msec */
 #define DISCOV_INTERLEAVED_TIMEOUT     5120    /* msec */
 #define DISCOV_INTERLEAVED_INQUIRY_LEN 0x04
index bc5086423ab839d6ad451234dc3bece65a3096fa..d35015219c2631f20f477275a5d816732f7bf35e 100644 (file)
@@ -2523,16 +2523,16 @@ struct hci_dev *hci_alloc_dev_priv(int sizeof_priv)
        hdev->le_adv_channel_map = 0x07;
        hdev->le_adv_min_interval = 0x0800;
        hdev->le_adv_max_interval = 0x0800;
-       hdev->le_scan_interval = 0x0060;
-       hdev->le_scan_window = 0x0030;
-       hdev->le_scan_int_suspend = 0x0400;
-       hdev->le_scan_window_suspend = 0x0012;
+       hdev->le_scan_interval = DISCOV_LE_SCAN_INT_FAST;
+       hdev->le_scan_window = DISCOV_LE_SCAN_WIN_FAST;
+       hdev->le_scan_int_suspend = DISCOV_LE_SCAN_INT_SLOW1;
+       hdev->le_scan_window_suspend = DISCOV_LE_SCAN_WIN_SLOW1;
        hdev->le_scan_int_discovery = DISCOV_LE_SCAN_INT;
        hdev->le_scan_window_discovery = DISCOV_LE_SCAN_WIN;
-       hdev->le_scan_int_adv_monitor = 0x0060;
-       hdev->le_scan_window_adv_monitor = 0x0030;
-       hdev->le_scan_int_connect = 0x0060;
-       hdev->le_scan_window_connect = 0x0060;
+       hdev->le_scan_int_adv_monitor = DISCOV_LE_SCAN_INT_FAST;
+       hdev->le_scan_window_adv_monitor = DISCOV_LE_SCAN_WIN_FAST;
+       hdev->le_scan_int_connect = DISCOV_LE_SCAN_INT_CONN;
+       hdev->le_scan_window_connect = DISCOV_LE_SCAN_WIN_CONN;
        hdev->le_conn_min_interval = 0x0018;
        hdev->le_conn_max_interval = 0x0028;
        hdev->le_conn_latency = 0x0000;