Lines Matching refs:sa

44 	struct sfc_adapter *sa = sfc_adapter_by_eth_dev(dev);  in sfc_fw_version_get()  local
57 rc = efx_nic_get_fw_version(sa->nic, &enfi); in sfc_fw_version_get()
94 struct sfc_adapter *sa = sfc_adapter_by_eth_dev(dev); in sfc_dev_infos_get() local
96 struct sfc_mae *mae = &sa->mae; in sfc_dev_infos_get()
99 sfc_log_init(sa, "entry"); in sfc_dev_infos_get()
106 dev_info->max_vfs = sa->sriov.num_vfs; in sfc_dev_infos_get()
110 if (sa->port.phy_adv_cap_mask & (1u << EFX_PHY_CAP_1000FDX)) in sfc_dev_infos_get()
112 if (sa->port.phy_adv_cap_mask & (1u << EFX_PHY_CAP_10000FDX)) in sfc_dev_infos_get()
114 if (sa->port.phy_adv_cap_mask & (1u << EFX_PHY_CAP_25000FDX)) in sfc_dev_infos_get()
116 if (sa->port.phy_adv_cap_mask & (1u << EFX_PHY_CAP_40000FDX)) in sfc_dev_infos_get()
118 if (sa->port.phy_adv_cap_mask & (1u << EFX_PHY_CAP_50000FDX)) in sfc_dev_infos_get()
120 if (sa->port.phy_adv_cap_mask & (1u << EFX_PHY_CAP_100000FDX)) in sfc_dev_infos_get()
123 dev_info->max_rx_queues = sa->rxq_max; in sfc_dev_infos_get()
124 dev_info->max_tx_queues = sa->txq_max; in sfc_dev_infos_get()
129 dev_info->rx_queue_offload_capa = sfc_rx_get_queue_offload_caps(sa); in sfc_dev_infos_get()
136 dev_info->rx_offload_capa = sfc_rx_get_dev_offload_caps(sa) | in sfc_dev_infos_get()
139 dev_info->tx_queue_offload_capa = sfc_tx_get_queue_offload_caps(sa); in sfc_dev_infos_get()
146 dev_info->tx_offload_capa = sfc_tx_get_dev_offload_caps(sa) | in sfc_dev_infos_get()
167 dev_info->rx_desc_lim.nb_max = sa->rxq_max_entries; in sfc_dev_infos_get()
168 dev_info->rx_desc_lim.nb_min = sa->rxq_min_entries; in sfc_dev_infos_get()
172 dev_info->rx_desc_lim.nb_align = sa->rxq_min_entries; in sfc_dev_infos_get()
175 dev_info->tx_desc_lim.nb_max = sa->txq_max_entries; in sfc_dev_infos_get()
176 dev_info->tx_desc_lim.nb_min = sa->txq_min_entries; in sfc_dev_infos_get()
181 dev_info->tx_desc_lim.nb_align = sa->txq_min_entries; in sfc_dev_infos_get()
212 struct sfc_adapter *sa = sfc_adapter_by_eth_dev(dev); in sfc_dev_configure() local
215 sfc_log_init(sa, "entry n_rxq=%u n_txq=%u", in sfc_dev_configure()
218 sfc_adapter_lock(sa); in sfc_dev_configure()
219 switch (sa->state) { in sfc_dev_configure()
223 rc = sfc_configure(sa); in sfc_dev_configure()
226 sfc_err(sa, "unexpected adapter state %u to configure", in sfc_dev_configure()
227 sa->state); in sfc_dev_configure()
231 sfc_adapter_unlock(sa); in sfc_dev_configure()
233 sfc_log_init(sa, "done %d", rc); in sfc_dev_configure()
241 struct sfc_adapter *sa = sfc_adapter_by_eth_dev(dev); in sfc_dev_start() local
244 sfc_log_init(sa, "entry"); in sfc_dev_start()
246 sfc_adapter_lock(sa); in sfc_dev_start()
247 rc = sfc_start(sa); in sfc_dev_start()
248 sfc_adapter_unlock(sa); in sfc_dev_start()
250 sfc_log_init(sa, "done %d", rc); in sfc_dev_start()
258 struct sfc_adapter *sa = sfc_adapter_by_eth_dev(dev); in sfc_dev_link_update() local
262 sfc_log_init(sa, "entry"); in sfc_dev_link_update()
264 if (sa->state != SFC_ADAPTER_STARTED) { in sfc_dev_link_update()
269 if (efx_port_poll(sa->nic, &link_mode) != 0) in sfc_dev_link_update()
274 sfc_ev_mgmt_qpoll(sa); in sfc_dev_link_update()
280 sfc_notice(sa, "Link status is %s", in sfc_dev_link_update()
289 struct sfc_adapter *sa = sfc_adapter_by_eth_dev(dev); in sfc_dev_stop() local
291 sfc_log_init(sa, "entry"); in sfc_dev_stop()
293 sfc_adapter_lock(sa); in sfc_dev_stop()
294 sfc_stop(sa); in sfc_dev_stop()
295 sfc_adapter_unlock(sa); in sfc_dev_stop()
297 sfc_log_init(sa, "done"); in sfc_dev_stop()
305 struct sfc_adapter *sa = sfc_adapter_by_eth_dev(dev); in sfc_dev_set_link_up() local
308 sfc_log_init(sa, "entry"); in sfc_dev_set_link_up()
310 sfc_adapter_lock(sa); in sfc_dev_set_link_up()
311 rc = sfc_start(sa); in sfc_dev_set_link_up()
312 sfc_adapter_unlock(sa); in sfc_dev_set_link_up()
321 struct sfc_adapter *sa = sfc_adapter_by_eth_dev(dev); in sfc_dev_set_link_down() local
323 sfc_log_init(sa, "entry"); in sfc_dev_set_link_down()
325 sfc_adapter_lock(sa); in sfc_dev_set_link_down()
326 sfc_stop(sa); in sfc_dev_set_link_down()
327 sfc_adapter_unlock(sa); in sfc_dev_set_link_down()
342 struct sfc_adapter *sa = sfc_adapter_by_eth_dev(dev); in sfc_dev_close() local
344 sfc_log_init(sa, "entry"); in sfc_dev_close()
351 sfc_adapter_lock(sa); in sfc_dev_close()
352 switch (sa->state) { in sfc_dev_close()
354 sfc_stop(sa); in sfc_dev_close()
355 SFC_ASSERT(sa->state == SFC_ADAPTER_CONFIGURED); in sfc_dev_close()
358 sfc_close(sa); in sfc_dev_close()
359 SFC_ASSERT(sa->state == SFC_ADAPTER_INITIALIZED); in sfc_dev_close()
364 sfc_err(sa, "unexpected adapter state %u on close", sa->state); in sfc_dev_close()
375 sfc_detach(sa); in sfc_dev_close()
376 sfc_unprobe(sa); in sfc_dev_close()
378 sfc_kvargs_cleanup(sa); in sfc_dev_close()
380 sfc_adapter_unlock(sa); in sfc_dev_close()
381 sfc_adapter_lock_fini(sa); in sfc_dev_close()
383 sfc_log_init(sa, "done"); in sfc_dev_close()
386 sa->eth_dev = NULL; in sfc_dev_close()
388 free(sa); in sfc_dev_close()
399 struct sfc_adapter *sa = sfc_adapter_by_eth_dev(dev); in sfc_dev_filter_set() local
404 sfc_adapter_lock(sa); in sfc_dev_filter_set()
406 port = &sa->port; in sfc_dev_filter_set()
412 if (sfc_sa2shared(sa)->isolated) { in sfc_dev_filter_set()
413 sfc_warn(sa, "isolated mode is active on the port"); in sfc_dev_filter_set()
414 sfc_warn(sa, "the change is to be applied on the next " in sfc_dev_filter_set()
417 } else if ((sa->state == SFC_ADAPTER_STARTED) && in sfc_dev_filter_set()
418 ((rc = sfc_set_rx_mode(sa)) != 0)) { in sfc_dev_filter_set()
420 sfc_warn(sa, "Failed to %s %s mode, rc = %d", in sfc_dev_filter_set()
433 sfc_adapter_unlock(sa); in sfc_dev_filter_set()
480 struct sfc_adapter *sa = sfc_adapter_by_eth_dev(dev); in sfc_rx_queue_setup() local
483 sfc_log_init(sa, "RxQ=%u nb_rx_desc=%u socket_id=%u", in sfc_rx_queue_setup()
486 sfc_adapter_lock(sa); in sfc_rx_queue_setup()
488 rc = sfc_rx_qinit(sa, rx_queue_id, nb_rx_desc, socket_id, in sfc_rx_queue_setup()
495 sfc_adapter_unlock(sa); in sfc_rx_queue_setup()
500 sfc_adapter_unlock(sa); in sfc_rx_queue_setup()
510 struct sfc_adapter *sa; in sfc_rx_queue_release() local
517 sa = rxq->evq->sa; in sfc_rx_queue_release()
518 sfc_adapter_lock(sa); in sfc_rx_queue_release()
522 sfc_log_init(sa, "RxQ=%u", sw_index); in sfc_rx_queue_release()
524 sfc_rx_qfini(sa, sw_index); in sfc_rx_queue_release()
526 sfc_adapter_unlock(sa); in sfc_rx_queue_release()
535 struct sfc_adapter *sa = sfc_adapter_by_eth_dev(dev); in sfc_tx_queue_setup() local
538 sfc_log_init(sa, "TxQ = %u, nb_tx_desc = %u, socket_id = %u", in sfc_tx_queue_setup()
541 sfc_adapter_lock(sa); in sfc_tx_queue_setup()
543 rc = sfc_tx_qinit(sa, tx_queue_id, nb_tx_desc, socket_id, tx_conf); in sfc_tx_queue_setup()
549 sfc_adapter_unlock(sa); in sfc_tx_queue_setup()
553 sfc_adapter_unlock(sa); in sfc_tx_queue_setup()
564 struct sfc_adapter *sa; in sfc_tx_queue_release() local
573 sa = txq->evq->sa; in sfc_tx_queue_release()
575 sfc_log_init(sa, "TxQ = %u", sw_index); in sfc_tx_queue_release()
577 sfc_adapter_lock(sa); in sfc_tx_queue_release()
579 sfc_tx_qfini(sa, sw_index); in sfc_tx_queue_release()
581 sfc_adapter_unlock(sa); in sfc_tx_queue_release()
610 struct sfc_adapter *sa = sfc_adapter_by_eth_dev(dev); in sfc_stats_get() local
611 struct sfc_port *port = &sa->port; in sfc_stats_get()
617 ret = sfc_port_update_mac_stats(sa); in sfc_stats_get()
687 struct sfc_adapter *sa = sfc_adapter_by_eth_dev(dev); in sfc_stats_reset() local
688 struct sfc_port *port = &sa->port; in sfc_stats_reset()
691 if (sa->state != SFC_ADAPTER_STARTED) { in sfc_stats_reset()
700 rc = sfc_port_reset_mac_stats(sa); in sfc_stats_reset()
702 sfc_err(sa, "failed to reset statistics (rc = %d)", rc); in sfc_stats_reset()
712 struct sfc_adapter *sa = sfc_adapter_by_eth_dev(dev); in sfc_xstats_get() local
713 struct sfc_port *port = &sa->port; in sfc_xstats_get()
721 rc = sfc_port_update_mac_stats(sa); in sfc_xstats_get()
751 struct sfc_adapter *sa = sfc_adapter_by_eth_dev(dev); in sfc_xstats_get_names() local
752 struct sfc_port *port = &sa->port; in sfc_xstats_get_names()
760 efx_mac_stat_name(sa->nic, i), in sfc_xstats_get_names()
773 struct sfc_adapter *sa = sfc_adapter_by_eth_dev(dev); in sfc_xstats_get_by_id() local
774 struct sfc_port *port = &sa->port; in sfc_xstats_get_by_id()
788 rc = sfc_port_update_mac_stats(sa); in sfc_xstats_get_by_id()
820 struct sfc_adapter *sa = sfc_adapter_by_eth_dev(dev); in sfc_xstats_get_names_by_id() local
821 struct sfc_port *port = &sa->port; in sfc_xstats_get_names_by_id()
837 strlcpy(name, efx_mac_stat_name(sa->nic, i), in sfc_xstats_get_names_by_id()
850 struct sfc_adapter *sa = sfc_adapter_by_eth_dev(dev); in sfc_flow_ctrl_get() local
855 sfc_adapter_lock(sa); in sfc_flow_ctrl_get()
857 if (sa->state == SFC_ADAPTER_STARTED) in sfc_flow_ctrl_get()
858 efx_mac_fcntl_get(sa->nic, &wanted_fc, &link_fc); in sfc_flow_ctrl_get()
860 link_fc = sa->port.flow_ctrl; in sfc_flow_ctrl_get()
876 sfc_err(sa, "%s: unexpected flow control value %#x", in sfc_flow_ctrl_get()
880 fc_conf->autoneg = sa->port.flow_ctrl_autoneg; in sfc_flow_ctrl_get()
882 sfc_adapter_unlock(sa); in sfc_flow_ctrl_get()
890 struct sfc_adapter *sa = sfc_adapter_by_eth_dev(dev); in sfc_flow_ctrl_set() local
891 struct sfc_port *port = &sa->port; in sfc_flow_ctrl_set()
898 sfc_err(sa, "unsupported flow control settings specified"); in sfc_flow_ctrl_set()
921 sfc_adapter_lock(sa); in sfc_flow_ctrl_set()
923 if (sa->state == SFC_ADAPTER_STARTED) { in sfc_flow_ctrl_set()
924 rc = efx_mac_fcntl_set(sa->nic, fcntl, fc_conf->autoneg); in sfc_flow_ctrl_set()
932 sfc_adapter_unlock(sa); in sfc_flow_ctrl_set()
937 sfc_adapter_unlock(sa); in sfc_flow_ctrl_set()
944 sfc_check_scatter_on_all_rx_queues(struct sfc_adapter *sa, size_t pdu) in sfc_check_scatter_on_all_rx_queues() argument
946 struct sfc_adapter_shared * const sas = sfc_sa2shared(sa); in sfc_check_scatter_on_all_rx_queues()
947 const efx_nic_cfg_t *encp = efx_nic_cfg_get(sa->nic); in sfc_check_scatter_on_all_rx_queues()
959 if (!sfc_rx_check_scatter(pdu, sa->rxq_ctrl[i].buf_size, in sfc_check_scatter_on_all_rx_queues()
963 sfc_err(sa, "MTU check for RxQ %u failed: %s", i, in sfc_check_scatter_on_all_rx_queues()
975 struct sfc_adapter *sa = sfc_adapter_by_eth_dev(dev); in sfc_dev_set_mtu() local
980 sfc_log_init(sa, "mtu=%u", mtu); in sfc_dev_set_mtu()
984 sfc_err(sa, "too small MTU %u (PDU size %u less than min %u)", in sfc_dev_set_mtu()
990 sfc_err(sa, "too big MTU %u (PDU size %u greater than max %u)", in sfc_dev_set_mtu()
996 sfc_adapter_lock(sa); in sfc_dev_set_mtu()
998 rc = sfc_check_scatter_on_all_rx_queues(sa, pdu); in sfc_dev_set_mtu()
1002 if (pdu != sa->port.pdu) { in sfc_dev_set_mtu()
1003 if (sa->state == SFC_ADAPTER_STARTED) { in sfc_dev_set_mtu()
1004 sfc_stop(sa); in sfc_dev_set_mtu()
1006 old_pdu = sa->port.pdu; in sfc_dev_set_mtu()
1007 sa->port.pdu = pdu; in sfc_dev_set_mtu()
1008 rc = sfc_start(sa); in sfc_dev_set_mtu()
1012 sa->port.pdu = pdu; in sfc_dev_set_mtu()
1025 dev->data->dev_conf.rxmode.max_rx_pkt_len = sa->port.pdu; in sfc_dev_set_mtu()
1027 sfc_adapter_unlock(sa); in sfc_dev_set_mtu()
1029 sfc_log_init(sa, "done"); in sfc_dev_set_mtu()
1033 sa->port.pdu = old_pdu; in sfc_dev_set_mtu()
1034 if (sfc_start(sa) != 0) in sfc_dev_set_mtu()
1035 sfc_err(sa, "cannot start with neither new (%u) nor old (%u) " in sfc_dev_set_mtu()
1040 sfc_adapter_unlock(sa); in sfc_dev_set_mtu()
1043 sfc_log_init(sa, "failed %d", rc); in sfc_dev_set_mtu()
1050 struct sfc_adapter *sa = sfc_adapter_by_eth_dev(dev); in sfc_mac_addr_set() local
1051 const efx_nic_cfg_t *encp = efx_nic_cfg_get(sa->nic); in sfc_mac_addr_set()
1052 struct sfc_port *port = &sa->port; in sfc_mac_addr_set()
1056 sfc_adapter_lock(sa); in sfc_mac_addr_set()
1074 if (sfc_sa2shared(sa)->isolated) { in sfc_mac_addr_set()
1075 sfc_warn(sa, "isolated mode is active on the port"); in sfc_mac_addr_set()
1076 sfc_warn(sa, "will not set MAC address"); in sfc_mac_addr_set()
1080 if (sa->state != SFC_ADAPTER_STARTED) { in sfc_mac_addr_set()
1081 sfc_notice(sa, "the port is not started"); in sfc_mac_addr_set()
1082 sfc_notice(sa, "the new MAC address will be set on port start"); in sfc_mac_addr_set()
1088 rc = efx_mac_addr_set(sa->nic, mac_addr->addr_bytes); in sfc_mac_addr_set()
1090 sfc_err(sa, "cannot set MAC address (rc = %u)", rc); in sfc_mac_addr_set()
1099 rc = sfc_set_rx_mode_unchecked(sa); in sfc_mac_addr_set()
1101 sfc_err(sa, "cannot set filter (rc = %u)", rc); in sfc_mac_addr_set()
1103 (void)efx_mac_addr_set(sa->nic, old_addr->addr_bytes); in sfc_mac_addr_set()
1104 (void)sfc_set_rx_mode_unchecked(sa); in sfc_mac_addr_set()
1107 sfc_warn(sa, "cannot set MAC address with filters installed"); in sfc_mac_addr_set()
1108 sfc_warn(sa, "adapter will be restarted to pick the new MAC"); in sfc_mac_addr_set()
1109 sfc_warn(sa, "(some traffic may be dropped)"); in sfc_mac_addr_set()
1117 sfc_stop(sa); in sfc_mac_addr_set()
1118 rc = sfc_start(sa); in sfc_mac_addr_set()
1120 sfc_err(sa, "cannot restart adapter (rc = %u)", rc); in sfc_mac_addr_set()
1127 sfc_adapter_unlock(sa); in sfc_mac_addr_set()
1138 struct sfc_adapter *sa = sfc_adapter_by_eth_dev(dev); in sfc_set_mc_addr_list() local
1139 struct sfc_port *port = &sa->port; in sfc_set_mc_addr_list()
1144 if (sfc_sa2shared(sa)->isolated) { in sfc_set_mc_addr_list()
1145 sfc_err(sa, "isolated mode is active on the port"); in sfc_set_mc_addr_list()
1146 sfc_err(sa, "will not set multicast address list"); in sfc_set_mc_addr_list()
1154 sfc_err(sa, "too many multicast addresses: %u > %u", in sfc_set_mc_addr_list()
1167 if (sa->state != SFC_ADAPTER_STARTED) in sfc_set_mc_addr_list()
1170 rc = efx_mac_multicast_list_set(sa->nic, port->mcast_addrs, in sfc_set_mc_addr_list()
1173 sfc_err(sa, "cannot set multicast address list (rc = %u)", rc); in sfc_set_mc_addr_list()
1298 struct sfc_adapter *sa = sfc_adapter_by_eth_dev(dev); in sfc_rx_queue_start() local
1301 sfc_log_init(sa, "RxQ=%u", rx_queue_id); in sfc_rx_queue_start()
1303 sfc_adapter_lock(sa); in sfc_rx_queue_start()
1306 if (sa->state != SFC_ADAPTER_STARTED) in sfc_rx_queue_start()
1312 rc = sfc_rx_qstart(sa, rx_queue_id); in sfc_rx_queue_start()
1318 sfc_adapter_unlock(sa); in sfc_rx_queue_start()
1325 sfc_adapter_unlock(sa); in sfc_rx_queue_start()
1334 struct sfc_adapter *sa = sfc_adapter_by_eth_dev(dev); in sfc_rx_queue_stop() local
1336 sfc_log_init(sa, "RxQ=%u", rx_queue_id); in sfc_rx_queue_stop()
1338 sfc_adapter_lock(sa); in sfc_rx_queue_stop()
1339 sfc_rx_qstop(sa, rx_queue_id); in sfc_rx_queue_stop()
1343 sfc_adapter_unlock(sa); in sfc_rx_queue_stop()
1352 struct sfc_adapter *sa = sfc_adapter_by_eth_dev(dev); in sfc_tx_queue_start() local
1355 sfc_log_init(sa, "TxQ = %u", tx_queue_id); in sfc_tx_queue_start()
1357 sfc_adapter_lock(sa); in sfc_tx_queue_start()
1360 if (sa->state != SFC_ADAPTER_STARTED) in sfc_tx_queue_start()
1366 rc = sfc_tx_qstart(sa, tx_queue_id); in sfc_tx_queue_start()
1372 sfc_adapter_unlock(sa); in sfc_tx_queue_start()
1379 sfc_adapter_unlock(sa); in sfc_tx_queue_start()
1388 struct sfc_adapter *sa = sfc_adapter_by_eth_dev(dev); in sfc_tx_queue_stop() local
1390 sfc_log_init(sa, "TxQ = %u", tx_queue_id); in sfc_tx_queue_stop()
1392 sfc_adapter_lock(sa); in sfc_tx_queue_stop()
1394 sfc_tx_qstop(sa, tx_queue_id); in sfc_tx_queue_stop()
1398 sfc_adapter_unlock(sa); in sfc_tx_queue_stop()
1425 struct sfc_adapter *sa = sfc_adapter_by_eth_dev(dev); in sfc_dev_udp_tunnel_op() local
1429 sfc_log_init(sa, "%s udp_port=%u prot_type=%u", in sfc_dev_udp_tunnel_op()
1441 sfc_adapter_lock(sa); in sfc_dev_udp_tunnel_op()
1445 rc = efx_tunnel_config_udp_add(sa->nic, in sfc_dev_udp_tunnel_op()
1450 rc = efx_tunnel_config_udp_remove(sa->nic, in sfc_dev_udp_tunnel_op()
1462 if (sa->state == SFC_ADAPTER_STARTED) { in sfc_dev_udp_tunnel_op()
1463 rc = efx_tunnel_reconfigure(sa->nic); in sfc_dev_udp_tunnel_op()
1478 sfc_adapter_unlock(sa); in sfc_dev_udp_tunnel_op()
1485 (void)efx_tunnel_config_udp_remove(sa->nic, in sfc_dev_udp_tunnel_op()
1490 (void)efx_tunnel_config_udp_add(sa->nic, in sfc_dev_udp_tunnel_op()
1498 sfc_adapter_unlock(sa); in sfc_dev_udp_tunnel_op()
1551 struct sfc_adapter *sa = sfc_adapter_by_eth_dev(dev); in sfc_dev_rss_hash_update() local
1552 struct sfc_rss *rss = &sfc_sa2shared(sa)->rss; in sfc_dev_rss_hash_update()
1563 if (sfc_sa2shared(sa)->isolated) in sfc_dev_rss_hash_update()
1567 sfc_err(sa, "RSS is not available"); in sfc_dev_rss_hash_update()
1572 sfc_err(sa, "RSS is not configured"); in sfc_dev_rss_hash_update()
1578 sfc_err(sa, "RSS key size is wrong (should be %zu)", in sfc_dev_rss_hash_update()
1583 sfc_adapter_lock(sa); in sfc_dev_rss_hash_update()
1585 rc = sfc_rx_hf_rte_to_efx(sa, rss_conf->rss_hf, &efx_hash_types); in sfc_dev_rss_hash_update()
1590 rc = efx_rx_scale_mode_set(sa->nic, contexts[mode_i], in sfc_dev_rss_hash_update()
1598 if (sa->state == SFC_ADAPTER_STARTED) { in sfc_dev_rss_hash_update()
1600 rc = efx_rx_scale_key_set(sa->nic, in sfc_dev_rss_hash_update()
1614 sfc_adapter_unlock(sa); in sfc_dev_rss_hash_update()
1620 if (efx_rx_scale_key_set(sa->nic, contexts[i], rss->key, in sfc_dev_rss_hash_update()
1622 sfc_err(sa, "failed to restore RSS key"); in sfc_dev_rss_hash_update()
1627 if (efx_rx_scale_mode_set(sa->nic, contexts[i], in sfc_dev_rss_hash_update()
1630 sfc_err(sa, "failed to restore RSS mode"); in sfc_dev_rss_hash_update()
1634 sfc_adapter_unlock(sa); in sfc_dev_rss_hash_update()
1676 struct sfc_adapter *sa = sfc_adapter_by_eth_dev(dev); in sfc_dev_rss_reta_update() local
1677 struct sfc_rss *rss = &sfc_sa2shared(sa)->rss; in sfc_dev_rss_reta_update()
1683 if (sfc_sa2shared(sa)->isolated) in sfc_dev_rss_reta_update()
1687 sfc_err(sa, "RSS is not available"); in sfc_dev_rss_reta_update()
1692 sfc_err(sa, "RSS is not configured"); in sfc_dev_rss_reta_update()
1697 sfc_err(sa, "RETA size is wrong (should be %u)", in sfc_dev_rss_reta_update()
1706 sfc_adapter_lock(sa); in sfc_dev_rss_reta_update()
1725 if (sa->state == SFC_ADAPTER_STARTED) { in sfc_dev_rss_reta_update()
1726 rc = efx_rx_scale_tbl_set(sa->nic, EFX_RSS_CONTEXT_DEFAULT, in sfc_dev_rss_reta_update()
1736 sfc_adapter_unlock(sa); in sfc_dev_rss_reta_update()
1749 struct sfc_adapter *sa = sfc_adapter_by_eth_dev(dev); in sfc_dev_filter_ctrl() local
1752 sfc_log_init(sa, "entry"); in sfc_dev_filter_ctrl()
1764 sfc_err(sa, "Unknown filter type %u", filter_type); in sfc_dev_filter_ctrl()
1768 sfc_log_init(sa, "exit: %d", -rc); in sfc_dev_filter_ctrl()
1889 struct sfc_adapter *sa = sfc_adapter_by_eth_dev(dev); in sfc_eth_dev_set_ops() local
1899 switch (sa->family) { in sfc_eth_dev_set_ops()
1914 encp = efx_nic_cfg_get(sa->nic); in sfc_eth_dev_set_ops()
1918 rc = sfc_kvargs_process(sa, SFC_KVARG_RX_DATAPATH, in sfc_eth_dev_set_ops()
1926 sfc_err(sa, "Rx datapath %s not found", rx_name); in sfc_eth_dev_set_ops()
1931 sfc_err(sa, in sfc_eth_dev_set_ops()
1940 sfc_err(sa, "Rx datapath by caps %#x not found", in sfc_eth_dev_set_ops()
1953 sfc_notice(sa, "use %s Rx datapath", sas->dp_rx_name); in sfc_eth_dev_set_ops()
1955 rc = sfc_kvargs_process(sa, SFC_KVARG_TX_DATAPATH, in sfc_eth_dev_set_ops()
1963 sfc_err(sa, "Tx datapath %s not found", tx_name); in sfc_eth_dev_set_ops()
1968 sfc_err(sa, in sfc_eth_dev_set_ops()
1977 sfc_err(sa, "Tx datapath by caps %#x not found", in sfc_eth_dev_set_ops()
1990 sfc_notice(sa, "use %s Tx datapath", sas->dp_tx_name); in sfc_eth_dev_set_ops()
1992 sa->priv.dp_rx = dp_rx; in sfc_eth_dev_set_ops()
1993 sa->priv.dp_tx = dp_tx; in sfc_eth_dev_set_ops()
2024 struct sfc_adapter *sa = sfc_adapter_by_eth_dev(dev); in sfc_eth_dev_clear_ops() local
2034 sa->priv.dp_tx = NULL; in sfc_eth_dev_clear_ops()
2038 sa->priv.dp_rx = NULL; in sfc_eth_dev_clear_ops()
2149 struct sfc_adapter *sa; in sfc_eth_dev_init() local
2184 sa = calloc(1, sizeof(*sa)); in sfc_eth_dev_init()
2185 if (sa == NULL) { in sfc_eth_dev_init()
2190 dev->process_private = sa; in sfc_eth_dev_init()
2193 sa->priv.shared = sas; in sfc_eth_dev_init()
2194 sa->priv.logtype_main = logtype_main; in sfc_eth_dev_init()
2196 sa->eth_dev = dev; in sfc_eth_dev_init()
2203 rc = sfc_kvargs_parse(sa); in sfc_eth_dev_init()
2207 sfc_log_init(sa, "entry"); in sfc_eth_dev_init()
2215 sfc_adapter_lock_init(sa); in sfc_eth_dev_init()
2216 sfc_adapter_lock(sa); in sfc_eth_dev_init()
2218 sfc_log_init(sa, "probing"); in sfc_eth_dev_init()
2219 rc = sfc_probe(sa); in sfc_eth_dev_init()
2223 sfc_log_init(sa, "set device ops"); in sfc_eth_dev_init()
2228 sfc_log_init(sa, "attaching"); in sfc_eth_dev_init()
2229 rc = sfc_attach(sa); in sfc_eth_dev_init()
2233 encp = efx_nic_cfg_get(sa->nic); in sfc_eth_dev_init()
2242 sfc_adapter_unlock(sa); in sfc_eth_dev_init()
2244 sfc_log_init(sa, "done"); in sfc_eth_dev_init()
2251 sfc_unprobe(sa); in sfc_eth_dev_init()
2254 sfc_adapter_unlock(sa); in sfc_eth_dev_init()
2255 sfc_adapter_lock_fini(sa); in sfc_eth_dev_init()
2260 sfc_kvargs_cleanup(sa); in sfc_eth_dev_init()
2263 sfc_log_init(sa, "failed %d", rc); in sfc_eth_dev_init()
2265 free(sa); in sfc_eth_dev_init()