Lines Matching refs:pcs

51 	struct phylink_pcs *pcs;  member
660 struct phylink_pcs *pcs; in phylink_validate_mac_and_pcs() local
665 pcs = pl->mac_ops->mac_select_pcs(pl->config, state->interface); in phylink_validate_mac_and_pcs()
666 if (IS_ERR(pcs)) in phylink_validate_mac_and_pcs()
667 return PTR_ERR(pcs); in phylink_validate_mac_and_pcs()
669 pcs = pl->pcs; in phylink_validate_mac_and_pcs()
672 if (pcs) { in phylink_validate_mac_and_pcs()
677 if (!pcs->ops) { in phylink_validate_mac_and_pcs()
685 if (pcs->ops->pcs_validate) { in phylink_validate_mac_and_pcs()
686 ret = pcs->ops->pcs_validate(pcs, supported, state); in phylink_validate_mac_and_pcs()
1022 static void phylink_pcs_pre_config(struct phylink_pcs *pcs, in phylink_pcs_pre_config() argument
1025 if (pcs && pcs->ops->pcs_pre_config) in phylink_pcs_pre_config()
1026 pcs->ops->pcs_pre_config(pcs, interface); in phylink_pcs_pre_config()
1029 static int phylink_pcs_post_config(struct phylink_pcs *pcs, in phylink_pcs_post_config() argument
1034 if (pcs && pcs->ops->pcs_post_config) in phylink_pcs_post_config()
1035 err = pcs->ops->pcs_post_config(pcs, interface); in phylink_pcs_post_config()
1040 static void phylink_pcs_disable(struct phylink_pcs *pcs) in phylink_pcs_disable() argument
1042 if (pcs && pcs->ops->pcs_disable) in phylink_pcs_disable()
1043 pcs->ops->pcs_disable(pcs); in phylink_pcs_disable()
1046 static int phylink_pcs_enable(struct phylink_pcs *pcs) in phylink_pcs_enable() argument
1050 if (pcs && pcs->ops->pcs_enable) in phylink_pcs_enable()
1051 err = pcs->ops->pcs_enable(pcs); in phylink_pcs_enable()
1056 static int phylink_pcs_config(struct phylink_pcs *pcs, unsigned int neg_mode, in phylink_pcs_config() argument
1060 if (!pcs) in phylink_pcs_config()
1063 return pcs->ops->pcs_config(pcs, neg_mode, state->interface, in phylink_pcs_config()
1067 static void phylink_pcs_link_up(struct phylink_pcs *pcs, unsigned int neg_mode, in phylink_pcs_link_up() argument
1071 if (pcs && pcs->ops->pcs_link_up) in phylink_pcs_link_up()
1072 pcs->ops->pcs_link_up(pcs, neg_mode, interface, speed, duplex); in phylink_pcs_link_up()
1083 if (pl->pcs && pl->pcs->poll && pl->cfg_link_an_mode == MLO_AN_INBAND) in phylink_pcs_poll_start()
1112 if (pl->pcs && linkmode_test_bit(ETHTOOL_LINK_MODE_Autoneg_BIT, in phylink_pcs_an_restart()
1116 pl->pcs->ops->pcs_an_restart(pl->pcs); in phylink_pcs_an_restart()
1122 struct phylink_pcs *pcs = NULL; in phylink_major_config() local
1135 pcs = pl->mac_ops->mac_select_pcs(pl->config, state->interface); in phylink_major_config()
1136 if (IS_ERR(pcs)) { in phylink_major_config()
1139 pcs); in phylink_major_config()
1143 pcs_changed = pcs && pl->pcs != pcs; in phylink_major_config()
1162 phylink_pcs_disable(pl->pcs); in phylink_major_config()
1164 if (pl->pcs) in phylink_major_config()
1165 pl->pcs->phylink = NULL; in phylink_major_config()
1167 pcs->phylink = pl; in phylink_major_config()
1169 pl->pcs = pcs; in phylink_major_config()
1172 if (pl->pcs) in phylink_major_config()
1173 phylink_pcs_pre_config(pl->pcs, state->interface); in phylink_major_config()
1177 if (pl->pcs) in phylink_major_config()
1178 phylink_pcs_post_config(pl->pcs, state->interface); in phylink_major_config()
1181 phylink_pcs_enable(pl->pcs); in phylink_major_config()
1184 if (pl->pcs && pl->pcs->neg_mode) in phylink_major_config()
1187 err = phylink_pcs_config(pl->pcs, neg_mode, state, in phylink_major_config()
1241 if (pl->pcs->neg_mode) in phylink_change_inband_advert()
1248 ret = phylink_pcs_config(pl->pcs, neg_mode, &pl->link_config, in phylink_change_inband_advert()
1279 if (pl->pcs) in phylink_mac_pcs_get_state()
1280 pl->pcs->ops->pcs_get_state(pl->pcs, state); in phylink_mac_pcs_get_state()
1380 if (pl->pcs && pl->pcs->neg_mode) in phylink_link_up()
1383 phylink_pcs_link_up(pl->pcs, neg_mode, pl->cur_interface, speed, in phylink_link_up()
2040 void phylink_pcs_change(struct phylink_pcs *pcs, bool up) in phylink_pcs_change() argument
2042 struct phylink *pl = pcs->phylink; in phylink_pcs_change()
2154 phylink_pcs_disable(pl->pcs); in phylink_stop()
3581 void phylink_mii_c22_pcs_get_state(struct mdio_device *pcs, in phylink_mii_c22_pcs_get_state() argument
3586 bmsr = mdiodev_read(pcs, MII_BMSR); in phylink_mii_c22_pcs_get_state()
3587 lpa = mdiodev_read(pcs, MII_LPA); in phylink_mii_c22_pcs_get_state()
3649 int phylink_mii_c22_pcs_config(struct mdio_device *pcs, in phylink_mii_c22_pcs_config() argument
3660 ret = mdiobus_modify_changed(pcs->bus, pcs->addr, in phylink_mii_c22_pcs_config()
3673 ret = mdiodev_modify(pcs, MII_BMCR, BMCR_ANENABLE | BMCR_ISOLATE, bmcr); in phylink_mii_c22_pcs_config()
3692 void phylink_mii_c22_pcs_an_restart(struct mdio_device *pcs) in phylink_mii_c22_pcs_an_restart() argument
3694 int val = mdiodev_read(pcs, MII_BMCR); in phylink_mii_c22_pcs_an_restart()
3699 mdiodev_write(pcs, MII_BMCR, val); in phylink_mii_c22_pcs_an_restart()
3704 void phylink_mii_c45_pcs_get_state(struct mdio_device *pcs, in phylink_mii_c45_pcs_get_state() argument
3707 struct mii_bus *bus = pcs->bus; in phylink_mii_c45_pcs_get_state()
3708 int addr = pcs->addr; in phylink_mii_c45_pcs_get_state()