]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blob - releases/2.6.27.14/rtl8187-fix-error-in-setting-ofdm-power-settings-for-rtl8187l.patch
5.1-stable patches
[thirdparty/kernel/stable-queue.git] / releases / 2.6.27.14 / rtl8187-fix-error-in-setting-ofdm-power-settings-for-rtl8187l.patch
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