From 7b86ce8772033610482b81fb76d95b2011bd0f7e Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Thu, 14 Jan 2016 12:55:45 +0100 Subject: [PATCH] mt76x2: fix interpreting LNA gain values Signed-off-by: Felix Fietkau --- mt76x2_eeprom.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/mt76x2_eeprom.c b/mt76x2_eeprom.c index 9204f4e9..f0a42c98 100644 --- a/mt76x2_eeprom.c +++ b/mt76x2_eeprom.c @@ -339,6 +339,7 @@ void mt76x2_read_rx_gain(struct mt76x2_dev *dev) struct ieee80211_channel *chan = dev->chandef.chan; int channel = chan->hw_value; s8 lna_5g[3], lna_2g; + u8 lna; u16 val; if (chan->band == IEEE80211_BAND_2GHZ) @@ -386,14 +387,18 @@ void mt76x2_read_rx_gain(struct mt76x2_dev *dev) memset(lna_5g, 0, sizeof(lna_5g)); if (chan->band == IEEE80211_BAND_2GHZ) - dev->cal.rx.lna_gain = lna_2g; + lna = lna_2g; else if (channel <= 64) - dev->cal.rx.lna_gain = lna_5g[0]; + lna = lna_5g[0]; else if (channel <= 128) - dev->cal.rx.lna_gain = lna_5g[1]; + lna = lna_5g[1]; else - dev->cal.rx.lna_gain = lna_5g[2]; + lna = lna_5g[2]; + if (lna == 0xff) + lna = 0; + + dev->cal.rx.lna_gain = mt76x2_sign_extend(lna, 8); } static s8