mt76: mt76x2: disable merge of OTP ROM data by default
authorFelix Fietkau <nbd@nbd.name>
Mon, 6 Apr 2020 12:03:06 +0000 (14:03 +0200)
committerFelix Fietkau <nbd@nbd.name>
Tue, 12 May 2020 17:52:30 +0000 (19:52 +0200)
The reference driver does not seem to enable it by default, only under certain
conditions, e.g. when a .bin file is loaded.
Make it opt-in via a device tree property for now, in case it is needed on some
boards.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt76x2/eeprom.c

index 4a748a6..410ffce 100644 (file)
@@ -4,6 +4,7 @@
  */
 
 #include <linux/module.h>
+#include <linux/of.h>
 #include <asm/unaligned.h>
 #include "mt76x2.h"
 #include "eeprom.h"
@@ -76,6 +77,7 @@ mt76x2_apply_cal_free_data(struct mt76x02_dev *dev, u8 *efuse)
                MT_EE_RF_5G_GRP4_5_RX_HIGH_GAIN,
                MT_EE_RF_5G_GRP4_5_RX_HIGH_GAIN + 1,
        };
+       struct device_node *np = dev->mt76.dev->of_node;
        u8 *eeprom = dev->mt76.eeprom.data;
        u8 prev_grp0[4] = {
                eeprom[MT_EE_TX_POWER_0_START_5G],
@@ -86,6 +88,9 @@ mt76x2_apply_cal_free_data(struct mt76x02_dev *dev, u8 *efuse)
        u16 val;
        int i;
 
+       if (!np || !of_property_read_bool(np, "mediatek,eeprom-merge-otp"))
+               return;
+
        if (!mt76x2_has_cal_free_data(dev, efuse))
                return;