Commit 544435c9 authored by Colin Foster's avatar Colin Foster Committed by David S. Miller

net: dsa: felix: allow configurable phylink_mac_config

If a user of the Felix driver has a port running in SGMII / QSGMII mode, it
will need to utilize phylink_mac_config(). Add this configurability.
Signed-off-by: default avatarColin Foster <colin.foster@in-advantage.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 3821fd01
...@@ -1056,6 +1056,17 @@ static void felix_phylink_get_caps(struct dsa_switch *ds, int port, ...@@ -1056,6 +1056,17 @@ static void felix_phylink_get_caps(struct dsa_switch *ds, int port,
config->supported_interfaces); config->supported_interfaces);
} }
static void felix_phylink_mac_config(struct dsa_switch *ds, int port,
unsigned int mode,
const struct phylink_link_state *state)
{
struct ocelot *ocelot = ds->priv;
struct felix *felix = ocelot_to_felix(ocelot);
if (felix->info->phylink_mac_config)
felix->info->phylink_mac_config(ocelot, port, mode, state);
}
static struct phylink_pcs *felix_phylink_mac_select_pcs(struct dsa_switch *ds, static struct phylink_pcs *felix_phylink_mac_select_pcs(struct dsa_switch *ds,
int port, int port,
phy_interface_t iface) phy_interface_t iface)
...@@ -2088,6 +2099,7 @@ const struct dsa_switch_ops felix_switch_ops = { ...@@ -2088,6 +2099,7 @@ const struct dsa_switch_ops felix_switch_ops = {
.get_sset_count = felix_get_sset_count, .get_sset_count = felix_get_sset_count,
.get_ts_info = felix_get_ts_info, .get_ts_info = felix_get_ts_info,
.phylink_get_caps = felix_phylink_get_caps, .phylink_get_caps = felix_phylink_get_caps,
.phylink_mac_config = felix_phylink_mac_config,
.phylink_mac_select_pcs = felix_phylink_mac_select_pcs, .phylink_mac_select_pcs = felix_phylink_mac_select_pcs,
.phylink_mac_link_down = felix_phylink_mac_link_down, .phylink_mac_link_down = felix_phylink_mac_link_down,
.phylink_mac_link_up = felix_phylink_mac_link_up, .phylink_mac_link_up = felix_phylink_mac_link_up,
......
...@@ -58,6 +58,9 @@ struct felix_info { ...@@ -58,6 +58,9 @@ struct felix_info {
void (*tas_guard_bands_update)(struct ocelot *ocelot, int port); void (*tas_guard_bands_update)(struct ocelot *ocelot, int port);
void (*port_sched_speed_set)(struct ocelot *ocelot, int port, void (*port_sched_speed_set)(struct ocelot *ocelot, int port,
u32 speed); u32 speed);
void (*phylink_mac_config)(struct ocelot *ocelot, int port,
unsigned int mode,
const struct phylink_link_state *state);
}; };
/* Methods for initializing the hardware resources specific to a tagging /* Methods for initializing the hardware resources specific to a tagging
......
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