rt2800: 5592: setup LDO_CFG0 when configuring channel
authorStanislaw Gruszka <stf_xl@wp.pl>
Sat, 16 Mar 2013 18:19:42 +0000 (19:19 +0100)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 18 Mar 2013 20:38:33 +0000 (16:38 -0400)
Based on:
RT5592_ChipSwitchChannel()

from:
DPO_RT5572_LinuxSTA_2.6.1.3_20121022/chips/rt5592.c

Signed-off-by: Stanislaw Gruszka <stf_xl@wp.pl>
Tested-by: Wanlong Gao <gaowanlong@cn.fujitsu.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/rt2x00/rt2800lib.c

index 93b9def..189c880 100644 (file)
@@ -2187,12 +2187,17 @@ static void rt2800_config_channel_rf55xx(struct rt2x00_dev *rt2x00dev,
                                         struct channel_info *info)
 {
        u8 rfcsr, ep_reg;
+       u32 reg;
        int power_bound;
 
        /* TODO */
        const bool is_11b = false;
        const bool is_type_ep = false;
 
+       rt2800_register_read(rt2x00dev, LDO_CFG0, &reg);
+       rt2x00_set_field32(&reg, LDO_CFG0_LDO_CORE_VLEVEL,
+                          (rf->channel > 14 || conf_is_ht40(conf)) ? 5 : 0);
+       rt2800_register_write(rt2x00dev, LDO_CFG0, reg);
 
        /* Order of values on rf_channel entry: N, K, mod, R */
        rt2800_rfcsr_write(rt2x00dev, 8, rf->rf1 & 0xff);