]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - net/dsa/dsa_priv.h
dsa: Move all definitions needed by drivers into <net/dsa.h>
[karo-tx-linux.git] / net / dsa / dsa_priv.h
index 89a2eb48232a0ab154c97aaf82ea01c7394807af..d4cf5cc747e3569f4d41855d9894b7a4fa98253d 100644 (file)
 #ifndef __DSA_PRIV_H
 #define __DSA_PRIV_H
 
-#include <linux/list.h>
 #include <linux/phy.h>
-#include <linux/timer.h>
-#include <linux/workqueue.h>
 #include <net/dsa.h>
 
-struct dsa_switch {
-       /*
-        * Parent switch tree, and switch index.
-        */
-       struct dsa_switch_tree  *dst;
-       int                     index;
-
-       /*
-        * Configuration data for this switch.
-        */
-       struct dsa_chip_data    *pd;
-
-       /*
-        * The used switch driver.
-        */
-       struct dsa_switch_driver        *drv;
-
-       /*
-        * Reference to mii bus to use.
-        */
-       struct mii_bus          *master_mii_bus;
-
-       /*
-        * Slave mii_bus and devices for the individual ports.
-        */
-       u32                     dsa_port_mask;
-       u32                     phys_port_mask;
-       struct mii_bus          *slave_mii_bus;
-       struct net_device       *ports[DSA_MAX_PORTS];
-};
-
-static inline bool dsa_is_cpu_port(struct dsa_switch *ds, int p)
-{
-       return !!(ds->index == ds->dst->cpu_switch && p == ds->dst->cpu_port);
-}
-
-static inline u8 dsa_upstream_port(struct dsa_switch *ds)
-{
-       struct dsa_switch_tree *dst = ds->dst;
-
-       /*
-        * If this is the root switch (i.e. the switch that connects
-        * to the CPU), return the cpu port number on this switch.
-        * Else return the (DSA) port number that connects to the
-        * switch that is one hop closer to the cpu.
-        */
-       if (dst->cpu_switch == ds->index)
-               return dst->cpu_port;
-       else
-               return ds->pd->rtable[dst->cpu_switch];
-}
-
 struct dsa_slave_priv {
        /*
         * The linux network interface corresponding to this
@@ -90,44 +35,8 @@ struct dsa_slave_priv {
        struct phy_device       *phy;
 };
 
-struct dsa_switch_driver {
-       struct list_head        list;
-
-       __be16                  tag_protocol;
-       int                     priv_size;
-
-       /*
-        * Probing and setup.
-        */
-       char    *(*probe)(struct mii_bus *bus, int sw_addr);
-       int     (*setup)(struct dsa_switch *ds);
-       int     (*set_addr)(struct dsa_switch *ds, u8 *addr);
-
-       /*
-        * Access to the switch's PHY registers.
-        */
-       int     (*phy_read)(struct dsa_switch *ds, int port, int regnum);
-       int     (*phy_write)(struct dsa_switch *ds, int port,
-                            int regnum, u16 val);
-
-       /*
-        * Link state polling and IRQ handling.
-        */
-       void    (*poll_link)(struct dsa_switch *ds);
-
-       /*
-        * ethtool hardware statistics.
-        */
-       void    (*get_strings)(struct dsa_switch *ds, int port, uint8_t *data);
-       void    (*get_ethtool_stats)(struct dsa_switch *ds,
-                                    int port, uint64_t *data);
-       int     (*get_sset_count)(struct dsa_switch *ds);
-};
-
 /* dsa.c */
 extern char dsa_driver_version[];
-void register_switch_driver(struct dsa_switch_driver *type);
-void unregister_switch_driver(struct dsa_switch_driver *type);
 
 /* slave.c */
 void dsa_slave_mii_bus_init(struct dsa_switch *ds);