lkml.org 
[lkml]   [2019]   [Apr]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 5.0 06/98] mt76: mt76x2: fix 2.4 GHz channel gain settings
    Date
    From: Felix Fietkau <nbd@nbd.name>

    [ Upstream commit b8cfd87ac24273e36fbd3ecda631f3ba6566d493 ]

    AGC register 35, 37 override for the low gain setting should only be done
    on 5 GHz. Also, 2.4 GHz needs a different value for register 35

    Signed-off-by: Felix Fietkau <nbd@nbd.name>
    Signed-off-by: Sasha Levin (Microsoft) <sashal@kernel.org>
    ---
    .../net/wireless/mediatek/mt76/mt76x2/phy.c | 19 ++++++++++++++-----
    1 file changed, 14 insertions(+), 5 deletions(-)

    diff --git a/drivers/net/wireless/mediatek/mt76/mt76x2/phy.c b/drivers/net/wireless/mediatek/mt76/mt76x2/phy.c
    index 11167b7af668..2f618536ef2a 100644
    --- a/drivers/net/wireless/mediatek/mt76/mt76x2/phy.c
    +++ b/drivers/net/wireless/mediatek/mt76/mt76x2/phy.c
    @@ -285,6 +285,7 @@ void mt76x2_phy_update_channel_gain(struct mt76x02_dev *dev)
    {
    u8 *gain = dev->cal.agc_gain_init;
    u8 low_gain_delta, gain_delta;
    + u32 agc_35, agc_37;
    bool gain_change;
    int low_gain;
    u32 val;
    @@ -321,6 +322,16 @@ void mt76x2_phy_update_channel_gain(struct mt76x02_dev *dev)
    else
    low_gain_delta = 14;

    + agc_37 = 0x2121262c;
    + if (dev->mt76.chandef.chan->band == NL80211_BAND_2GHZ)
    + agc_35 = 0x11111516;
    + else if (low_gain == 2)
    + agc_35 = agc_37 = 0x08080808;
    + else if (dev->mt76.chandef.width == NL80211_CHAN_WIDTH_80)
    + agc_35 = 0x10101014;
    + else
    + agc_35 = 0x11111116;
    +
    if (low_gain == 2) {
    mt76_wr(dev, MT_BBP(RXO, 18), 0xf000a990);
    mt76_wr(dev, MT_BBP(AGC, 35), 0x08080808);
    @@ -329,15 +340,13 @@ void mt76x2_phy_update_channel_gain(struct mt76x02_dev *dev)
    dev->cal.agc_gain_adjust = 0;
    } else {
    mt76_wr(dev, MT_BBP(RXO, 18), 0xf000a991);
    - if (dev->mt76.chandef.width == NL80211_CHAN_WIDTH_80)
    - mt76_wr(dev, MT_BBP(AGC, 35), 0x10101014);
    - else
    - mt76_wr(dev, MT_BBP(AGC, 35), 0x11111116);
    - mt76_wr(dev, MT_BBP(AGC, 37), 0x2121262C);
    gain_delta = 0;
    dev->cal.agc_gain_adjust = low_gain_delta;
    }

    + mt76_wr(dev, MT_BBP(AGC, 35), agc_35);
    + mt76_wr(dev, MT_BBP(AGC, 37), agc_37);
    +
    dev->cal.agc_gain_cur[0] = gain[0] - gain_delta;
    dev->cal.agc_gain_cur[1] = gain[1] - gain_delta;
    mt76x2_phy_set_gain_val(dev);
    --
    2.19.1
    \
     
     \ /
      Last update: 2019-04-22 22:12    [W:4.207 / U:0.120 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site