The ath9k driver subtracts 3 dBm to the txpower as with two radios the
signal power is doubled.
The resulting value is assigned in an u16 which overflows and makes
the card to work at full power.
Signed-off-by: Matteo Croce <[email protected]>
--- a/drivers/net/wireless/ath/ath9k/eeprom_def.c 2010-12-02
22:39:58.982020001 +0100
+++ b/drivers/net/wireless/ath/ath9k/eeprom_def.c 2010-12-02
23:05:43.662020001 +0100
@@ -1065,15 +1065,19 @@
case 1:
break;
case 2:
- scaledPower -= REDUCE_SCALED_POWER_BY_TWO_CHAIN;
+ if(scaledPower > REDUCE_SCALED_POWER_BY_TWO_CHAIN)
+ scaledPower -= REDUCE_SCALED_POWER_BY_TWO_CHAIN;
+ else
+ scaledPower = 0;
break;
case 3:
- scaledPower -= REDUCE_SCALED_POWER_BY_THREE_CHAIN;
+ if(scaledPower > REDUCE_SCALED_POWER_BY_THREE_CHAIN)
+ scaledPower -= REDUCE_SCALED_POWER_BY_THREE_CHAIN;
+ else
+ scaledPower = 0;
break;
}
- scaledPower = max((u16)0, scaledPower);
-
if (IS_CHAN_2GHZ(chan)) {
numCtlModes = ARRAY_SIZE(ctlModesFor11g) -
SUB_NUM_CTL_MODES_AT_2G_40;
--
Matteo Croce
OpenWrt developer
_______ ________ __
| |.-----.-----.-----.| | | |.----.| |_
| - || _ | -__| || | | || _|| _|
|_______|| __|_____|__|__||________||__| |____|
|__| W I R E L E S S F R E E D O M
KAMIKAZE (bleeding edge) ------------------
* 10 oz Vodka Shake well with ice and strain
* 10 oz Triple sec mixture into 10 shot glasses.
* 10 oz lime juice Salute!
---------------------------------------------------
The ath9k driver subtracts 3 dBm to the txpower as with two radios the
signal power is doubled.
The resulting value is assigned in an u16 which overflows and makes
the card work at full power.
Signed-off-by: Matteo Croce <[email protected]>
--- a/drivers/net/wireless/ath/ath9k/eeprom_def.c 2010-12-02
22:39:58.982020001 +0100
+++ b/drivers/net/wireless/ath/ath9k/eeprom_def.c 2010-12-03
00:36:23.637799002 +0100
@@ -1065,15 +1065,19 @@
case 1:
break;
case 2:
- scaledPower -= REDUCE_SCALED_POWER_BY_TWO_CHAIN;
+ if (scaledPower > REDUCE_SCALED_POWER_BY_TWO_CHAIN)
+ scaledPower -= REDUCE_SCALED_POWER_BY_TWO_CHAIN;
+ else
+ scaledPower = 0;
break;
case 3:
- scaledPower -= REDUCE_SCALED_POWER_BY_THREE_CHAIN;
+ if (scaledPower > REDUCE_SCALED_POWER_BY_THREE_CHAIN)
+ scaledPower -= REDUCE_SCALED_POWER_BY_THREE_CHAIN;
+ else
+ scaledPower = 0;
break;
}
- scaledPower = max((u16)0, scaledPower);
-
if (IS_CHAN_2GHZ(chan)) {
numCtlModes = ARRAY_SIZE(ctlModesFor11g) -
SUB_NUM_CTL_MODES_AT_2G_40;
On Thu, Dec 2, 2010 at 3:24 PM, Matteo Croce <[email protected]> wrote:
> The ath9k driver subtracts 3 dBm to the txpower as with two radios the
> signal power is doubled.
> The resulting value is assigned in an u16 which overflows and makes
> the card to work at full power.
Thanks for the patch Matteo, can you please reword a bit better and
resubmit by first using checkpatch.pl against the patch? The branch
should be separated by a space.
Luis
The ath9k driver subtracts 3 dBm to the txpower as with two radios the
signal power is doubled.
The resulting value is assigned in an u16 which overflows and makes
the card work at full power.
Cc: [email protected]
Signed-off-by: Matteo Croce <[email protected]>
--- a/drivers/net/wireless/ath/ath9k/eeprom_def.c 2010-12-02
22:39:58.982020001 +0100
+++ b/drivers/net/wireless/ath/ath9k/eeprom_def.c 2010-12-03
00:36:23.637799002 +0100
@@ -1065,15 +1065,19 @@
case 1:
break;
case 2:
- scaledPower -= REDUCE_SCALED_POWER_BY_TWO_CHAIN;
+ if (scaledPower > REDUCE_SCALED_POWER_BY_TWO_CHAIN)
+ scaledPower -= REDUCE_SCALED_POWER_BY_TWO_CHAIN;
+ else
+ scaledPower = 0;
break;
case 3:
- scaledPower -= REDUCE_SCALED_POWER_BY_THREE_CHAIN;
+ if (scaledPower > REDUCE_SCALED_POWER_BY_THREE_CHAIN)
+ scaledPower -= REDUCE_SCALED_POWER_BY_THREE_CHAIN;
+ else
+ scaledPower = 0;
break;
}
- scaledPower = max((u16)0, scaledPower);
-
if (IS_CHAN_2GHZ(chan)) {
numCtlModes = ARRAY_SIZE(ctlModesFor11g) -
SUB_NUM_CTL_MODES_AT_2G_40;
On Thu, Dec 02, 2010 at 03:39:49PM -0800, Matteo Croce wrote:
> The ath9k driver subtracts 3 dBm to the txpower as with two radios the
> signal power is doubled.
> The resulting value is assigned in an u16 which overflows and makes
> the card work at full power.
Sorry can you also add:
Cc: [email protected]
Right above your Signed-off-by, this is a regulatory fix,
thanks.
Luis
>
> Signed-off-by: Matteo Croce <[email protected]>
>
> --- a/drivers/net/wireless/ath/ath9k/eeprom_def.c 2010-12-02
> 22:39:58.982020001 +0100
> +++ b/drivers/net/wireless/ath/ath9k/eeprom_def.c 2010-12-03
> 00:36:23.637799002 +0100
> @@ -1065,15 +1065,19 @@
> case 1:
> break;
> case 2:
> - scaledPower -= REDUCE_SCALED_POWER_BY_TWO_CHAIN;
> + if (scaledPower > REDUCE_SCALED_POWER_BY_TWO_CHAIN)
> + scaledPower -= REDUCE_SCALED_POWER_BY_TWO_CHAIN;
> + else
> + scaledPower = 0;
> break;
> case 3:
> - scaledPower -= REDUCE_SCALED_POWER_BY_THREE_CHAIN;
> + if (scaledPower > REDUCE_SCALED_POWER_BY_THREE_CHAIN)
> + scaledPower -= REDUCE_SCALED_POWER_BY_THREE_CHAIN;
> + else
> + scaledPower = 0;
> break;
> }
>
> - scaledPower = max((u16)0, scaledPower);
> -
> if (IS_CHAN_2GHZ(chan)) {
> numCtlModes = ARRAY_SIZE(ctlModesFor11g) -
> SUB_NUM_CTL_MODES_AT_2G_40;
> _______________________________________________
> ath9k-devel mailing list
> [email protected]
> https://lists.ath9k.org/mailman/listinfo/ath9k-devel