|
@@ -6361,6 +6361,28 @@ int rt2800_read_eeprom_efuse(struct rt2x00_dev *rt2x00dev)
|
|
|
}
|
|
|
EXPORT_SYMBOL_GPL(rt2800_read_eeprom_efuse);
|
|
|
|
|
|
+static u8 rt2800_get_txmixer_gain_24g(struct rt2x00_dev *rt2x00dev)
|
|
|
+{
|
|
|
+ u16 word;
|
|
|
+
|
|
|
+ rt2800_eeprom_read(rt2x00dev, EEPROM_TXMIXER_GAIN_BG, &word);
|
|
|
+ if ((word & 0x00ff) != 0x00ff)
|
|
|
+ return rt2x00_get_field16(word, EEPROM_TXMIXER_GAIN_BG_VAL);
|
|
|
+
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+static u8 rt2800_get_txmixer_gain_5g(struct rt2x00_dev *rt2x00dev)
|
|
|
+{
|
|
|
+ u16 word;
|
|
|
+
|
|
|
+ rt2800_eeprom_read(rt2x00dev, EEPROM_TXMIXER_GAIN_A, &word);
|
|
|
+ if ((word & 0x00ff) != 0x00ff)
|
|
|
+ return rt2x00_get_field16(word, EEPROM_TXMIXER_GAIN_A_VAL);
|
|
|
+
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
static int rt2800_validate_eeprom(struct rt2x00_dev *rt2x00dev)
|
|
|
{
|
|
|
struct rt2800_drv_data *drv_data = rt2x00dev->drv_data;
|
|
@@ -6455,13 +6477,7 @@ static int rt2800_validate_eeprom(struct rt2x00_dev *rt2x00dev)
|
|
|
rt2x00_set_field16(&word, EEPROM_RSSI_BG_OFFSET1, 0);
|
|
|
rt2800_eeprom_write(rt2x00dev, EEPROM_RSSI_BG, word);
|
|
|
|
|
|
- rt2800_eeprom_read(rt2x00dev, EEPROM_TXMIXER_GAIN_BG, &word);
|
|
|
- if ((word & 0x00ff) != 0x00ff) {
|
|
|
- drv_data->txmixer_gain_24g =
|
|
|
- rt2x00_get_field16(word, EEPROM_TXMIXER_GAIN_BG_VAL);
|
|
|
- } else {
|
|
|
- drv_data->txmixer_gain_24g = 0;
|
|
|
- }
|
|
|
+ drv_data->txmixer_gain_24g = rt2800_get_txmixer_gain_24g(rt2x00dev);
|
|
|
|
|
|
rt2800_eeprom_read(rt2x00dev, EEPROM_RSSI_BG2, &word);
|
|
|
if (abs(rt2x00_get_field16(word, EEPROM_RSSI_BG2_OFFSET2)) > 10)
|
|
@@ -6472,13 +6488,7 @@ static int rt2800_validate_eeprom(struct rt2x00_dev *rt2x00dev)
|
|
|
default_lna_gain);
|
|
|
rt2800_eeprom_write(rt2x00dev, EEPROM_RSSI_BG2, word);
|
|
|
|
|
|
- rt2800_eeprom_read(rt2x00dev, EEPROM_TXMIXER_GAIN_A, &word);
|
|
|
- if ((word & 0x00ff) != 0x00ff) {
|
|
|
- drv_data->txmixer_gain_5g =
|
|
|
- rt2x00_get_field16(word, EEPROM_TXMIXER_GAIN_A_VAL);
|
|
|
- } else {
|
|
|
- drv_data->txmixer_gain_5g = 0;
|
|
|
- }
|
|
|
+ drv_data->txmixer_gain_5g = rt2800_get_txmixer_gain_5g(rt2x00dev);
|
|
|
|
|
|
rt2800_eeprom_read(rt2x00dev, EEPROM_RSSI_A, &word);
|
|
|
if (abs(rt2x00_get_field16(word, EEPROM_RSSI_A_OFFSET0)) > 10)
|