Linux-Wireless Archive on lore.kernel.org
 help / color / Atom feed
* [PATCH v2 0/2] add support for big endian eeprom partition to mt76 driver
@ 2019-11-27 14:46 Lorenzo Bianconi
  2019-11-27 14:46 ` [PATCH v2 1/2] mt76: eeprom: add support for big endian eeprom partition Lorenzo Bianconi
  2019-11-27 14:46 ` [PATCH v2 2/2] dt-bindings: net: wireless: mt76: introduce big-endian property Lorenzo Bianconi
  0 siblings, 2 replies; 4+ messages in thread
From: Lorenzo Bianconi @ 2019-11-27 14:46 UTC (permalink / raw)
  To: nbd; +Cc: linux-wireless, devicetree, lorenzo.bianconi

Introduce the possibility to specify eeprom radio partition endianness
since mt76x0e users reported some devices (e.g TP-Link Archer VR200v)
have been flashed with big endian calibration data.

Changes since v1:
- Add bing-endian property documentation

Lorenzo Bianconi (2):
  mt76: eeprom: add support for big endian eeprom partition
  dt-bindings: net: wireless: mt76: introduce big-endian property

 .../devicetree/bindings/net/wireless/mediatek,mt76.txt |  3 +++
 drivers/net/wireless/mediatek/mt76/eeprom.c            | 10 ++++++++++
 2 files changed, 13 insertions(+)

-- 
2.21.0


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH v2 1/2] mt76: eeprom: add support for big endian eeprom partition
  2019-11-27 14:46 [PATCH v2 0/2] add support for big endian eeprom partition to mt76 driver Lorenzo Bianconi
@ 2019-11-27 14:46 ` Lorenzo Bianconi
  2019-11-27 14:46 ` [PATCH v2 2/2] dt-bindings: net: wireless: mt76: introduce big-endian property Lorenzo Bianconi
  1 sibling, 0 replies; 4+ messages in thread
From: Lorenzo Bianconi @ 2019-11-27 14:46 UTC (permalink / raw)
  To: nbd; +Cc: linux-wireless, devicetree, lorenzo.bianconi

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>
---
 drivers/net/wireless/mediatek/mt76/eeprom.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/drivers/net/wireless/mediatek/mt76/eeprom.c b/drivers/net/wireless/mediatek/mt76/eeprom.c
index 804224e81103..33d992d5662a 100644
--- a/drivers/net/wireless/mediatek/mt76/eeprom.c
+++ b/drivers/net/wireless/mediatek/mt76/eeprom.c
@@ -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;
-- 
2.21.0


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH v2 2/2] dt-bindings: net: wireless: mt76: introduce big-endian property
  2019-11-27 14:46 [PATCH v2 0/2] add support for big endian eeprom partition to mt76 driver Lorenzo Bianconi
  2019-11-27 14:46 ` [PATCH v2 1/2] mt76: eeprom: add support for big endian eeprom partition Lorenzo Bianconi
@ 2019-11-27 14:46 ` Lorenzo Bianconi
  2019-12-05 21:48   ` Rob Herring
  1 sibling, 1 reply; 4+ messages in thread
From: Lorenzo Bianconi @ 2019-11-27 14:46 UTC (permalink / raw)
  To: nbd; +Cc: linux-wireless, devicetree, lorenzo.bianconi

Introduce big-endian property to specify mtd radio partition endianness

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
---
 .../devicetree/bindings/net/wireless/mediatek,mt76.txt         | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/Documentation/devicetree/bindings/net/wireless/mediatek,mt76.txt b/Documentation/devicetree/bindings/net/wireless/mediatek,mt76.txt
index 7e675dafc256..d4d982f7ab37 100644
--- a/Documentation/devicetree/bindings/net/wireless/mediatek,mt76.txt
+++ b/Documentation/devicetree/bindings/net/wireless/mediatek,mt76.txt
@@ -15,6 +15,8 @@ Optional properties:
 
 - ieee80211-freq-limit: See ieee80211.txt
 - mediatek,mtd-eeprom: Specify a MTD partition + offset containing EEPROM data
+- big-endian: if the radio eeprom partition is written in big-endian, specify
+  this property
 
 The MAC address can as well be set with corresponding optional properties
 defined in net/ethernet.txt.
@@ -31,6 +33,7 @@ Optional nodes:
 			reg = <0x0000 0 0 0 0>;
 			ieee80211-freq-limit = <5000000 6000000>;
 			mediatek,mtd-eeprom = <&factory 0x8000>;
+			big-endian;
 
 			led {
 				led-sources = <2>;
-- 
2.21.0


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH v2 2/2] dt-bindings: net: wireless: mt76: introduce big-endian property
  2019-11-27 14:46 ` [PATCH v2 2/2] dt-bindings: net: wireless: mt76: introduce big-endian property Lorenzo Bianconi
@ 2019-12-05 21:48   ` Rob Herring
  0 siblings, 0 replies; 4+ messages in thread
From: Rob Herring @ 2019-12-05 21:48 UTC (permalink / raw)
  To: Lorenzo Bianconi; +Cc: nbd, linux-wireless, devicetree, lorenzo.bianconi

On Wed, 27 Nov 2019 16:46:34 +0200, Lorenzo Bianconi wrote:
> Introduce big-endian property to specify mtd radio partition endianness
> 
> Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
> ---
>  .../devicetree/bindings/net/wireless/mediatek,mt76.txt         | 3 +++
>  1 file changed, 3 insertions(+)
> 

Acked-by: Rob Herring <robh@kernel.org>

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, back to index

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-11-27 14:46 [PATCH v2 0/2] add support for big endian eeprom partition to mt76 driver Lorenzo Bianconi
2019-11-27 14:46 ` [PATCH v2 1/2] mt76: eeprom: add support for big endian eeprom partition Lorenzo Bianconi
2019-11-27 14:46 ` [PATCH v2 2/2] dt-bindings: net: wireless: mt76: introduce big-endian property Lorenzo Bianconi
2019-12-05 21:48   ` Rob Herring

Linux-Wireless Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-wireless/0 linux-wireless/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-wireless linux-wireless/ https://lore.kernel.org/linux-wireless \
		linux-wireless@vger.kernel.org
	public-inbox-index linux-wireless

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-wireless


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git