mirror of
https://github.com/outbackdingo/mt76.git
synced 2026-10-24 13:26:48 +00:00
mt76x2: Support using PCI ID as chip ID
On some routers, the manufacturer has made a mistake and left the chip ID part of the EEPROM empty (it is set to 0x0000). One such router is the ZBT-WE1026-5G (equipped with MT7612), and the consequence is that the EEPROM check fails and the 5GHz wifi does not work at all. When setting the chip ID to 0x7612 manually, the 5GHz wifi works fine. When looking at EEPROM of the WE1026 (and other devices equipped with mt76x2), I see that the PCI ID is always set to a valid value (7612 or 7662). This PR works around the issue of an empty chip ID by using the PCI ID, if chip ID is 0. After applying this PR/patch manually to mt76, the 5GHz on the WE1026 works out of the box. Since the PCI ID is only used if chip ID is empty, devices with correct EEPROMs are not affected. Signed-off-by: Kristian Evensen <[email protected]>
This commit is contained in:
committed by
Felix Fietkau
parent
f658dd21d7
commit
f6a021d15a
@@ -205,6 +205,9 @@ static int mt76x2_check_eeprom(struct mt76x2_dev *dev)
|
||||
{
|
||||
u16 val = get_unaligned_le16(dev->mt76.eeprom.data);
|
||||
|
||||
if (!val)
|
||||
val = get_unaligned_le16(dev->mt76.eeprom.data + MT_EE_PCI_ID);
|
||||
|
||||
switch (val) {
|
||||
case 0x7662:
|
||||
case 0x7612:
|
||||
|
||||
@@ -23,6 +23,7 @@ enum mt76x2_eeprom_field {
|
||||
MT_EE_CHIP_ID = 0x000,
|
||||
MT_EE_VERSION = 0x002,
|
||||
MT_EE_MAC_ADDR = 0x004,
|
||||
MT_EE_PCI_ID = 0x00A,
|
||||
MT_EE_NIC_CONF_0 = 0x034,
|
||||
MT_EE_NIC_CONF_1 = 0x036,
|
||||
MT_EE_NIC_CONF_2 = 0x042,
|
||||
|
||||
Reference in New Issue
Block a user