Bluetooth: Store max TX power level for connection
This patch adds support to store local maximum TX power level for connection when reply for HCI_Read_Transmit_Power_Level is received. Signed-off-by: Andrzej Kaczmarek <andrzej.kaczmarek@tieto.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
This commit is contained in:
		
							parent
							
								
									f7faab0c9d
								
							
						
					
					
						commit
						d0455ed996
					
				| @ -382,6 +382,7 @@ struct hci_conn { | ||||
| 	__u16		le_conn_max_interval; | ||||
| 	__s8		rssi; | ||||
| 	__s8		tx_power; | ||||
| 	__s8		max_tx_power; | ||||
| 	unsigned long	flags; | ||||
| 
 | ||||
| 	unsigned long	conn_info_timestamp; | ||||
|  | ||||
| @ -408,6 +408,7 @@ struct hci_conn *hci_conn_add(struct hci_dev *hdev, int type, bdaddr_t *dst) | ||||
| 	conn->remote_auth = 0xff; | ||||
| 	conn->key_type = 0xff; | ||||
| 	conn->tx_power = HCI_TX_POWER_INVALID; | ||||
| 	conn->max_tx_power = HCI_TX_POWER_INVALID; | ||||
| 
 | ||||
| 	set_bit(HCI_CONN_POWER_SAVE, &conn->flags); | ||||
| 	conn->disc_timeout = HCI_DISCONN_TIMEOUT; | ||||
|  | ||||
| @ -1282,9 +1282,19 @@ static void hci_cc_read_tx_power(struct hci_dev *hdev, struct sk_buff *skb) | ||||
| 	hci_dev_lock(hdev); | ||||
| 
 | ||||
| 	conn = hci_conn_hash_lookup_handle(hdev, __le16_to_cpu(rp->handle)); | ||||
| 	if (conn && sent->type == 0x00) | ||||
| 		conn->tx_power = rp->tx_power; | ||||
| 	if (!conn) | ||||
| 		goto unlock; | ||||
| 
 | ||||
| 	switch (sent->type) { | ||||
| 	case 0x00: | ||||
| 		conn->tx_power = rp->tx_power; | ||||
| 		break; | ||||
| 	case 0x01: | ||||
| 		conn->max_tx_power = rp->tx_power; | ||||
| 		break; | ||||
| 	} | ||||
| 
 | ||||
| unlock: | ||||
| 	hci_dev_unlock(hdev); | ||||
| } | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user