Lines Matching full:conf
97 if (port->conf.portmode == PHY_INTERFACE_MODE_1000BASEX) in sparx5_get_dev2g5_status()
99 else if (port->conf.portmode == PHY_INTERFACE_MODE_2500BASEX) in sparx5_get_dev2g5_status()
110 if (port->conf.portmode == PHY_INTERFACE_MODE_SGMII) { in sparx5_get_dev2g5_status()
125 bool high_speed_dev = sparx5_is_baser(port->conf.portmode); in sparx5_get_sfi_status()
148 if (port->conf.portmode == PHY_INTERFACE_MODE_5GBASER) in sparx5_get_sfi_status()
150 else if (port->conf.portmode == PHY_INTERFACE_MODE_10GBASER) in sparx5_get_sfi_status()
165 status->speed = port->conf.speed; in sparx5_get_port_status()
166 if (port->conf.power_down) { in sparx5_get_port_status()
170 switch (port->conf.portmode) { in sparx5_get_port_status()
190 struct sparx5_port_config *conf, in sparx5_port_error() argument
197 conf->speed, phy_modes(conf->portmode)); in sparx5_port_error()
202 phy_modes(conf->portmode)); in sparx5_port_error()
214 struct sparx5_port_config *conf) in sparx5_port_verify_speed() argument
219 conf->speed > SPEED_2500) || in sparx5_port_verify_speed()
221 conf->speed > SPEED_5000) || in sparx5_port_verify_speed()
223 conf->speed > SPEED_10000)) in sparx5_port_verify_speed()
224 return sparx5_port_error(port, conf, SPX5_PERR_SPEED); in sparx5_port_verify_speed()
226 switch (conf->portmode) { in sparx5_port_verify_speed()
230 if (conf->speed != SPEED_1000 || in sparx5_port_verify_speed()
232 return sparx5_port_error(port, conf, SPX5_PERR_SPEED); in sparx5_port_verify_speed()
234 return sparx5_port_error(port, conf, SPX5_PERR_IFTYPE); in sparx5_port_verify_speed()
237 if (conf->speed != SPEED_2500 || in sparx5_port_verify_speed()
239 return sparx5_port_error(port, conf, SPX5_PERR_SPEED); in sparx5_port_verify_speed()
243 return sparx5_port_error(port, conf, SPX5_PERR_IFTYPE); in sparx5_port_verify_speed()
246 if (conf->speed != SPEED_1000 && in sparx5_port_verify_speed()
247 conf->speed != SPEED_100 && in sparx5_port_verify_speed()
248 conf->speed != SPEED_10 && in sparx5_port_verify_speed()
249 conf->speed != SPEED_2500) in sparx5_port_verify_speed()
250 return sparx5_port_error(port, conf, SPX5_PERR_SPEED); in sparx5_port_verify_speed()
255 if ((conf->speed != SPEED_5000 && in sparx5_port_verify_speed()
256 conf->speed != SPEED_10000 && in sparx5_port_verify_speed()
257 conf->speed != SPEED_25000)) in sparx5_port_verify_speed()
258 return sparx5_port_error(port, conf, SPX5_PERR_SPEED); in sparx5_port_verify_speed()
264 if (conf->speed != SPEED_1000 && in sparx5_port_verify_speed()
265 conf->speed != SPEED_100 && in sparx5_port_verify_speed()
266 conf->speed != SPEED_10) in sparx5_port_verify_speed()
267 return sparx5_port_error(port, conf, SPX5_PERR_SPEED); in sparx5_port_verify_speed()
270 return sparx5_port_error(port, conf, SPX5_PERR_IFTYPE); in sparx5_port_verify_speed()
277 struct sparx5_port_config *conf) in sparx5_dev_change() argument
279 return sparx5_is_baser(port->conf.portmode) ^ in sparx5_dev_change()
280 sparx5_is_baser(conf->portmode); in sparx5_dev_change()
335 u32 spd = port->conf.speed; in sparx5_port_disable()
532 struct sparx5_port_config *conf) in sparx5_port_mux_set() argument
537 if (port->conf.portmode == conf->portmode) in sparx5_port_mux_set()
540 switch (conf->portmode) { in sparx5_port_mux_set()
652 struct sparx5_port_config *conf) in sparx5_port_fc_setup() argument
654 bool fc_obey = conf->pause & MLO_PAUSE_RX ? 1 : 0; in sparx5_port_fc_setup()
657 if (conf->pause & MLO_PAUSE_TX) in sparx5_port_fc_setup()
662 spx5_rmw(DSM_MAC_CFG_HDX_BACKPREASSURE_SET(conf->duplex == DUPLEX_HALF), in sparx5_port_fc_setup()
688 static u16 sparx5_get_aneg_word(struct sparx5_port_config *conf) in sparx5_get_aneg_word() argument
690 if (conf->portmode == PHY_INTERFACE_MODE_1000BASEX) /* cl-37 aneg */ in sparx5_get_aneg_word()
691 return (conf->pause_adv | ADVERTISE_LPACK | ADVERTISE_1000XFULL); in sparx5_get_aneg_word()
698 struct sparx5_port_config *conf) in sparx5_serdes_set() argument
700 int portmode, err, speed = conf->speed; in sparx5_serdes_set()
702 if (conf->portmode == PHY_INTERFACE_MODE_QSGMII && in sparx5_serdes_set()
706 if (sparx5_is_baser(conf->portmode)) { in sparx5_serdes_set()
707 if (conf->portmode == PHY_INTERFACE_MODE_25GBASER) in sparx5_serdes_set()
709 else if (conf->portmode == PHY_INTERFACE_MODE_10GBASER) in sparx5_serdes_set()
715 err = phy_set_media(port->serdes, conf->media); in sparx5_serdes_set()
723 if (conf->serdes_reset) { in sparx5_serdes_set()
732 portmode = conf->portmode; in sparx5_serdes_set()
733 if (sparx5_is_baser(conf->portmode)) in sparx5_serdes_set()
738 conf->serdes_reset = false; in sparx5_serdes_set()
744 struct sparx5_port_config *conf) in sparx5_port_pcs_low_set() argument
749 if (conf->inband) { in sparx5_port_pcs_low_set()
750 if (conf->portmode == PHY_INTERFACE_MODE_SGMII || in sparx5_port_pcs_low_set()
751 conf->portmode == PHY_INTERFACE_MODE_QSGMII) in sparx5_port_pcs_low_set()
753 else if (conf->portmode == PHY_INTERFACE_MODE_1000BASEX && in sparx5_port_pcs_low_set()
754 conf->autoneg) in sparx5_port_pcs_low_set()
757 err = sparx5_serdes_set(sparx5, port, conf); in sparx5_port_pcs_low_set()
776 u16 abil = sparx5_get_aneg_word(conf); in sparx5_port_pcs_low_set()
804 struct sparx5_port_config *conf) in sparx5_port_pcs_high_set() argument
806 u32 clk_spd = conf->portmode == PHY_INTERFACE_MODE_5GBASER ? 1 : 0; in sparx5_port_pcs_high_set()
818 err = sparx5_serdes_set(sparx5, port, conf); in sparx5_port_pcs_high_set()
821 if (conf->portmode == PHY_INTERFACE_MODE_25GBASER) { in sparx5_port_pcs_high_set()
887 struct sparx5_port_config *conf) in sparx5_port_config_low_set() argument
890 bool fdx = conf->duplex == DUPLEX_FULL; in sparx5_port_config_low_set()
891 int spd = conf->speed; in sparx5_port_config_low_set()
955 struct sparx5_port_config *conf) in sparx5_port_pcs_set() argument
958 bool high_speed_dev = sparx5_is_baser(conf->portmode); in sparx5_port_pcs_set()
961 if (sparx5_dev_change(sparx5, port, conf)) { in sparx5_port_pcs_set()
976 err = sparx5_port_pcs_high_set(sparx5, port, conf); in sparx5_port_pcs_set()
978 err = sparx5_port_pcs_low_set(sparx5, port, conf); in sparx5_port_pcs_set()
983 if (conf->inband) { in sparx5_port_pcs_set()
997 port->conf = *conf; in sparx5_port_pcs_set()
1004 struct sparx5_port_config *conf) in sparx5_port_config() argument
1006 bool rgmii = phy_interface_mode_is_rgmii(conf->phy_mode); in sparx5_port_config()
1007 bool high_speed_dev = sparx5_is_baser(conf->portmode); in sparx5_port_config()
1011 err = sparx5_port_verify_speed(sparx5, port, conf); in sparx5_port_config()
1016 err = ops->port_config_rgmii(port, conf); in sparx5_port_config()
1023 sparx5_port_config_low_set(sparx5, port, conf); in sparx5_port_config()
1026 err = sparx5_port_fc_setup(sparx5, port, conf); in sparx5_port_config()
1031 conf->speed < SPEED_10000) in sparx5_port_config()
1038 stop_wm = sparx5_port_fifo_sz(sparx5, port->portno, conf->speed); in sparx5_port_config()
1045 urgency = sparx5_port_fwd_urg(sparx5, conf->speed); in sparx5_port_config()
1054 port->conf = *conf; in sparx5_port_config()
1062 struct sparx5_port_config *conf) in sparx5_port_init() argument
1082 err = ops->set_port_mux(sparx5, port, conf); in sparx5_port_init()
1130 if (conf->portmode == PHY_INTERFACE_MODE_QSGMII || in sparx5_port_init()
1131 conf->portmode == PHY_INTERFACE_MODE_SGMII) { in sparx5_port_init()
1132 err = sparx5_serdes_set(sparx5, port, conf); in sparx5_port_init()
1145 if (conf->portmode == PHY_INTERFACE_MODE_QSGMII) { in sparx5_port_init()
1163 if (conf->portmode == PHY_INTERFACE_MODE_NA) in sparx5_port_init()
1164 conf->portmode = PHY_INTERFACE_MODE_10GBASER; in sparx5_port_init()
1166 if (sparx5_is_baser(conf->portmode)) in sparx5_port_init()