diff options
| author | Ben Hutchings <ben@decadent.org.uk> | 2011-11-27 12:06:08 -0500 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2011-11-29 00:21:36 -0500 |
| commit | c8f0b86996c88081095124d16b869e8d8a1c02c5 (patch) | |
| tree | c8ae0274df112c03a9029625aec9e3eb4e2e7026 /net/dsa | |
| parent | fa67a04497c03a1ead12cd896262de14980311e8 (diff) | |
dsa: Move all definitions needed by drivers into <net/dsa.h>
Any headers included by drivers should be under include/, and
any definitions they use are not really private to the core as
the name "dsa_priv.h" suggests.
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Acked-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/dsa')
| -rw-r--r-- | net/dsa/dsa_priv.h | 91 | ||||
| -rw-r--r-- | net/dsa/mv88e6060.c | 2 | ||||
| -rw-r--r-- | net/dsa/mv88e6123_61_65.c | 2 | ||||
| -rw-r--r-- | net/dsa/mv88e6131.c | 2 | ||||
| -rw-r--r-- | net/dsa/mv88e6xxx.c | 2 |
5 files changed, 4 insertions, 95 deletions
diff --git a/net/dsa/dsa_priv.h b/net/dsa/dsa_priv.h index 89a2eb48232a..d4cf5cc747e3 100644 --- a/net/dsa/dsa_priv.h +++ b/net/dsa/dsa_priv.h | |||
| @@ -11,64 +11,9 @@ | |||
| 11 | #ifndef __DSA_PRIV_H | 11 | #ifndef __DSA_PRIV_H |
| 12 | #define __DSA_PRIV_H | 12 | #define __DSA_PRIV_H |
| 13 | 13 | ||
| 14 | #include <linux/list.h> | ||
| 15 | #include <linux/phy.h> | 14 | #include <linux/phy.h> |
| 16 | #include <linux/timer.h> | ||
| 17 | #include <linux/workqueue.h> | ||
| 18 | #include <net/dsa.h> | 15 | #include <net/dsa.h> |
| 19 | 16 | ||
| 20 | struct dsa_switch { | ||
| 21 | /* | ||
| 22 | * Parent switch tree, and switch index. | ||
| 23 | */ | ||
| 24 | struct dsa_switch_tree *dst; | ||
| 25 | int index; | ||
| 26 | |||
| 27 | /* | ||
| 28 | * Configuration data for this switch. | ||
| 29 | */ | ||
| 30 | struct dsa_chip_data *pd; | ||
| 31 | |||
| 32 | /* | ||
| 33 | * The used switch driver. | ||
| 34 | */ | ||
| 35 | struct dsa_switch_driver *drv; | ||
| 36 | |||
| 37 | /* | ||
| 38 | * Reference to mii bus to use. | ||
| 39 | */ | ||
| 40 | struct mii_bus *master_mii_bus; | ||
| 41 | |||
| 42 | /* | ||
| 43 | * Slave mii_bus and devices for the individual ports. | ||
| 44 | */ | ||
| 45 | u32 dsa_port_mask; | ||
| 46 | u32 phys_port_mask; | ||
| 47 | struct mii_bus *slave_mii_bus; | ||
| 48 | struct net_device *ports[DSA_MAX_PORTS]; | ||
| 49 | }; | ||
| 50 | |||
| 51 | static inline bool dsa_is_cpu_port(struct dsa_switch *ds, int p) | ||
| 52 | { | ||
| 53 | return !!(ds->index == ds->dst->cpu_switch && p == ds->dst->cpu_port); | ||
| 54 | } | ||
| 55 | |||
| 56 | static inline u8 dsa_upstream_port(struct dsa_switch *ds) | ||
| 57 | { | ||
| 58 | struct dsa_switch_tree *dst = ds->dst; | ||
| 59 | |||
| 60 | /* | ||
| 61 | * If this is the root switch (i.e. the switch that connects | ||
| 62 | * to the CPU), return the cpu port number on this switch. | ||
| 63 | * Else return the (DSA) port number that connects to the | ||
| 64 | * switch that is one hop closer to the cpu. | ||
| 65 | */ | ||
| 66 | if (dst->cpu_switch == ds->index) | ||
| 67 | return dst->cpu_port; | ||
| 68 | else | ||
| 69 | return ds->pd->rtable[dst->cpu_switch]; | ||
| 70 | } | ||
| 71 | |||
| 72 | struct dsa_slave_priv { | 17 | struct dsa_slave_priv { |
| 73 | /* | 18 | /* |
| 74 | * The linux network interface corresponding to this | 19 | * The linux network interface corresponding to this |
| @@ -90,44 +35,8 @@ struct dsa_slave_priv { | |||
| 90 | struct phy_device *phy; | 35 | struct phy_device *phy; |
| 91 | }; | 36 | }; |
| 92 | 37 | ||
| 93 | struct dsa_switch_driver { | ||
| 94 | struct list_head list; | ||
| 95 | |||
| 96 | __be16 tag_protocol; | ||
| 97 | int priv_size; | ||
| 98 | |||
| 99 | /* | ||
| 100 | * Probing and setup. | ||
| 101 | */ | ||
| 102 | char *(*probe)(struct mii_bus *bus, int sw_addr); | ||
| 103 | int (*setup)(struct dsa_switch *ds); | ||
| 104 | int (*set_addr)(struct dsa_switch *ds, u8 *addr); | ||
| 105 | |||
| 106 | /* | ||
| 107 | * Access to the switch's PHY registers. | ||
| 108 | */ | ||
| 109 | int (*phy_read)(struct dsa_switch *ds, int port, int regnum); | ||
| 110 | int (*phy_write)(struct dsa_switch *ds, int port, | ||
| 111 | int regnum, u16 val); | ||
| 112 | |||
| 113 | /* | ||
| 114 | * Link state polling and IRQ handling. | ||
| 115 | */ | ||
| 116 | void (*poll_link)(struct dsa_switch *ds); | ||
| 117 | |||
| 118 | /* | ||
| 119 | * ethtool hardware statistics. | ||
| 120 | */ | ||
| 121 | void (*get_strings)(struct dsa_switch *ds, int port, uint8_t *data); | ||
| 122 | void (*get_ethtool_stats)(struct dsa_switch *ds, | ||
| 123 | int port, uint64_t *data); | ||
| 124 | int (*get_sset_count)(struct dsa_switch *ds); | ||
| 125 | }; | ||
| 126 | |||
| 127 | /* dsa.c */ | 38 | /* dsa.c */ |
| 128 | extern char dsa_driver_version[]; | 39 | extern char dsa_driver_version[]; |
| 129 | void register_switch_driver(struct dsa_switch_driver *type); | ||
| 130 | void unregister_switch_driver(struct dsa_switch_driver *type); | ||
| 131 | 40 | ||
| 132 | /* slave.c */ | 41 | /* slave.c */ |
| 133 | void dsa_slave_mii_bus_init(struct dsa_switch *ds); | 42 | void dsa_slave_mii_bus_init(struct dsa_switch *ds); |
diff --git a/net/dsa/mv88e6060.c b/net/dsa/mv88e6060.c index 0e028dfa89ec..7fc4e81d4d43 100644 --- a/net/dsa/mv88e6060.c +++ b/net/dsa/mv88e6060.c | |||
| @@ -11,7 +11,7 @@ | |||
| 11 | #include <linux/list.h> | 11 | #include <linux/list.h> |
| 12 | #include <linux/netdevice.h> | 12 | #include <linux/netdevice.h> |
| 13 | #include <linux/phy.h> | 13 | #include <linux/phy.h> |
| 14 | #include "dsa_priv.h" | 14 | #include <net/dsa.h> |
| 15 | 15 | ||
| 16 | #define REG_PORT(p) (8 + (p)) | 16 | #define REG_PORT(p) (8 + (p)) |
| 17 | #define REG_GLOBAL 0x0f | 17 | #define REG_GLOBAL 0x0f |
diff --git a/net/dsa/mv88e6123_61_65.c b/net/dsa/mv88e6123_61_65.c index 6504405700fe..c0a458fc698f 100644 --- a/net/dsa/mv88e6123_61_65.c +++ b/net/dsa/mv88e6123_61_65.c | |||
| @@ -11,7 +11,7 @@ | |||
| 11 | #include <linux/list.h> | 11 | #include <linux/list.h> |
| 12 | #include <linux/netdevice.h> | 12 | #include <linux/netdevice.h> |
| 13 | #include <linux/phy.h> | 13 | #include <linux/phy.h> |
| 14 | #include "dsa_priv.h" | 14 | #include <net/dsa.h> |
| 15 | #include "mv88e6xxx.h" | 15 | #include "mv88e6xxx.h" |
| 16 | 16 | ||
| 17 | static char *mv88e6123_61_65_probe(struct mii_bus *bus, int sw_addr) | 17 | static char *mv88e6123_61_65_probe(struct mii_bus *bus, int sw_addr) |
diff --git a/net/dsa/mv88e6131.c b/net/dsa/mv88e6131.c index 6786ba48c106..e0eb68243834 100644 --- a/net/dsa/mv88e6131.c +++ b/net/dsa/mv88e6131.c | |||
| @@ -11,7 +11,7 @@ | |||
| 11 | #include <linux/list.h> | 11 | #include <linux/list.h> |
| 12 | #include <linux/netdevice.h> | 12 | #include <linux/netdevice.h> |
| 13 | #include <linux/phy.h> | 13 | #include <linux/phy.h> |
| 14 | #include "dsa_priv.h" | 14 | #include <net/dsa.h> |
| 15 | #include "mv88e6xxx.h" | 15 | #include "mv88e6xxx.h" |
| 16 | 16 | ||
| 17 | /* | 17 | /* |
diff --git a/net/dsa/mv88e6xxx.c b/net/dsa/mv88e6xxx.c index cacd955edcb6..5467c040824a 100644 --- a/net/dsa/mv88e6xxx.c +++ b/net/dsa/mv88e6xxx.c | |||
| @@ -11,7 +11,7 @@ | |||
| 11 | #include <linux/list.h> | 11 | #include <linux/list.h> |
| 12 | #include <linux/netdevice.h> | 12 | #include <linux/netdevice.h> |
| 13 | #include <linux/phy.h> | 13 | #include <linux/phy.h> |
| 14 | #include "dsa_priv.h" | 14 | #include <net/dsa.h> |
| 15 | #include "mv88e6xxx.h" | 15 | #include "mv88e6xxx.h" |
| 16 | 16 | ||
| 17 | /* | 17 | /* |
