diff options
author | Andrzej Kaczmarek <andrzej.kaczmarek@tieto.com> | 2014-05-14 07:43:04 -0400 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2014-05-16 00:48:06 -0400 |
commit | f7faab0c9d47f7d3fb25db42eff08497131ec8ba (patch) | |
tree | 81ef05d10aacb5860cc6f88eae66634c1d80d280 /net | |
parent | dd9838087b8c2b45c7976e46290749732d7af9d5 (diff) |
Bluetooth: Avoid polling TX power for LE links
TX power for LE links is immutable thus we do not need to query for it
if already have value.
Signed-off-by: Andrzej Kaczmarek <andrzej.kaczmarek@tieto.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Diffstat (limited to 'net')
-rw-r--r-- | net/bluetooth/mgmt.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c index 0e5a316fafbf..664dbc4eccbe 100644 --- a/net/bluetooth/mgmt.c +++ b/net/bluetooth/mgmt.c | |||
@@ -4717,10 +4717,16 @@ static int get_conn_info(struct sock *sk, struct hci_dev *hdev, void *data, | |||
4717 | hci_req_add(&req, HCI_OP_READ_RSSI, sizeof(req_rssi_cp), | 4717 | hci_req_add(&req, HCI_OP_READ_RSSI, sizeof(req_rssi_cp), |
4718 | &req_rssi_cp); | 4718 | &req_rssi_cp); |
4719 | 4719 | ||
4720 | req_txp_cp.handle = cpu_to_le16(conn->handle); | 4720 | /* For LE links TX power does not change thus we don't need to |
4721 | req_txp_cp.type = 0x00; | 4721 | * query for it once value is known. |
4722 | hci_req_add(&req, HCI_OP_READ_TX_POWER, | 4722 | */ |
4723 | sizeof(req_txp_cp), &req_txp_cp); | 4723 | if (!bdaddr_type_is_le(cp->addr.type) || |
4724 | conn->tx_power == HCI_TX_POWER_INVALID) { | ||
4725 | req_txp_cp.handle = cpu_to_le16(conn->handle); | ||
4726 | req_txp_cp.type = 0x00; | ||
4727 | hci_req_add(&req, HCI_OP_READ_TX_POWER, | ||
4728 | sizeof(req_txp_cp), &req_txp_cp); | ||
4729 | } | ||
4724 | 4730 | ||
4725 | err = hci_req_run(&req, conn_info_refresh_complete); | 4731 | err = hci_req_run(&req, conn_info_refresh_complete); |
4726 | if (err < 0) | 4732 | if (err < 0) |