diff options
author | John Crispin <john@openwrt.org> | 2014-04-12 21:21:14 +0000 |
---|---|---|
committer | John Crispin <john@openwrt.org> | 2014-04-12 21:21:14 +0000 |
commit | 1246dce0b31d3b950e04ab3a6fd466f289510c7c (patch) | |
tree | 5a8031c749e5208b4e979aad0f54ebb7841670b3 /package/boot/uboot-lantiq/patches/0019-net-switchlib-add-framework-for-ethernet-switch-driv.patch | |
parent | 22916814e3621dd807b0d89485ba3c60cfdf7c10 (diff) | |
download | mtk-20170518-1246dce0b31d3b950e04ab3a6fd466f289510c7c.zip mtk-20170518-1246dce0b31d3b950e04ab3a6fd466f289510c7c.tar.gz mtk-20170518-1246dce0b31d3b950e04ab3a6fd466f289510c7c.tar.bz2 |
uboot-lantiq: update to v2013.10
Patches created from tree:
git@github.com:danielschwierzeck/u-boot-lantiq.git
v2013.10..u-boot-lantiq-v2013.10-openwrt4
Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
SVN-Revision: 40482
Diffstat (limited to 'package/boot/uboot-lantiq/patches/0019-net-switchlib-add-framework-for-ethernet-switch-driv.patch')
-rw-r--r-- | package/boot/uboot-lantiq/patches/0019-net-switchlib-add-framework-for-ethernet-switch-driv.patch | 239 |
1 files changed, 0 insertions, 239 deletions
diff --git a/package/boot/uboot-lantiq/patches/0019-net-switchlib-add-framework-for-ethernet-switch-driv.patch b/package/boot/uboot-lantiq/patches/0019-net-switchlib-add-framework-for-ethernet-switch-driv.patch deleted file mode 100644 index a215d1a..0000000 --- a/package/boot/uboot-lantiq/patches/0019-net-switchlib-add-framework-for-ethernet-switch-driv.patch +++ /dev/null @@ -1,239 +0,0 @@ -From d8b1597130d228bc7e2bafd0c8d097529018c833 Mon Sep 17 00:00:00 2001 -From: Daniel Schwierzeck <daniel.schwierzeck@gmail.com> -Date: Wed, 29 Aug 2012 22:08:15 +0200 -Subject: net: switchlib: add framework for ethernet switch drivers - -Add a generic framework similar to phylib for ethernet switch -drivers and devices. This is useful to share the init and -setup code for switch devices across different boards. - -Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com> -Cc: Joe Hershberger <joe.hershberger@gmail.com> - ---- a/Makefile -+++ b/Makefile -@@ -291,6 +291,7 @@ LIBS-y += drivers/mtd/ubi/libubi.o - LIBS-y += drivers/mtd/spi/libspi_flash.o - LIBS-y += drivers/net/libnet.o - LIBS-y += drivers/net/phy/libphy.o -+LIBS-y += drivers/net/switch/libswitch.o - LIBS-y += drivers/pci/libpci.o - LIBS-y += drivers/pcmcia/libpcmcia.o - LIBS-y += drivers/power/libpower.o \ ---- /dev/null -+++ b/drivers/net/switch/Makefile -@@ -0,0 +1,31 @@ -+# -+# This file is released under the terms of GPL v2 and any later version. -+# See the file COPYING in the root directory of the source tree for details. -+# -+# Copyright (C) 2000-2011 Wolfgang Denk, DENX Software Engineering, wd@denx.de -+# Copyright (C) 2011-2012 Daniel Schwierzeck, daniel.schwierzeck@gmail.com -+# -+ -+include $(TOPDIR)/config.mk -+ -+LIB := $(obj)libswitch.o -+ -+COBJS-$(CONFIG_SWITCH_MULTI) += switch.o -+ -+COBJS := $(COBJS-y) -+SRCS := $(COBJS:.o=.c) -+OBJS := $(addprefix $(obj),$(COBJS)) -+ -+all: $(LIB) -+ -+$(LIB): $(obj).depend $(OBJS) -+ $(call cmd_link_o_target, $(OBJS)) -+ -+######################################################################### -+ -+# defines $(obj).depend target -+include $(SRCTREE)/rules.mk -+ -+sinclude $(obj).depend -+ -+######################################################################### ---- /dev/null -+++ b/drivers/net/switch/switch.c -@@ -0,0 +1,63 @@ -+/* -+ * Copyright (C) 2011-2012 Daniel Schwierzeck, daniel.schwierzeck@gmail.com -+ * -+ * This file is released under the terms of GPL v2 and any later version. -+ * See the file COPYING in the root directory of the source tree for details. -+ */ -+ -+#include <common.h> -+#include <netdev.h> -+#include <miiphy.h> -+#include <switch.h> -+ -+static struct list_head switch_drivers; -+static struct list_head switch_devices; -+ -+void switch_init(void) -+{ -+ INIT_LIST_HEAD(&switch_drivers); -+ INIT_LIST_HEAD(&switch_devices); -+ -+ board_switch_init(); -+} -+ -+void switch_driver_register(struct switch_driver *drv) -+{ -+ INIT_LIST_HEAD(&drv->list); -+ list_add_tail(&drv->list, &switch_drivers); -+} -+ -+int switch_device_register(struct switch_device *dev) -+{ -+ struct switch_driver *drv; -+ -+ /* Add switch device only, if an adequate driver is registered */ -+ list_for_each_entry(drv, &switch_drivers, list) { -+ if (!strcmp(drv->name, dev->name)) { -+ dev->drv = drv; -+ -+ INIT_LIST_HEAD(&dev->list); -+ list_add_tail(&dev->list, &switch_devices); -+ -+ return 0; -+ } -+ } -+ -+ return -1; -+} -+ -+struct switch_device *switch_connect(struct mii_dev *bus) -+{ -+ struct switch_device *sw; -+ int err; -+ -+ list_for_each_entry(sw, &switch_devices, list) { -+ sw->bus = bus; -+ -+ err = sw->drv->probe(sw); -+ if (!err) -+ return sw; -+ } -+ -+ return NULL; -+} ---- /dev/null -+++ b/include/switch.h -@@ -0,0 +1,95 @@ -+/* -+ * This file is released under the terms of GPL v2 and any later version. -+ * See the file COPYING in the root directory of the source tree for details. -+ * -+ * Copyright (C) 2011 Daniel Schwierzeck, daniel.schwierzeck@googlemail.com -+ */ -+ -+#ifndef __SWITCH_H -+#define __SWITCH_H -+ -+#include <linux/list.h> -+ -+#define SWITCH_NAME_SIZE 32 -+ -+struct switch_device; -+struct mii_dev; -+ -+struct switch_driver { -+ struct list_head list; -+ -+ /* Switch device name */ -+ const char name[SWITCH_NAME_SIZE]; -+ -+ /* -+ * Called to probe the switch chip. Must return 0 if the switch -+ * chip matches the given switch device/driver combination. Otherwise -+ * 1 must be returned. -+ */ -+ int (*probe) (struct switch_device *dev); -+ -+ /* -+ * Called to initialize the switch chip. -+ */ -+ void (*setup) (struct switch_device *dev); -+}; -+ -+struct switch_device { -+ struct list_head list; -+ struct switch_driver *drv; -+ -+ /* MII bus the switch chip is connected to */ -+ struct mii_dev *bus; -+ -+ /* Switch device name */ -+ const char name[SWITCH_NAME_SIZE]; -+ -+ /* Bitmask for board specific setup of used switch ports */ -+ u16 port_mask; -+ -+ /* Number of switch port that is connected to host CPU */ -+ u16 cpu_port; -+}; -+ -+/* -+ * Board specific switch initialization. -+ * -+ * Called from switch_init to register the board specific switch_device -+ * structure. -+ */ -+extern int board_switch_init(void); -+ -+/* Initialize switch subsystem */ -+#ifdef CONFIG_SWITCH_MULTI -+extern void switch_init(void); -+#else -+static inline void switch_init(void) -+{ -+} -+#endif -+ -+/* Register a switch driver */ -+extern void switch_driver_register(struct switch_driver *drv); -+ -+/* Register a switch device */ -+extern int switch_device_register(struct switch_device *dev); -+ -+/* -+ * Probe the available switch chips and connect the found one -+ * with the given MII bus -+ */ -+extern struct switch_device *switch_connect(struct mii_dev *bus); -+ -+/* -+ * Setup the given switch device -+ */ -+static inline void switch_setup(struct switch_device *dev) -+{ -+ if (dev->drv->setup) -+ dev->drv->setup(dev); -+} -+ -+/* Init functions for supported Switch drivers */ -+ -+#endif /* __SWITCH_H */ -+ ---- a/net/eth.c -+++ b/net/eth.c -@@ -26,6 +26,7 @@ - #include <net.h> - #include <miiphy.h> - #include <phy.h> -+#include <switch.h> - - void eth_parse_enetaddr(const char *addr, uchar *enetaddr) - { -@@ -303,6 +304,8 @@ int eth_initialize(bd_t *bis) - phy_init(); - #endif - -+ switch_init(); -+ - eth_env_init(bis); - - /* |