Skip to content

Instantly share code, notes, and snippets.

@pinge
Last active November 23, 2024 09:19
Show Gist options
  • Save pinge/0f43cddae8cd5fa52fbc5857e9f9d89b to your computer and use it in GitHub Desktop.
Save pinge/0f43cddae8cd5fa52fbc5857e9f9d89b to your computer and use it in GitHub Desktop.
OpenWrt patch txpower 6dbm limit for MT7615 MT7615E MT7615N MT7615DN
diff --git a/mt7615/eeprom.c b/mt7615/eeprom.c
index ccedea7e8a..d95809c22c 100644
--- a/mt7615/eeprom.c
+++ b/mt7615/eeprom.c
@@ -332,6 +332,7 @@ static void mt7615_cal_free_data(struct mt7615_dev *dev)
int mt7615_eeprom_init(struct mt7615_dev *dev, u32 addr)
{
+ static const u8 eeprom_mt7615[] = {0x15, 0x76, 0xA0, 0x00, 0x00, 0x0C, 0x43, 0x26, 0x60, 0x00, 0x15, 0x76, 0xC3, 0x14, 0x00, 0x80, 0x02, 0x00, 0xC3, 0x14, 0x15, 0x76, 0x03, 0x22, 0xFF, 0xFF, 0x23, 0x04, 0x0D, 0x02, 0x8F, 0x02, 0x00, 0x80, 0x0A, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x60, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x01, 0x20, 0x20, 0x00, 0xB3, 0x40, 0xB6, 0x40, 0xC4, 0x24, 0x00, 0x00, 0x00, 0xC0, 0xC3, 0x24, 0x00, 0x00, 0x00, 0xC0, 0xC4, 0x14, 0x00, 0x00, 0x00, 0x40, 0xC4, 0x14, 0x00, 0x00, 0x00, 0x40, 0xC5, 0x14, 0x00, 0x00, 0xC0, 0xC4, 0x20, 0x00, 0x00, 0xC0, 0xC3, 0x14, 0x00, 0x00, 0x40, 0xC3, 0x14, 0x00, 0x00, 0x40, 0xC2, 0x22, 0x00, 0x00, 0x40, 0xC2, 0x14, 0x00, 0x00, 0x40, 0xC2, 0x22, 0x00, 0x00, 0xC0, 0xC2, 0x22, 0x00, 0x00, 0x40, 0xC3, 0x14, 0x00, 0x00, 0x40, 0xC3, 0x20, 0x00, 0x00, 0x40, 0xC3, 0x14, 0x00, 0x00, 0xC0, 0xC2, 0x14, 0x00, 0x00, 0x40, 0xC2, 0x22, 0x00, 0x00, 0xC0, 0xC1, 0x14, 0x00, 0x00, 0x40, 0xC1, 0x22, 0x00, 0x00, 0xC0, 0xC0, 0x22, 0x00, 0x00, 0xC6, 0xC6, 0xC4, 0xC4, 0xC4, 0x00, 0x00, 0xC2, 0x00, 0xC2, 0xC1, 0x81, 0x81, 0x81, 0x85, 0xC2, 0xC2, 0x00, 0x82, 0x82, 0x82, 0x81, 0x00, 0xC5, 0xC5, 0xC5, 0x00, 0x00, 0xC3, 0x00, 0xC3, 0xC3, 0x82, 0x82, 0x82, 0x83, 0x84, 0xC3, 0xC3, 0xC3, 0x82, 0x82, 0x82, 0x00, 0x00, 0x82, 0x82, 0x00, 0x00, 0x00, 0x85, 0x01, 0x00, 0x00, 0x14, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xC1, 0x14, 0x00, 0x00, 0xC0, 0xC1, 0x14, 0x00, 0x00, 0x40, 0xC1, 0x14, 0x00, 0x00, 0x40, 0xC1, 0x14, 0x00, 0x00, 0x40, 0xC1, 0x14, 0x00, 0x00, 0xC0, 0xC0, 0x14, 0x00, 0x00, 0xC0, 0xC0, 0x14, 0x00, 0x00, 0xC0, 0xC0, 0x14, 0x00, 0x00, 0xC0, 0xC5, 0x14, 0x00, 0x00, 0x40, 0xC5, 0x14, 0x00, 0x00, 0x40, 0xC4, 0x14, 0x00, 0x00, 0xC0, 0xC3, 0x14, 0x00, 0x00, 0x40, 0xC3, 0x14, 0x00, 0x00, 0xC0, 0xC2, 0x14, 0x00, 0x00, 0xC0, 0xC2, 0x14, 0x00, 0x00, 0xC0, 0xC2, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
int ret;
ret = mt7615_eeprom_load(dev, addr);
@@ -340,8 +341,7 @@ int mt7615_eeprom_init(struct mt7615_dev *dev, u32 addr)
ret = mt7615_check_eeprom(&dev->mt76);
if (ret && dev->mt76.otp.data) {
- memcpy(dev->mt76.eeprom.data, dev->mt76.otp.data,
- dev->mt76.otp.size);
+ memcpy(dev->mt76.eeprom.data, eeprom_mt7615, 0x400);
} else {
dev->flash_eeprom = true;
mt7615_cal_free_data(dev);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment