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

Commit f75459e6 authored by Liu Hong's avatar Liu Hong Committed by James Ketrenos
Browse files

[Bug 339] Fix ipw2100 iwconfig set/get txpower.

parent 25b645be
Loading
Loading
Loading
Loading
+6 −7
Original line number Diff line number Diff line
@@ -5102,6 +5102,10 @@ static int ipw2100_set_tx_power(struct ipw2100_priv *priv, u32 tx_power)
	};
	int err = 0;

	if (tx_power != IPW_TX_POWER_DEFAULT)
		tx_power = (tx_power - IPW_TX_POWER_MIN_DBM) * 16 /
		    (IPW_TX_POWER_MAX_DBM - IPW_TX_POWER_MIN_DBM);

	cmd.host_command_parameters[0] = tx_power;

	if (priv->ieee->iw_mode == IW_MODE_ADHOC)
@@ -7523,8 +7527,7 @@ static int ipw2100_wx_set_txpow(struct net_device *dev,
		    wrqu->txpower.value > IPW_TX_POWER_MAX_DBM)
			return -EINVAL;

		value = (wrqu->txpower.value - IPW_TX_POWER_MIN_DBM) * 16 /
		    (IPW_TX_POWER_MAX_DBM - IPW_TX_POWER_MIN_DBM);
		value = wrqu->txpower.value;
	}

	down(&priv->action_sem);
@@ -7564,11 +7567,7 @@ static int ipw2100_wx_get_txpow(struct net_device *dev,
	} else {
		wrqu->power.disabled = 0;
		wrqu->power.fixed = 1;
		wrqu->power.value =
		    (priv->tx_power *
		     (IPW_TX_POWER_MAX_DBM - IPW_TX_POWER_MIN_DBM)) /
		    (IPW_TX_POWER_MAX - IPW_TX_POWER_MIN) +
		    IPW_TX_POWER_MIN_DBM;
		wrqu->power.value = priv->tx_power;
	}

	wrqu->power.flags = IW_TXPOW_DBM;