From: Jaganath Kanakkassery <jaganath.k.os@gmail.com>
To: linux-bluetooth@vger.kernel.org
Cc: Jaganath Kanakkassery <jaganathx.kanakkassery@intel.com>
Subject: [PATCH v2 11/18] Bluetooth: Use selected PHYs in extended connect
Date: Tue, 24 Apr 2018 19:20:44 +0530 [thread overview]
Message-ID: <1524577851-17238-12-git-send-email-jaganathx.kanakkassery@intel.com> (raw)
In-Reply-To: <1524577851-17238-1-git-send-email-jaganathx.kanakkassery@intel.com>
Use the selected PHYs by Set PHY Configuration management command
in extended create connection.
Signed-off-by: Jaganath Kanakkassery <jaganathx.kanakkassery@intel.com>
---
net/bluetooth/hci_conn.c | 63 ++++++++++++++++++++++++++++++++++++------------
1 file changed, 47 insertions(+), 16 deletions(-)
diff --git a/net/bluetooth/hci_conn.c b/net/bluetooth/hci_conn.c
index cc967ca..5d421a2 100644
--- a/net/bluetooth/hci_conn.c
+++ b/net/bluetooth/hci_conn.c
@@ -777,8 +777,9 @@ static void hci_req_add_le_create_conn(struct hci_request *req,
if (use_ext_conn(hdev)) {
struct hci_cp_le_ext_create_conn *cp;
struct hci_cp_le_ext_conn_param *p;
- /* As of now only LE 1M is supported */
- u8 data[sizeof(*cp) + sizeof(*p) * 1];
+ u8 data[sizeof(*cp) + sizeof(*p) * 3];
+ u8 init_phys;
+ u32 plen;
cp = (void *) data;
p = (void *) cp->data;
@@ -788,24 +789,54 @@ static void hci_req_add_le_create_conn(struct hci_request *req,
bacpy(&cp->peer_addr, &conn->dst);
cp->peer_addr_type = conn->dst_type;
cp->own_addr_type = own_addr_type;
- cp->phys = LE_SCAN_PHY_1M;
- memset(p, 0, sizeof(*p));
+ if (scan_1m(hdev))
+ cp->phys |= LE_SCAN_PHY_1M;
- /* Set window to be the same value as the interval to enable
- * continuous scanning.
- */
+ if (scan_2m(hdev))
+ cp->phys |= LE_SCAN_PHY_2M;
+
+ if (scan_coded(hdev))
+ cp->phys |= LE_SCAN_PHY_CODED;
+
+ init_phys = cp->phys;
+
+ plen = sizeof(*cp);
+
+ /* Use same param for all PHYs */
+ while (init_phys) {
+ u16 min_interval, max_interval, supv_timeout;
- p->scan_interval = cpu_to_le16(hdev->le_scan_interval);
- p->scan_window = p->scan_interval;
- p->conn_interval_min = cpu_to_le16(conn->le_conn_min_interval);
- p->conn_interval_max = cpu_to_le16(conn->le_conn_max_interval);
- p->conn_latency = cpu_to_le16(conn->le_conn_latency);
- p->supervision_timeout = cpu_to_le16(conn->le_supv_timeout);
- p->min_ce_len = cpu_to_le16(0x0000);
- p->max_ce_len = cpu_to_le16(0x0000);
+ if (!(init_phys & 0x01)) {
+ init_phys >>= 0x01;
+ continue;
+ }
+
+ memset(p, 0, sizeof(*p));
+
+ /* Set window to be the same value as the interval to
+ * enable continuous scanning.
+ */
+
+ min_interval = conn->le_conn_min_interval;
+ max_interval = conn->le_conn_max_interval;
+ supv_timeout = conn->le_supv_timeout;
+
+ p->scan_interval = cpu_to_le16(hdev->le_scan_interval);
+ p->scan_window = p->scan_interval;
+ p->conn_interval_min = cpu_to_le16(min_interval);
+ p->conn_interval_max = cpu_to_le16(max_interval);
+ p->conn_latency = cpu_to_le16(conn->le_conn_latency);
+ p->supervision_timeout = cpu_to_le16(supv_timeout);
+ p->min_ce_len = cpu_to_le16(0x0000);
+ p->max_ce_len = cpu_to_le16(0x0000);
+
+ p++;
+ plen += sizeof(*p);
+ init_phys >>= 1;
+ }
- hci_req_add(req, HCI_OP_LE_EXT_CREATE_CONN, sizeof(data), data);
+ hci_req_add(req, HCI_OP_LE_EXT_CREATE_CONN, plen, data);
} else {
struct hci_cp_le_create_conn cp;
--
2.7.4
next prev parent reply other threads:[~2018-04-24 13:50 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-04-24 13:50 [PATCH v2 00/18] Bluetooth: Extended Adv, Scan, Connection and PHY support Jaganath Kanakkassery
2018-04-24 13:50 ` [PATCH v2 01/18] Bluetooth: Introduce helpers for LE set scan start and complete Jaganath Kanakkassery
2018-04-24 13:50 ` [PATCH v2 02/18] Bluetooth: Use extended scanning if controller supports Jaganath Kanakkassery
2018-04-24 13:50 ` [PATCH v2 03/18] Bluetooth: Process extended ADV report event Jaganath Kanakkassery
2018-04-24 13:50 ` [PATCH v2 04/18] Bluetooth: Introduce helpers for le conn status and complete Jaganath Kanakkassery
2018-04-24 13:50 ` [PATCH v2 05/18] Bluetooth: Use extended LE Connection if supported Jaganath Kanakkassery
2018-04-24 13:50 ` [PATCH v2 06/18] Bluetooth: Define PHY flags in hdev and set 1M as default Jaganath Kanakkassery
2018-04-24 13:50 ` [PATCH v2 07/18] Bluetooth: Implement Get PHY Configuration mgmt command Jaganath Kanakkassery
2018-04-24 13:50 ` [PATCH v2 08/18] Bluetooth: Implement Set PHY Confguration command Jaganath Kanakkassery
2018-04-24 13:50 ` [PATCH v2 09/18] Bluetooth: Set Scan PHYs based on selected PHYs by user Jaganath Kanakkassery
2018-04-24 13:50 ` [PATCH v2 10/18] Bluetooth: Handle extended ADV PDU types Jaganath Kanakkassery
2018-04-24 13:50 ` Jaganath Kanakkassery [this message]
2018-04-24 13:50 ` [PATCH v2 12/18] Bluetooth: Read no of adv sets during init Jaganath Kanakkassery
2018-04-24 13:50 ` [PATCH v2 13/18] Bluetooth: Impmlement extended adv enable Jaganath Kanakkassery
2018-04-24 13:50 ` [PATCH v2 14/18] Bluetooth: Use Set ext adv/scan rsp data if controller supports Jaganath Kanakkassery
2018-04-24 13:50 ` [PATCH v2 15/18] Bluetooth: Implement disable and removal of adv instance Jaganath Kanakkassery
2018-04-24 13:50 ` [PATCH v2 16/18] Bluetooth: Use ext adv for directed adv Jaganath Kanakkassery
2018-04-24 13:50 ` [PATCH v2 17/18] Bluetooth: Implement Set ADV set random address Jaganath Kanakkassery
2018-04-24 13:50 ` [PATCH v2 18/18] Bluetooth: Implement secondary advertising on different PHYs Jaganath Kanakkassery
2018-06-06 5:51 ` [PATCH v2 00/18] Bluetooth: Extended Adv, Scan, Connection and PHY support Jaganath K
2018-06-19 9:55 ` Szymon Janc
2018-06-21 7:59 ` Jagan K
2018-06-21 9:46 ` Szymon Janc
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1524577851-17238-12-git-send-email-jaganathx.kanakkassery@intel.com \
--to=jaganath.k.os@gmail.com \
--cc=jaganathx.kanakkassery@intel.com \
--cc=linux-bluetooth@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).