From 05e4d736d1ededa779ce12946bedb20e003eeaa1 Mon Sep 17 00:00:00 2001
From: Jonas Gorski <jogo@openwrt.org>
Date: Fri, 4 Sep 2015 14:45:40 +0000
Subject: [PATCH] ipq806x: add support for retrieving macs from mtd

Add support for mtd-mac-address for stmac.

Signed-off-by: Jonas Gorski <jogo@openwrt.org>

SVN-Revision: 46793
---
 ...dd-support-for-retreiving-mac-from-m.patch | 35 +++++++++++++++++++
 ...dd-support-for-retreiving-mac-from-m.patch | 35 +++++++++++++++++++
 2 files changed, 70 insertions(+)
 create mode 100644 target/linux/ipq806x/patches-3.18/709-stmac-platform-add-support-for-retreiving-mac-from-m.patch
 create mode 100644 target/linux/ipq806x/patches-4.1/709-stmac-platform-add-support-for-retreiving-mac-from-m.patch

diff --git a/target/linux/ipq806x/patches-3.18/709-stmac-platform-add-support-for-retreiving-mac-from-m.patch b/target/linux/ipq806x/patches-3.18/709-stmac-platform-add-support-for-retreiving-mac-from-m.patch
new file mode 100644
index 0000000000..68222ceea7
--- /dev/null
+++ b/target/linux/ipq806x/patches-3.18/709-stmac-platform-add-support-for-retreiving-mac-from-m.patch
@@ -0,0 +1,35 @@
+From 5bf2dabde1fa3af0c9082b42b6847ef3fd198b13 Mon Sep 17 00:00:00 2001
+From: Jonas Gorski <jogo@openwrt.org>
+Date: Sun, 9 Aug 2015 12:53:55 +0200
+Subject: [PATCH] stmac: platform: add support for retreiving mac from mtd
+
+---
+ drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
++++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
+@@ -284,6 +284,7 @@ static int stmmac_pltfr_probe(struct pla
+ 	struct stmmac_priv *priv = NULL;
+ 	struct plat_stmmacenet_data *plat_dat = NULL;
+ 	const char *mac = NULL;
++	u8 mtd_mac[ETH_ALEN] = { };
+ 
+ 	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+ 	addr = devm_ioremap_resource(dev, res);
+@@ -313,6 +314,15 @@ static int stmmac_pltfr_probe(struct pla
+ 			pr_err("%s: main dt probe failed", __func__);
+ 			return ret;
+ 		}
++
++		if (!mac) {
++			ret = of_get_mac_address_mtd(dev->of_node, &mtd_mac);
++			if (ret == -EPROBE_DEFER)
++				return ret;
++
++			if (is_valid_ether_addr(&mtd_mac))
++				mac = mtd_mac;
++		}
+ 	}
+ 
+ 	/* Custom setup (if needed) */
diff --git a/target/linux/ipq806x/patches-4.1/709-stmac-platform-add-support-for-retreiving-mac-from-m.patch b/target/linux/ipq806x/patches-4.1/709-stmac-platform-add-support-for-retreiving-mac-from-m.patch
new file mode 100644
index 0000000000..84c15c7566
--- /dev/null
+++ b/target/linux/ipq806x/patches-4.1/709-stmac-platform-add-support-for-retreiving-mac-from-m.patch
@@ -0,0 +1,35 @@
+From 5bf2dabde1fa3af0c9082b42b6847ef3fd198b13 Mon Sep 17 00:00:00 2001
+From: Jonas Gorski <jogo@openwrt.org>
+Date: Sun, 9 Aug 2015 12:53:55 +0200
+Subject: [PATCH] stmac: platform: add support for retreiving mac from mtd
+
+---
+ drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
++++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
+@@ -302,6 +302,7 @@ static int stmmac_pltfr_probe(struct pla
+ 	struct stmmac_priv *priv = NULL;
+ 	struct plat_stmmacenet_data *plat_dat = NULL;
+ 	const char *mac = NULL;
++	u8 mtd_mac[ETH_ALEN] = { };
+ 	int irq, wol_irq, lpi_irq;
+ 
+ 	/* Get IRQ information early to have an ability to ask for deferred
+@@ -362,6 +363,15 @@ static int stmmac_pltfr_probe(struct pla
+ 			pr_err("%s: main dt probe failed", __func__);
+ 			return ret;
+ 		}
++
++		if (!mac) {
++			ret = of_get_mac_address_mtd(dev->of_node, &mtd_mac);
++			if (ret == -EPROBE_DEFER)
++				return ret;
++
++			if (is_valid_ether_addr(&mtd_mac))
++				mac = mtd_mac;
++		}
+ 	}
+ 
+ 	/* Custom setup (if needed) */
-- 
2.30.2