]>
Commit | Line | Data |
---|---|---|
5861a31d GKH |
1 | From eb83bbf57429ab80f49b413e3e44d3b19c3fdc5a Mon Sep 17 00:00:00 2001 |
2 | From: Larry Finger <Larry.Finger@lwfinger.net> | |
3 | Date: Tue, 27 Jan 2009 12:31:23 -0600 | |
4 | Subject: rtl8187: Fix error in setting OFDM power settings for RTL8187L | |
5 | MIME-Version: 1.0 | |
6 | Content-Type: text/plain; charset=utf-8 | |
7 | Content-Transfer-Encoding: 8bit | |
8 | ||
9 | From: Larry Finger <Larry.Finger@lwfinger.net> | |
10 | ||
11 | commit eb83bbf57429ab80f49b413e3e44d3b19c3fdc5a upstream. | |
12 | ||
13 | After reports of poor performance, a review of the latest vendor driver | |
14 | (rtl8187_linux_26.1025.0328.2007) for RTL8187L devices was undertaken. | |
15 | ||
16 | A difference was found in the code used to index the OFDM power tables. When | |
17 | the Linux driver was changed, my unit works at a much greater range than | |
18 | before. I think this fixes Bugzilla #12380 and has been tested by at least | |
19 | two other users. | |
20 | ||
21 | Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> | |
22 | Tested-by: MartÃn Ernesto Barreyro <barreyromartin@gmail.com> | |
23 | Signed-off-by: John W. Linville <linville@tuxdriver.com> | |
24 | Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> | |
25 | ||
26 | --- | |
27 | drivers/net/wireless/rtl8187_rtl8225.c | 10 ++++++++-- | |
28 | 1 file changed, 8 insertions(+), 2 deletions(-) | |
29 | ||
30 | --- a/drivers/net/wireless/rtl8187_rtl8225.c | |
31 | +++ b/drivers/net/wireless/rtl8187_rtl8225.c | |
32 | @@ -287,7 +287,10 @@ static void rtl8225_rf_set_tx_power(stru | |
33 | ofdm_power = priv->channels[channel - 1].hw_value >> 4; | |
34 | ||
35 | cck_power = min(cck_power, (u8)11); | |
36 | - ofdm_power = min(ofdm_power, (u8)35); | |
37 | + if (ofdm_power > (u8)15) | |
38 | + ofdm_power = 25; | |
39 | + else | |
40 | + ofdm_power += 10; | |
41 | ||
42 | rtl818x_iowrite8(priv, &priv->map->TX_GAIN_CCK, | |
43 | rtl8225_tx_gain_cck_ofdm[cck_power / 6] >> 1); | |
44 | @@ -540,7 +543,10 @@ static void rtl8225z2_rf_set_tx_power(st | |
45 | cck_power += priv->txpwr_base & 0xF; | |
46 | cck_power = min(cck_power, (u8)35); | |
47 | ||
48 | - ofdm_power = min(ofdm_power, (u8)15); | |
49 | + if (ofdm_power > (u8)15) | |
50 | + ofdm_power = 25; | |
51 | + else | |
52 | + ofdm_power += 10; | |
53 | ofdm_power += priv->txpwr_base >> 4; | |
54 | ofdm_power = min(ofdm_power, (u8)35); | |
55 |