diff options
author | Gertjan van Wingerde <gwingerde@gmail.com> | 2012-02-06 17:45:09 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2012-02-08 15:26:29 -0500 |
commit | 5d137dff36dce1eda0617a00eb87b57e48300045 (patch) | |
tree | 6dfb5ec88246324c79391aa6a2587b61b94ab06f | |
parent | bef453dc9cf1999348e568068f256b1c439d1152 (diff) |
rt2x00: Use saved BBP 25 and 26 values when configuring channel on RT3572.
This brings the rt2800 channel switching code for RT3572 closer to the
v2.5.0.0 Ralink RT3572 driver.
Signed-off-by: Gertjan van Wingerde <gwingerde@gmail.com>
Acked-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r-- | drivers/net/wireless/rt2x00/rt2800.h | 2 | ||||
-rw-r--r-- | drivers/net/wireless/rt2x00/rt2800lib.c | 10 |
2 files changed, 10 insertions, 2 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2800.h b/drivers/net/wireless/rt2x00/rt2800.h index 7c05dee57876..8aabd0dc02c3 100644 --- a/drivers/net/wireless/rt2x00/rt2800.h +++ b/drivers/net/wireless/rt2x00/rt2800.h | |||
@@ -2444,6 +2444,8 @@ struct mac_iveiv_entry { | |||
2444 | struct rt2800_drv_data { | 2444 | struct rt2800_drv_data { |
2445 | u8 calibration_bw20; | 2445 | u8 calibration_bw20; |
2446 | u8 calibration_bw40; | 2446 | u8 calibration_bw40; |
2447 | u8 bbp25; | ||
2448 | u8 bbp26; | ||
2447 | }; | 2449 | }; |
2448 | 2450 | ||
2449 | #endif /* RT2800_H */ | 2451 | #endif /* RT2800_H */ |
diff --git a/drivers/net/wireless/rt2x00/rt2800lib.c b/drivers/net/wireless/rt2x00/rt2800lib.c index 131139ed4b17..3873a1555871 100644 --- a/drivers/net/wireless/rt2x00/rt2800lib.c +++ b/drivers/net/wireless/rt2x00/rt2800lib.c | |||
@@ -1754,8 +1754,8 @@ static void rt2800_config_channel_rf3052(struct rt2x00_dev *rt2x00dev, | |||
1754 | u32 reg; | 1754 | u32 reg; |
1755 | 1755 | ||
1756 | if (rf->channel <= 14) { | 1756 | if (rf->channel <= 14) { |
1757 | rt2800_bbp_write(rt2x00dev, 25, 0x15); | 1757 | rt2800_bbp_write(rt2x00dev, 25, drv_data->bbp25); |
1758 | rt2800_bbp_write(rt2x00dev, 26, 0x85); | 1758 | rt2800_bbp_write(rt2x00dev, 26, drv_data->bbp26); |
1759 | } else { | 1759 | } else { |
1760 | rt2800_bbp_write(rt2x00dev, 25, 0x09); | 1760 | rt2800_bbp_write(rt2x00dev, 25, 0x09); |
1761 | rt2800_bbp_write(rt2x00dev, 26, 0xff); | 1761 | rt2800_bbp_write(rt2x00dev, 26, 0xff); |
@@ -3623,6 +3623,12 @@ static int rt2800_init_rfcsr(struct rt2x00_dev *rt2x00dev) | |||
3623 | rt2800_init_rx_filter(rt2x00dev, true, 0x27, 0x15); | 3623 | rt2800_init_rx_filter(rt2x00dev, true, 0x27, 0x15); |
3624 | } | 3624 | } |
3625 | 3625 | ||
3626 | /* | ||
3627 | * Save BBP 25 & 26 values for later use in channel switching | ||
3628 | */ | ||
3629 | rt2800_bbp_read(rt2x00dev, 25, &drv_data->bbp25); | ||
3630 | rt2800_bbp_read(rt2x00dev, 26, &drv_data->bbp26); | ||
3631 | |||
3626 | if (!rt2x00_rt(rt2x00dev, RT5390)) { | 3632 | if (!rt2x00_rt(rt2x00dev, RT5390)) { |
3627 | /* | 3633 | /* |
3628 | * Set back to initial state | 3634 | * Set back to initial state |