ath10k: add support for controlling tx power to a station
This patch will add the support to control the transmit power for traffic to a station associated with the AP. Underlying firmware will enforce that the maximum tx power will be based on the regulatory requirements. If the user given transmit power is greater than the allowed tx power in the given channel, then the firmware will use the maximum tx power in the same channel. Max and Min tx power values will depends on no of tx chain masks, for QCA9984 allowed tx power range values from 6 to 23. When 0 is sent to the firmware as tx power, it will revert to the default tx power for the station. Tested Hardware : QCA9984 Tested Firmware : 10.4-3.9.0.2-00046 Co-developed-by: Balaji Pothunoori <bpothuno@codeaurora.org> Signed-off-by: Ashok Raj Nagarajan <arnagara@codeaurora.org> Signed-off-by: Balaji Pothunoori <bpothuno@codeaurora.org> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
This commit is contained in:

committed by
Kalle Valo

parent
c6f537a11b
commit
33410a5146
@@ -201,6 +201,7 @@ enum wmi_service {
|
||||
WMI_SERVICE_PER_PACKET_SW_ENCRYPT,
|
||||
WMI_SERVICE_REPORT_AIRTIME,
|
||||
WMI_SERVICE_SYNC_DELETE_CMDS,
|
||||
WMI_SERVICE_TX_PWR_PER_PEER,
|
||||
|
||||
/* Remember to add the new value to wmi_service_name()! */
|
||||
|
||||
@@ -368,6 +369,7 @@ enum wmi_10_4_service {
|
||||
WMI_10_4_SERVICE_RTT_RESPONDER_ROLE,
|
||||
WMI_10_4_SERVICE_EXT_PEER_TID_CONFIGS_SUPPORT,
|
||||
WMI_10_4_SERVICE_REPORT_AIRTIME,
|
||||
WMI_10_4_SERVICE_TX_PWR_PER_PEER,
|
||||
};
|
||||
|
||||
static inline char *wmi_service_name(enum wmi_service service_id)
|
||||
@@ -493,6 +495,7 @@ static inline char *wmi_service_name(enum wmi_service service_id)
|
||||
SVCSTR(WMI_SERVICE_PER_PACKET_SW_ENCRYPT);
|
||||
SVCSTR(WMI_SERVICE_REPORT_AIRTIME);
|
||||
SVCSTR(WMI_SERVICE_SYNC_DELETE_CMDS);
|
||||
SVCSTR(WMI_SERVICE_TX_PWR_PER_PEER);
|
||||
|
||||
case WMI_SERVICE_MAX:
|
||||
return NULL;
|
||||
@@ -820,6 +823,8 @@ static inline void wmi_10_4_svc_map(const __le32 *in, unsigned long *out,
|
||||
WMI_SERVICE_PER_PACKET_SW_ENCRYPT, len);
|
||||
SVCMAP(WMI_10_4_SERVICE_REPORT_AIRTIME,
|
||||
WMI_SERVICE_REPORT_AIRTIME, len);
|
||||
SVCMAP(WMI_10_4_SERVICE_TX_PWR_PER_PEER,
|
||||
WMI_SERVICE_TX_PWR_PER_PEER, len);
|
||||
}
|
||||
|
||||
#undef SVCMAP
|
||||
@@ -6262,6 +6267,7 @@ enum wmi_peer_param {
|
||||
WMI_PEER_CHAN_WIDTH = 0x4,
|
||||
WMI_PEER_NSS = 0x5,
|
||||
WMI_PEER_USE_4ADDR = 0x6,
|
||||
WMI_PEER_USE_FIXED_PWR = 0x8,
|
||||
WMI_PEER_PARAM_FIXED_RATE = 0x9,
|
||||
WMI_PEER_DEBUG = 0xa,
|
||||
WMI_PEER_PHYMODE = 0xd,
|
||||
|
Reference in New Issue
Block a user