Rebase from upstream commit : 3bb9dcf44627ffdd313fe92c563ae454b6ff8aa6
[librecmc/librecmc.git] / package / kernel / mac80211 / patches / rt2x00 / 017-rt2800-enable-TX_PIN_CFG_LNA_PE_-bits-per-band.patch
1 From 9ad3b55654455258a9463384edb40077439d879f Mon Sep 17 00:00:00 2001
2 From: Stanislaw Gruszka <sgruszka@redhat.com>
3 Date: Wed, 13 Feb 2019 11:09:14 +0100
4 Subject: [PATCH 17/28] rt2800: enable TX_PIN_CFG_LNA_PE_ bits per band
5
6 Do not enable TX_PIN_CFG_LNA_PE_A* bits for 2.4GHz band and
7 vice versa TX_PIN_CFG_LNA_PE_G* bits for 5GHz.
8
9 Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
10 Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
11 ---
12  drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 18 ++++++++++++------
13  1 file changed, 12 insertions(+), 6 deletions(-)
14
15 --- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
16 +++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c
17 @@ -3893,18 +3893,24 @@ static void rt2800_config_channel(struct
18         switch (rt2x00dev->default_ant.rx_chain_num) {
19         case 3:
20                 /* Turn on tertiary LNAs */
21 -               rt2x00_set_field32(&tx_pin, TX_PIN_CFG_LNA_PE_A2_EN, 1);
22 -               rt2x00_set_field32(&tx_pin, TX_PIN_CFG_LNA_PE_G2_EN, 1);
23 +               rt2x00_set_field32(&tx_pin, TX_PIN_CFG_LNA_PE_A2_EN,
24 +                                  rf->channel > 14);
25 +               rt2x00_set_field32(&tx_pin, TX_PIN_CFG_LNA_PE_G2_EN,
26 +                                  rf->channel <= 14);
27                 /* fall-through */
28         case 2:
29                 /* Turn on secondary LNAs */
30 -               rt2x00_set_field32(&tx_pin, TX_PIN_CFG_LNA_PE_A1_EN, 1);
31 -               rt2x00_set_field32(&tx_pin, TX_PIN_CFG_LNA_PE_G1_EN, 1);
32 +               rt2x00_set_field32(&tx_pin, TX_PIN_CFG_LNA_PE_A1_EN,
33 +                                  rf->channel > 14);
34 +               rt2x00_set_field32(&tx_pin, TX_PIN_CFG_LNA_PE_G1_EN,
35 +                                  rf->channel <= 14);
36                 /* fall-through */
37         case 1:
38                 /* Turn on primary LNAs */
39 -               rt2x00_set_field32(&tx_pin, TX_PIN_CFG_LNA_PE_A0_EN, 1);
40 -               rt2x00_set_field32(&tx_pin, TX_PIN_CFG_LNA_PE_G0_EN, 1);
41 +               rt2x00_set_field32(&tx_pin, TX_PIN_CFG_LNA_PE_A0_EN,
42 +                                  rf->channel > 14);
43 +               rt2x00_set_field32(&tx_pin, TX_PIN_CFG_LNA_PE_G0_EN,
44 +                                  rf->channel <= 14);
45                 break;
46         }
47