mirror of
https://github.com/torvalds/linux.git
synced 2026-06-05 04:56:13 +02:00
mt76: eeprom: add support for big endian eeprom partition
mt76x0e users reported some devices (e.g TP-Link Archer VR200v) have been flashed with big endian radio partition. Add the possibility to specify eeprom endianness using big-endian dts property and in case covert eeprom data in little endian Tested-by: Kevin Schmidt <kevin.patrick.schmidt@googlemail.com> Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
parent
00c29ab2f6
commit
b3c6d6388b
|
|
@ -64,6 +64,16 @@ mt76_get_of_eeprom(struct mt76_dev *dev, int len)
|
|||
goto out_put_node;
|
||||
}
|
||||
|
||||
if (of_property_read_bool(dev->dev->of_node, "big-endian")) {
|
||||
u8 *data = (u8 *)dev->eeprom.data;
|
||||
int i;
|
||||
|
||||
/* convert eeprom data in Little Endian */
|
||||
for (i = 0; i < round_down(len, 2); i += 2)
|
||||
put_unaligned_le16(get_unaligned_be16(&data[i]),
|
||||
&data[i]);
|
||||
}
|
||||
|
||||
out_put_node:
|
||||
of_node_put(np);
|
||||
return ret;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user