Skip to content

Commit

Permalink
net: dsa: xrs700x: provide own phylink MAC operations
Browse files Browse the repository at this point in the history
Convert xrs700x to provide its own phylink MAC operations, thus
avoiding the shim layer in DSA's port.c. We need to provide stubs for
the mac_link_down() and mac_config() methods which are mandatory.

Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Link: https://lore.kernel.org/r/E1rwfu8-007531-TG@rmk-PC.armlinux.org.uk
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  • Loading branch information
Russell King (Oracle) authored and Jakub Kicinski committed Apr 18, 2024
1 parent a3c363d commit 860a9be
Showing 1 changed file with 21 additions and 4 deletions.
25 changes: 21 additions & 4 deletions drivers/net/dsa/xrs700x/xrs700x.c
Original file line number Diff line number Diff line change
Expand Up @@ -466,13 +466,25 @@ static void xrs700x_phylink_get_caps(struct dsa_switch *ds, int port,
}
}

static void xrs700x_mac_link_up(struct dsa_switch *ds, int port,
unsigned int mode, phy_interface_t interface,
static void xrs700x_mac_config(struct phylink_config *config, unsigned int mode,
const struct phylink_link_state *state)
{
}

static void xrs700x_mac_link_down(struct phylink_config *config,
unsigned int mode, phy_interface_t interface)
{
}

static void xrs700x_mac_link_up(struct phylink_config *config,
struct phy_device *phydev,
unsigned int mode, phy_interface_t interface,
int speed, int duplex,
bool tx_pause, bool rx_pause)
{
struct xrs700x *priv = ds->priv;
struct dsa_port *dp = dsa_phylink_to_port(config);
struct xrs700x *priv = dp->ds->priv;
int port = dp->index;
unsigned int val;

switch (speed) {
Expand Down Expand Up @@ -699,13 +711,18 @@ static int xrs700x_hsr_leave(struct dsa_switch *ds, int port,
return 0;
}

static const struct phylink_mac_ops xrs700x_phylink_mac_ops = {
.mac_config = xrs700x_mac_config,
.mac_link_down = xrs700x_mac_link_down,
.mac_link_up = xrs700x_mac_link_up,
};

static const struct dsa_switch_ops xrs700x_ops = {
.get_tag_protocol = xrs700x_get_tag_protocol,
.setup = xrs700x_setup,
.teardown = xrs700x_teardown,
.port_stp_state_set = xrs700x_port_stp_state_set,
.phylink_get_caps = xrs700x_phylink_get_caps,
.phylink_mac_link_up = xrs700x_mac_link_up,
.get_strings = xrs700x_get_strings,
.get_sset_count = xrs700x_get_sset_count,
.get_ethtool_stats = xrs700x_get_ethtool_stats,
Expand Down

0 comments on commit 860a9be

Please sign in to comment.