net: phylink: remove pcs_ops member
Remove the pcs_ops member from struct phylink, using the one stored in struct phylink_pcs instead. Reviewed-by: Andrew Lunn <andrew@lunn.ch> Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
af9784d007
commit
4f1dd48f40
@ -43,7 +43,6 @@ struct phylink {
|
||||
/* private: */
|
||||
struct net_device *netdev;
|
||||
const struct phylink_mac_ops *mac_ops;
|
||||
const struct phylink_pcs_ops *pcs_ops;
|
||||
struct phylink_config *config;
|
||||
struct phylink_pcs *pcs;
|
||||
struct device *dev;
|
||||
@ -779,8 +778,8 @@ static void phylink_mac_pcs_an_restart(struct phylink *pl)
|
||||
if (pl->link_config.an_enabled &&
|
||||
phy_interface_mode_is_8023z(pl->link_config.interface) &&
|
||||
phylink_autoneg_inband(pl->cur_link_an_mode)) {
|
||||
if (pl->pcs_ops)
|
||||
pl->pcs_ops->pcs_an_restart(pl->pcs);
|
||||
if (pl->pcs)
|
||||
pl->pcs->ops->pcs_an_restart(pl->pcs);
|
||||
else if (pl->config->legacy_pre_march2020)
|
||||
pl->mac_ops->mac_an_restart(pl->config);
|
||||
}
|
||||
@ -819,7 +818,6 @@ static void phylink_major_config(struct phylink *pl, bool restart,
|
||||
*/
|
||||
if (pcs) {
|
||||
pl->pcs = pcs;
|
||||
pl->pcs_ops = pcs->ops;
|
||||
|
||||
if (!pl->phylink_disable_state &&
|
||||
pl->cfg_link_an_mode == MLO_AN_INBAND) {
|
||||
@ -832,12 +830,12 @@ static void phylink_major_config(struct phylink *pl, bool restart,
|
||||
|
||||
phylink_mac_config(pl, state);
|
||||
|
||||
if (pl->pcs_ops) {
|
||||
err = pl->pcs_ops->pcs_config(pl->pcs, pl->cur_link_an_mode,
|
||||
state->interface,
|
||||
state->advertising,
|
||||
!!(pl->link_config.pause &
|
||||
MLO_PAUSE_AN));
|
||||
if (pl->pcs) {
|
||||
err = pl->pcs->ops->pcs_config(pl->pcs, pl->cur_link_an_mode,
|
||||
state->interface,
|
||||
state->advertising,
|
||||
!!(pl->link_config.pause &
|
||||
MLO_PAUSE_AN));
|
||||
if (err < 0)
|
||||
phylink_err(pl, "pcs_config failed: %pe\n",
|
||||
ERR_PTR(err));
|
||||
@ -869,7 +867,7 @@ static int phylink_change_inband_advert(struct phylink *pl)
|
||||
if (test_bit(PHYLINK_DISABLE_STOPPED, &pl->phylink_disable_state))
|
||||
return 0;
|
||||
|
||||
if (!pl->pcs_ops && pl->config->legacy_pre_march2020) {
|
||||
if (!pl->pcs && pl->config->legacy_pre_march2020) {
|
||||
/* Legacy method */
|
||||
phylink_mac_config(pl, &pl->link_config);
|
||||
phylink_mac_pcs_an_restart(pl);
|
||||
@ -886,10 +884,11 @@ static int phylink_change_inband_advert(struct phylink *pl)
|
||||
* restart negotiation if the pcs_config() helper indicates that
|
||||
* the programmed advertisement has changed.
|
||||
*/
|
||||
ret = pl->pcs_ops->pcs_config(pl->pcs, pl->cur_link_an_mode,
|
||||
pl->link_config.interface,
|
||||
pl->link_config.advertising,
|
||||
!!(pl->link_config.pause & MLO_PAUSE_AN));
|
||||
ret = pl->pcs->ops->pcs_config(pl->pcs, pl->cur_link_an_mode,
|
||||
pl->link_config.interface,
|
||||
pl->link_config.advertising,
|
||||
!!(pl->link_config.pause &
|
||||
MLO_PAUSE_AN));
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
@ -918,8 +917,8 @@ static void phylink_mac_pcs_get_state(struct phylink *pl,
|
||||
state->an_complete = 0;
|
||||
state->link = 1;
|
||||
|
||||
if (pl->pcs_ops)
|
||||
pl->pcs_ops->pcs_get_state(pl->pcs, state);
|
||||
if (pl->pcs)
|
||||
pl->pcs->ops->pcs_get_state(pl->pcs, state);
|
||||
else if (pl->mac_ops->mac_pcs_get_state &&
|
||||
pl->config->legacy_pre_march2020)
|
||||
pl->mac_ops->mac_pcs_get_state(pl->config, state);
|
||||
@ -992,8 +991,8 @@ static void phylink_link_up(struct phylink *pl,
|
||||
|
||||
pl->cur_interface = link_state.interface;
|
||||
|
||||
if (pl->pcs_ops && pl->pcs_ops->pcs_link_up)
|
||||
pl->pcs_ops->pcs_link_up(pl->pcs, pl->cur_link_an_mode,
|
||||
if (pl->pcs && pl->pcs->ops->pcs_link_up)
|
||||
pl->pcs->ops->pcs_link_up(pl->pcs, pl->cur_link_an_mode,
|
||||
pl->cur_interface,
|
||||
link_state.speed, link_state.duplex);
|
||||
|
||||
@ -1115,7 +1114,7 @@ static void phylink_resolve(struct work_struct *w)
|
||||
}
|
||||
phylink_major_config(pl, false, &link_state);
|
||||
pl->link_config.interface = link_state.interface;
|
||||
} else if (!pl->pcs_ops && pl->config->legacy_pre_march2020) {
|
||||
} else if (!pl->pcs && pl->config->legacy_pre_march2020) {
|
||||
/* The interface remains unchanged, only the speed,
|
||||
* duplex or pause settings have changed. Call the
|
||||
* old mac_config() method to configure the MAC/PCS
|
||||
|
Loading…
Reference in New Issue
Block a user