ipq806x: add support for retrieving macs from mtd
[openwrt/staging/lynxis/omap.git] / target / linux / ipq806x / patches-3.18 / 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 (file)
index 0000000..68222ce
--- /dev/null
@@ -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) */