Lines Matching refs:efx

18 #include "efx.h"
175 struct efx_nic *efx = netdev_priv(net_dev);
192 efx->type->set_id_led(efx, mode);
200 struct efx_nic *efx = netdev_priv(net_dev);
201 struct efx_link_state *link_state = &efx->link_state;
203 mutex_lock(&efx->mac_lock);
204 efx->phy_op->get_settings(efx, ecmd);
205 mutex_unlock(&efx->mac_lock);
212 if (LOOPBACK_INTERNAL(efx)) {
224 struct efx_nic *efx = netdev_priv(net_dev);
230 netif_dbg(efx, drv, efx->net_dev,
235 mutex_lock(&efx->mac_lock);
236 rc = efx->phy_op->set_settings(efx, ecmd);
237 mutex_unlock(&efx->mac_lock);
244 struct efx_nic *efx = netdev_priv(net_dev);
248 if (efx_nic_rev(efx) >= EFX_REV_SIENA_A0)
249 efx_mcdi_print_fwver(efx, info->fw_version,
251 strlcpy(info->bus_info, pci_name(efx->pci_dev), sizeof(info->bus_info));
262 struct efx_nic *efx = netdev_priv(net_dev);
264 regs->version = efx->type->revision;
265 efx_nic_get_regs(efx, buf);
270 struct efx_nic *efx = netdev_priv(net_dev);
271 return efx->msg_enable;
276 struct efx_nic *efx = netdev_priv(net_dev);
277 efx->msg_enable = msg_enable;
327 * @efx: Efx NIC
334 static int efx_fill_loopback_test(struct efx_nic *efx,
340 struct efx_channel *channel = efx_get_channel(efx, 0);
367 * @efx: Efx NIC
372 static int efx_ethtool_fill_self_tests(struct efx_nic *efx,
389 efx_for_each_channel(channel, efx) {
403 if (efx->phy_op->run_tests != NULL) {
404 EFX_BUG_ON_PARANOID(efx->phy_op->test_name == NULL);
410 name = efx->phy_op->test_name(efx, i);
421 if (!(efx->loopback_modes & (1 << mode)))
423 n = efx_fill_loopback_test(efx,
448 struct efx_nic *efx = netdev_priv(net_dev);
461 efx_ethtool_fill_self_tests(efx, NULL,
474 struct efx_nic *efx = netdev_priv(net_dev);
475 struct efx_mac_stats *mac_stats = &efx->mac_stats;
483 spin_lock_bh(&efx->stats_lock);
486 efx->type->update_stats(efx);
497 data[i] = stat->get_stat((void *)efx + stat->offset);
501 efx_for_each_channel(channel, efx)
507 efx_for_each_channel(channel, efx) {
517 spin_unlock_bh(&efx->stats_lock);
523 struct efx_nic *efx = netdev_priv(net_dev);
534 if (efx->state != STATE_RUNNING) {
539 netif_info(efx, drv, efx->net_dev, "starting %sline testing\n",
543 already_up = (efx->net_dev->flags & IFF_UP);
545 rc = dev_open(efx->net_dev);
547 netif_err(efx, drv, efx->net_dev,
553 rc = efx_selftest(efx, efx_tests, test->flags);
556 dev_close(efx->net_dev);
558 netif_info(efx, drv, efx->net_dev, "%s %sline self-tests\n",
564 efx_ethtool_fill_self_tests(efx, efx_tests, NULL, data);
574 struct efx_nic *efx = netdev_priv(net_dev);
576 return mdio45_nway_restart(&efx->mdio);
611 struct efx_nic *efx = netdev_priv(net_dev);
615 efx_get_irq_moderation(efx, &tx_usecs, &rx_usecs, &rx_adaptive);
629 struct efx_nic *efx = netdev_priv(net_dev);
638 efx_get_irq_moderation(efx, &tx_usecs, &rx_usecs, &adaptive);
657 rc = efx_init_irq_moderation(efx, tx_usecs, rx_usecs, adaptive,
662 efx_for_each_channel(channel, efx)
663 efx->type->push_irq_moderation(channel);
671 struct efx_nic *efx = netdev_priv(net_dev);
675 ring->rx_pending = efx->rxq_entries;
676 ring->tx_pending = efx->txq_entries;
682 struct efx_nic *efx = netdev_priv(net_dev);
691 netif_err(efx, drv, efx->net_dev,
697 return efx_realloc_channels(efx, ring->rx_pending, ring->tx_pending);
703 struct efx_nic *efx = netdev_priv(net_dev);
709 mutex_lock(&efx->mac_lock);
716 netif_dbg(efx, drv, efx->net_dev,
722 if ((wanted_fc & EFX_FC_AUTO) && !efx->link_advertising) {
723 netif_dbg(efx, drv, efx->net_dev,
734 reset = (wanted_fc & EFX_FC_TX) && !(efx->wanted_fc & EFX_FC_TX);
735 if (EFX_WORKAROUND_11482(efx) && reset) {
736 if (efx_nic_rev(efx) == EFX_REV_FALCON_B0) {
738 falcon_stop_nic_stats(efx);
739 falcon_drain_tx_fifo(efx);
740 falcon_reconfigure_xmac(efx);
741 falcon_start_nic_stats(efx);
744 efx_schedule_reset(efx, RESET_TYPE_INVISIBLE);
748 old_adv = efx->link_advertising;
749 old_fc = efx->wanted_fc;
750 efx_link_set_wanted_fc(efx, wanted_fc);
751 if (efx->link_advertising != old_adv ||
752 (efx->wanted_fc ^ old_fc) & EFX_FC_AUTO) {
753 rc = efx->phy_op->reconfigure(efx);
755 netif_err(efx, drv, efx->net_dev,
765 efx->type->reconfigure_mac(efx);
768 mutex_unlock(&efx->mac_lock);
776 struct efx_nic *efx = netdev_priv(net_dev);
778 pause->rx_pause = !!(efx->wanted_fc & EFX_FC_RX);
779 pause->tx_pause = !!(efx->wanted_fc & EFX_FC_TX);
780 pause->autoneg = !!(efx->wanted_fc & EFX_FC_AUTO);
787 struct efx_nic *efx = netdev_priv(net_dev);
788 return efx->type->get_wol(efx, wol);
795 struct efx_nic *efx = netdev_priv(net_dev);
796 return efx->type->set_wol(efx, wol->wolopts);
801 struct efx_nic *efx = netdev_priv(net_dev);
804 rc = efx->type->map_reset_flags(flags);
808 return efx_reset(efx, rc);
814 static int efx_ethtool_get_class_rule(struct efx_nic *efx,
826 rc = efx_filter_get_filter_safe(efx, EFX_FILTER_PRI_MANUAL,
876 struct efx_nic *efx = netdev_priv(net_dev);
880 info->data = efx->n_rx_channels;
911 if (efx_nic_rev(efx) < min_revision)
917 info->data = efx_filter_get_rx_id_limit(efx);
922 efx_filter_count_rx_used(efx, EFX_FILTER_PRI_MANUAL);
926 if (efx_filter_get_rx_id_limit(efx) == 0)
928 return efx_ethtool_get_class_rule(efx, &info->fs);
932 info->data = efx_filter_get_rx_id_limit(efx);
935 rc = efx_filter_get_rx_ids(efx, EFX_FILTER_PRI_MANUAL,
948 static int efx_ethtool_set_class_rule(struct efx_nic *efx,
965 if (rule->ring_cookie >= efx->n_rx_channels &&
1055 rc = efx_filter_insert_filter(efx, &spec, true);
1066 struct efx_nic *efx = netdev_priv(net_dev);
1068 if (efx_filter_get_rx_id_limit(efx) == 0)
1073 return efx_ethtool_set_class_rule(efx, &info->fs);
1076 return efx_filter_remove_id_safe(efx, EFX_FILTER_PRI_MANUAL,
1086 struct efx_nic *efx = netdev_priv(net_dev);
1088 return ((efx_nic_rev(efx) < EFX_REV_FALCON_B0 ||
1089 efx->n_rx_channels == 1) ?
1090 0 : ARRAY_SIZE(efx->rx_indir_table));
1095 struct efx_nic *efx = netdev_priv(net_dev);
1097 memcpy(indir, efx->rx_indir_table, sizeof(efx->rx_indir_table));
1104 struct efx_nic *efx = netdev_priv(net_dev);
1106 memcpy(efx->rx_indir_table, indir, sizeof(efx->rx_indir_table));
1107 efx_nic_push_rx_indir_table(efx);