summaryrefslogtreecommitdiff
path: root/target/linux/imx6/patches-3.12/0050-sky2-allow-mac-to-come-from-dt.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/imx6/patches-3.12/0050-sky2-allow-mac-to-come-from-dt.patch')
-rw-r--r--target/linux/imx6/patches-3.12/0050-sky2-allow-mac-to-come-from-dt.patch69
1 files changed, 0 insertions, 69 deletions
diff --git a/target/linux/imx6/patches-3.12/0050-sky2-allow-mac-to-come-from-dt.patch b/target/linux/imx6/patches-3.12/0050-sky2-allow-mac-to-come-from-dt.patch
deleted file mode 100644
index 54743a5..0000000
--- a/target/linux/imx6/patches-3.12/0050-sky2-allow-mac-to-come-from-dt.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-From: Tim Harvey <tharvey@gateworks.com>
-Subject: [PATCH] sky2: allow mac to come from dt
-
-The driver reads the mac address from the device registers which would
-need to have been programmed by the bootloader. This patch adds
-the ability to pull the mac from devicetree via the aliases/sky2 node.
-
-Signed-off-by: Tim Harvey <tharvey@gateworks.com>
----
- drivers/net/ethernet/marvell/sky2.c | 33 ++++++++++++++++++++++++++++++++-
- 1 file changed, 32 insertions(+), 1 deletion(-)
-
---- a/drivers/net/ethernet/marvell/sky2.c
-+++ b/drivers/net/ethernet/marvell/sky2.c
-@@ -44,6 +44,8 @@
- #include <linux/prefetch.h>
- #include <linux/debugfs.h>
- #include <linux/mii.h>
-+#include <linux/of_device.h>
-+#include <linux/of_net.h>
-
- #include <asm/irq.h>
-
-@@ -4748,6 +4750,7 @@ static struct net_device *sky2_init_netd
- {
- struct sky2_port *sky2;
- struct net_device *dev = alloc_etherdev(sizeof(*sky2));
-+ unsigned char *iap, tmpaddr[ETH_ALEN];
-
- if (!dev)
- return NULL;
-@@ -4802,8 +4805,36 @@ static struct net_device *sky2_init_netd
-
- dev->features |= dev->hw_features;
-
-+ /*
-+ * try to get mac address in the following order:
-+ * 1) from device tree data
-+ * 2) from internal registers set by bootloader
-+ */
-+ iap = NULL;
-+ if (IS_ENABLED(CONFIG_OF)) {
-+ struct device_node *np;
-+ np = of_find_node_by_path("/aliases");
-+ if (np) {
-+ const char *path = of_get_property(np, "sky2", NULL);
-+ if (path)
-+ np = of_find_node_by_path(path);
-+ if (np)
-+ path = of_get_mac_address(np);
-+ if (path)
-+ iap = (unsigned char *) path;
-+ }
-+ }
-+
-+ /*
-+ * 2) mac registers set by bootloader
-+ */
-+ if (!iap || !is_valid_ether_addr(iap)) {
-+ memcpy_fromio(&tmpaddr, hw->regs + B2_MAC_1 + port * 8, ETH_ALEN);
-+ iap = &tmpaddr[0];
-+ }
-+
- /* read the mac address */
-- memcpy_fromio(dev->dev_addr, hw->regs + B2_MAC_1 + port * 8, ETH_ALEN);
-+ memcpy(dev->dev_addr, iap, ETH_ALEN);
-
- return dev;
- }