On Sun, Apr 14, 2013 at 02:54:43PM +0400, minimumlaw@xxxxxxxxxx wrote: > From: "Alex A. Mihaylov" <minimumlaw@xxxxxxxxxx> > > Some cards on Ralink RT30xx chipset not have correctly TX_MIXER_GAIN > value in them EEPROM/EFUSE. In this case, we must use default value, > but always used EEPROM/EFUSE value. As result we have tranmitt power > range from -10dBm to +6dBm instead 0dBm to +16dBm. Thanks for great work on debugging this! > Correctly value in EEPROM/EFUSE is one or more for RT3070 and two or > more for other RT30xx chips. > > Testen on Canyon CNP-WF518N1 usb Wi-Fi dongle and Jorjin WN8020 usb > embedded Wi-Fi module. Signed-off-by: "Alex A. Mihaylov" <minimumlaw@xxxxxxxxxx> Cc: stable@xxxxxxxxxxxxxxx Acked-by: Stanislaw Gruszka <stf_xl@xxxxx> > --- > drivers/net/wireless/rt2x00/rt2800lib.c | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/wireless/rt2x00/rt2800lib.c b/drivers/net/wireless/rt2x00/rt2800lib.c > index a658b4b..92849e5 100644 > --- a/drivers/net/wireless/rt2x00/rt2800lib.c > +++ b/drivers/net/wireless/rt2x00/rt2800lib.c > @@ -4436,6 +4436,8 @@ static int rt2800_init_rfcsr(struct rt2x00_dev *rt2x00dev) > > if (!rt2x00_rt(rt2x00dev, RT5390) && > !rt2x00_rt(rt2x00dev, RT5392)) { > + u8 min_gain = rt2x00_rt(rt2x00dev, RT3070) ? 1 : 2; > + > rt2800_rfcsr_read(rt2x00dev, 17, &rfcsr); > rt2x00_set_field8(&rfcsr, RFCSR17_TX_LO1_EN, 0); > if (rt2x00_rt(rt2x00dev, RT3070) || > @@ -4446,8 +4448,10 @@ static int rt2800_init_rfcsr(struct rt2x00_dev *rt2x00dev) > &rt2x00dev->cap_flags)) > rt2x00_set_field8(&rfcsr, RFCSR17_R, 1); > } > - rt2x00_set_field8(&rfcsr, RFCSR17_TXMIXER_GAIN, > - drv_data->txmixer_gain_24g); > + if (drv_data->txmixer_gain_24g >= min_gain) { > + rt2x00_set_field8(&rfcsr, RFCSR17_TXMIXER_GAIN, > + drv_data->txmixer_gain_24g); > + } > rt2800_rfcsr_write(rt2x00dev, 17, rfcsr); > } > > -- > 1.8.1.5 > > -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html