Commit c38c5a66 authored by Vivien Didelot's avatar Vivien Didelot Committed by David S. Miller

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: default avatarVivien Didelot <vivien.didelot@savoirfairelinux.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 057cad2c
...@@ -261,36 +261,41 @@ struct dsa_switch { ...@@ -261,36 +261,41 @@ struct dsa_switch {
struct dsa_port ports[]; struct dsa_port ports[];
}; };
static inline bool dsa_is_unused_port(struct dsa_switch *ds, int p) static inline const struct dsa_port *dsa_to_port(struct dsa_switch *ds, int p)
{ {
u32 m = ds->enabled_port_mask | ds->dsa_port_mask | ds->cpu_port_mask; return &ds->ports[p];
}
return !(m & BIT(p)); static inline bool dsa_is_unused_port(struct dsa_switch *ds, int p)
{
return dsa_to_port(ds, p)->type == DSA_PORT_TYPE_UNUSED;
} }
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)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment