Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 02256930 authored by Michal Kazior's avatar Michal Kazior Committed by Kalle Valo
Browse files

ath10k: use proper tx power unit



It was previously thought that FW expects tx power
in quarters of dBm.

Signed-off-by: default avatarMichal Kazior <michal.kazior@tieto.com>
Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
parent 89c5c843
Loading
Loading
Loading
Loading
+9 −9
Original line number Diff line number Diff line
@@ -451,9 +451,9 @@ static int ath10k_vdev_start(struct ath10k_vif *arvif)
	arg.channel.mode = chan_to_phymode(&conf->chandef);

	arg.channel.min_power = 0;
	arg.channel.max_power = channel->max_power * 4;
	arg.channel.max_reg_power = channel->max_reg_power * 4;
	arg.channel.max_antenna_gain = channel->max_antenna_gain;
	arg.channel.max_power = channel->max_power * 2;
	arg.channel.max_reg_power = channel->max_reg_power * 2;
	arg.channel.max_antenna_gain = channel->max_antenna_gain * 2;

	if (arvif->vdev_type == WMI_VDEV_TYPE_AP) {
		arg.ssid = arvif->u.ap.ssid;
@@ -530,9 +530,9 @@ static int ath10k_monitor_start(struct ath10k *ar, int vdev_id)
	arg.channel.mode = chan_to_phymode(&ar->hw->conf.chandef);

	arg.channel.min_power = 0;
	arg.channel.max_power = channel->max_power * 4;
	arg.channel.max_reg_power = channel->max_reg_power * 4;
	arg.channel.max_antenna_gain = channel->max_antenna_gain;
	arg.channel.max_power = channel->max_power * 2;
	arg.channel.max_reg_power = channel->max_reg_power * 2;
	arg.channel.max_antenna_gain = channel->max_antenna_gain * 2;

	ret = ath10k_wmi_vdev_start(ar, &arg);
	if (ret) {
@@ -1376,9 +1376,9 @@ static int ath10k_update_channel_list(struct ath10k *ar)

			ch->freq = channel->center_freq;
			ch->min_power = 0;
			ch->max_power = channel->max_power * 4;
			ch->max_reg_power = channel->max_reg_power * 4;
			ch->max_antenna_gain = channel->max_antenna_gain;
			ch->max_power = channel->max_power * 2;
			ch->max_reg_power = channel->max_reg_power * 2;
			ch->max_antenna_gain = channel->max_antenna_gain * 2;
			ch->reg_class_id = 0; /* FIXME */

			/* FIXME: why use only legacy modes, why not any
+2 −1
Original line number Diff line number Diff line
@@ -893,6 +893,7 @@ struct wmi_channel {
	union {
		__le32 reginfo0;
		struct {
			/* note: power unit is 0.5 dBm */
			u8 min_power;
			u8 max_power;
			u8 reg_power;
@@ -915,7 +916,7 @@ struct wmi_channel_arg {
	bool allow_ht;
	bool allow_vht;
	bool ht40plus;
	/* note: power unit is 1/4th of dBm */
	/* note: power unit is 0.5 dBm */
	u32 min_power;
	u32 max_power;
	u32 max_reg_power;