net: dsa: use new port type in helpers

Now that DSA exposes an enumerated type for the ports, we can use them
directly instead of checking bitmaps, which is more consistent.

Signed-off-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Vivien Didelot 2017-10-26 11:22:58 -04:00 committed by David S. Miller
parent 057cad2c59
commit c38c5a6650
1 changed files with 16 additions and 11 deletions

View File

@ -261,36 +261,41 @@ struct dsa_switch {
struct dsa_port ports[]; struct dsa_port ports[];
}; };
static inline const struct dsa_port *dsa_to_port(struct dsa_switch *ds, int p)
{
return &ds->ports[p];
}
static inline bool dsa_is_unused_port(struct dsa_switch *ds, int p) static inline bool dsa_is_unused_port(struct dsa_switch *ds, int p)
{ {
u32 m = ds->enabled_port_mask | ds->dsa_port_mask | ds->cpu_port_mask; return dsa_to_port(ds, p)->type == DSA_PORT_TYPE_UNUSED;
return !(m & BIT(p));
} }
static inline bool dsa_is_cpu_port(struct dsa_switch *ds, int p) static inline bool dsa_is_cpu_port(struct dsa_switch *ds, int p)
{ {
return !!(ds->cpu_port_mask & (1 << p)); return dsa_to_port(ds, p)->type == DSA_PORT_TYPE_CPU;
} }
static inline bool dsa_is_dsa_port(struct dsa_switch *ds, int p) static inline bool dsa_is_dsa_port(struct dsa_switch *ds, int p)
{ {
return !!((ds->dsa_port_mask) & (1 << p)); return dsa_to_port(ds, p)->type == DSA_PORT_TYPE_DSA;
} }
static inline bool dsa_is_user_port(struct dsa_switch *ds, int p) static inline bool dsa_is_user_port(struct dsa_switch *ds, int p)
{ {
return !!(ds->enabled_port_mask & BIT(p)); return dsa_to_port(ds, p)->type == DSA_PORT_TYPE_USER;
} }
static inline u32 dsa_user_ports(struct dsa_switch *ds) static inline u32 dsa_user_ports(struct dsa_switch *ds)
{ {
return ds->enabled_port_mask; u32 mask = 0;
} int p;
static inline const struct dsa_port *dsa_to_port(struct dsa_switch *ds, int p) for (p = 0; p < ds->num_ports; p++)
{ if (dsa_is_user_port(ds, p))
return &ds->ports[p]; mask |= BIT(p);
return mask;
} }
static inline u8 dsa_upstream_port(struct dsa_switch *ds) static inline u8 dsa_upstream_port(struct dsa_switch *ds)