diff options
author | Sven Eckelmann <seckelmann@datto.com> | 2019-06-11 19:21:31 +0200 |
---|---|---|
committer | Kalle Valo <kvalo@codeaurora.org> | 2021-10-13 07:48:50 +0200 |
commit | 0a491167fe0cf9f26062462de2a8688b96125d48 (patch) | |
tree | 33674a82da318c32ebb34f001093f7230302fb54 /drivers/net/wireless/ath/ath10k/wmi.h | |
parent | ath9k: fix an IS_ERR() vs NULL check (diff) | |
download | linux-0a491167fe0cf9f26062462de2a8688b96125d48.tar.xz linux-0a491167fe0cf9f26062462de2a8688b96125d48.zip |
ath10k: fix max antenna gain unit
Most of the txpower for the ath10k firmware is stored as twicepower (0.5 dB
steps). This isn't the case for max_antenna_gain - which is still expected
by the firmware as dB.
The firmware is converting it from dB to the internal (twicepower)
representation when it calculates the limits of a channel. This can be seen
in tpc_stats when configuring "12" as max_antenna_gain. Instead of the
expected 12 (6 dB), the tpc_stats shows 24 (12 dB).
Tested on QCA9888 and IPQ4019 with firmware 10.4-3.5.3-00057.
Fixes: 02256930d9b8 ("ath10k: use proper tx power unit")
Signed-off-by: Sven Eckelmann <seckelmann@datto.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/20190611172131.6064-1-sven@narfation.org
Diffstat (limited to '')
-rw-r--r-- | drivers/net/wireless/ath/ath10k/wmi.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/ath10k/wmi.h b/drivers/net/wireless/ath/ath10k/wmi.h index 41c1a3d339c2..01bfd09a9d88 100644 --- a/drivers/net/wireless/ath/ath10k/wmi.h +++ b/drivers/net/wireless/ath/ath10k/wmi.h @@ -2066,7 +2066,9 @@ struct wmi_channel { union { __le32 reginfo1; struct { + /* note: power unit is 1 dBm */ u8 antenna_max; + /* note: power unit is 0.5 dBm */ u8 max_tx_power; } __packed; } __packed; @@ -2086,6 +2088,7 @@ struct wmi_channel_arg { u32 min_power; u32 max_power; u32 max_reg_power; + /* note: power unit is 1 dBm */ u32 max_antenna_gain; u32 reg_class_id; enum wmi_phy_mode mode; |