|
@@ -190,8 +190,11 @@ struct dsa_switch {
|
|
|
u32 cpu_port_mask;
|
|
|
u32 enabled_port_mask;
|
|
|
u32 phys_mii_mask;
|
|
|
- struct dsa_port ports[DSA_MAX_PORTS];
|
|
|
struct mii_bus *slave_mii_bus;
|
|
|
+
|
|
|
+ /* Dynamically allocated ports, keep last */
|
|
|
+ size_t num_ports;
|
|
|
+ struct dsa_port ports[];
|
|
|
};
|
|
|
|
|
|
static inline bool dsa_is_cpu_port(struct dsa_switch *ds, int p)
|
|
@@ -386,6 +389,7 @@ static inline bool dsa_uses_tagged_protocol(struct dsa_switch_tree *dst)
|
|
|
return dst->rcv != NULL;
|
|
|
}
|
|
|
|
|
|
+struct dsa_switch *dsa_switch_alloc(struct device *dev, size_t n);
|
|
|
void dsa_unregister_switch(struct dsa_switch *ds);
|
|
|
int dsa_register_switch(struct dsa_switch *ds, struct device *dev);
|
|
|
#ifdef CONFIG_PM_SLEEP
|