Symbol: nic
arch/mips/include/asm/sn/klconfig.h
492
nic_t nic; /* MUst be aligned properly */
drivers/clk/meson/a1-peripherals.c
1891
static A1_PCLK(nic, SYS_CLK_EN1, 1, CLK_IGNORE_UNUSED);
drivers/firmware/iscsi_ibft.c
175
struct ibft_nic *nic;
drivers/firmware/iscsi_ibft.c
294
struct ibft_nic *nic = entry->nic;
drivers/firmware/iscsi_ibft.c
299
if (!nic)
drivers/firmware/iscsi_ibft.c
304
str += sprintf(str, "%d\n", nic->hdr.index);
drivers/firmware/iscsi_ibft.c
307
str += sprintf(str, "%d\n", nic->hdr.flags);
drivers/firmware/iscsi_ibft.c
310
str += sprintf_ipaddr(str, nic->ip_addr);
drivers/firmware/iscsi_ibft.c
313
if (nic->subnet_mask_prefix > 32)
drivers/firmware/iscsi_ibft.c
316
val = cpu_to_be32(~((1 << (32-nic->subnet_mask_prefix))-1));
drivers/firmware/iscsi_ibft.c
320
str += sprintf(str, "%d\n", nic->subnet_mask_prefix);
drivers/firmware/iscsi_ibft.c
323
str += sprintf(str, "%d\n", nic->origin);
drivers/firmware/iscsi_ibft.c
326
str += sprintf_ipaddr(str, nic->gateway);
drivers/firmware/iscsi_ibft.c
329
str += sprintf_ipaddr(str, nic->primary_dns);
drivers/firmware/iscsi_ibft.c
332
str += sprintf_ipaddr(str, nic->secondary_dns);
drivers/firmware/iscsi_ibft.c
335
str += sprintf_ipaddr(str, nic->dhcp);
drivers/firmware/iscsi_ibft.c
338
str += sprintf(str, "%d\n", nic->vlan);
drivers/firmware/iscsi_ibft.c
341
str += sprintf(str, "%pM\n", nic->mac);
drivers/firmware/iscsi_ibft.c
344
str += sprintf_string(str, nic->hostname_len,
drivers/firmware/iscsi_ibft.c
345
(char *)ibft_loc + nic->hostname_off);
drivers/firmware/iscsi_ibft.c
476
struct ibft_nic *nic = entry->nic;
drivers/firmware/iscsi_ibft.c
485
if (address_not_null(nic->ip_addr))
drivers/firmware/iscsi_ibft.c
490
if (nic->subnet_mask_prefix)
drivers/firmware/iscsi_ibft.c
497
if (address_not_null(nic->gateway))
drivers/firmware/iscsi_ibft.c
501
if (address_not_null(nic->primary_dns))
drivers/firmware/iscsi_ibft.c
505
if (address_not_null(nic->secondary_dns))
drivers/firmware/iscsi_ibft.c
509
if (address_not_null(nic->dhcp))
drivers/firmware/iscsi_ibft.c
517
if (nic->hostname_off)
drivers/firmware/iscsi_ibft.c
633
struct ibft_nic *nic = (struct ibft_nic *)hdr;
drivers/firmware/iscsi_ibft.c
663
sizeof(*ibft_kobj->nic));
drivers/firmware/iscsi_ibft.c
721
(nic->pci_bdf & 0xff00) >> 8,
drivers/firmware/iscsi_ibft.c
722
(nic->pci_bdf & 0xff));
drivers/net/ethernet/aquantia/atlantic/aq_drvinfo.c
90
const struct aq_nic_s *nic = data;
drivers/net/ethernet/aquantia/atlantic/aq_drvinfo.c
95
if (channel == 0 && !nic->aq_fw_ops->get_phy_temp)
drivers/net/ethernet/aquantia/atlantic/aq_drvinfo.c
97
else if (channel == 1 && !nic->aq_fw_ops->get_mac_temp &&
drivers/net/ethernet/aquantia/atlantic/aq_drvinfo.c
98
!nic->aq_hw_ops->hw_get_mac_temp)
drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c
187
struct aq_nic_s *nic = netdev_priv(ndev);
drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c
188
struct aq_nic_cfg_s *cfg = aq_nic_get_cfg(nic);
drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c
193
n_stats += rx_stat_cnt * aq_ptp_get_ring_cnt(nic, ATL_RING_RX) +
drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c
194
tx_stat_cnt * aq_ptp_get_ring_cnt(nic, ATL_RING_TX);
drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c
198
if (nic->macsec_cfg) {
drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c
201
aq_macsec_tx_sc_cnt(nic) +
drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c
203
aq_macsec_tx_sa_cnt(nic) +
drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c
205
aq_macsec_rx_sa_cnt(nic);
drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c
255
struct aq_nic_s *nic = netdev_priv(ndev);
drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c
263
cfg = aq_nic_get_cfg(nic);
drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c
297
if (nic->aq_ptp) {
drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c
298
const int rx_ring_cnt = aq_ptp_get_ring_cnt(nic, ATL_RING_RX);
drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c
299
const int tx_ring_cnt = aq_ptp_get_ring_cnt(nic, ATL_RING_TX);
drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c
301
aq_ptp_ring_idx(nic->aq_nic_cfg.tc_mode);
drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c
324
if (!nic->macsec_cfg)
drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c
332
if (!(test_bit(i, &nic->macsec_cfg->txsc_idx_busy)))
drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c
341
aq_txsc = &nic->macsec_cfg->aq_txsc[i];
drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c
357
if (!(test_bit(i, &nic->macsec_cfg->rxsc_idx_busy)))
drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c
360
aq_rxsc = &nic->macsec_cfg->aq_rxsc[i];
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1003
struct aq_nic_s *nic = macsec_netdev_priv(ctx->netdev);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1004
struct aq_macsec_common_stats *stats = &nic->macsec_cfg->stats;
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1005
struct aq_hw_s *hw = nic->aq_hw;
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1023
struct aq_nic_s *nic = macsec_netdev_priv(ctx->netdev);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1025
struct aq_hw_s *hw = nic->aq_hw;
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1029
txsc_idx = aq_get_txsc_idx_from_secy(nic->macsec_cfg, ctx->secy);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1033
aq_txsc = &nic->macsec_cfg->aq_txsc[txsc_idx];
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1047
struct aq_nic_s *nic = macsec_netdev_priv(ctx->netdev);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1048
struct aq_macsec_cfg *cfg = nic->macsec_cfg;
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1050
struct aq_hw_s *hw = nic->aq_hw;
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1087
struct aq_nic_s *nic = macsec_netdev_priv(ctx->netdev);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1088
struct aq_macsec_cfg *cfg = nic->macsec_cfg;
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1090
struct aq_hw_s *hw = nic->aq_hw;
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1132
struct aq_nic_s *nic = macsec_netdev_priv(ctx->netdev);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1133
struct aq_macsec_cfg *cfg = nic->macsec_cfg;
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1135
struct aq_hw_s *hw = nic->aq_hw;
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1171
static int apply_txsc_cfg(struct aq_nic_s *nic, const int txsc_idx)
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1173
struct aq_macsec_txsc *aq_txsc = &nic->macsec_cfg->aq_txsc[txsc_idx];
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1182
ret = aq_set_txsc(nic, txsc_idx);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1189
ret = aq_update_txsa(nic, aq_txsc->hw_sc_idx, secy,
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1199
static int apply_rxsc_cfg(struct aq_nic_s *nic, const int rxsc_idx)
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1201
struct aq_macsec_rxsc *aq_rxsc = &nic->macsec_cfg->aq_rxsc[rxsc_idx];
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1210
ret = aq_set_rxsc(nic, rxsc_idx);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1217
ret = aq_update_rxsa(nic, aq_rxsc->hw_sc_idx, secy,
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1227
static int aq_clear_secy(struct aq_nic_s *nic, const struct macsec_secy *secy,
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1235
txsc_idx = aq_get_txsc_idx_from_secy(nic->macsec_cfg, secy);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1237
ret = aq_clear_txsc(nic, txsc_idx, clear_type);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1244
rxsc_idx = aq_get_rxsc_idx_from_rxsc(nic->macsec_cfg, rx_sc);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1248
ret = aq_clear_rxsc(nic, rxsc_idx, clear_type);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1256
static int aq_apply_secy_cfg(struct aq_nic_s *nic,
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1264
txsc_idx = aq_get_txsc_idx_from_secy(nic->macsec_cfg, secy);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1266
apply_txsc_cfg(nic, txsc_idx);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1270
rxsc_idx = aq_get_rxsc_idx_from_rxsc(nic->macsec_cfg, rx_sc);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1274
ret = apply_rxsc_cfg(nic, rxsc_idx);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1282
static int aq_apply_macsec_cfg(struct aq_nic_s *nic)
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1288
if (nic->macsec_cfg->txsc_idx_busy & BIT(i)) {
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1289
ret = apply_txsc_cfg(nic, i);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1296
if (nic->macsec_cfg->rxsc_idx_busy & BIT(i)) {
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1297
ret = apply_rxsc_cfg(nic, i);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1337
static void aq_check_txsa_expiration(struct aq_nic_s *nic)
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1340
struct aq_macsec_cfg *cfg = nic->macsec_cfg;
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1341
struct aq_hw_s *hw = nic->aq_hw;
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1370
netdev_warn(nic->ndev,
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1377
netdev_warn(nic->ndev,
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1383
netdev_warn(nic->ndev,
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1402
struct aq_nic_s *nic = macsec_netdev_priv(ctx->netdev); \
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1404
mutex_lock(&nic->macsec_mutex); \
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1406
mutex_unlock(&nic->macsec_mutex); \
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1452
int aq_macsec_init(struct aq_nic_s *nic)
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1457
if (!nic->aq_fw_ops->get_link_capabilities)
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1460
caps_lo = nic->aq_fw_ops->get_link_capabilities(nic->aq_hw);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1465
nic->macsec_cfg = kzalloc_obj(*cfg);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1466
if (!nic->macsec_cfg)
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1469
nic->ndev->features |= NETIF_F_HW_MACSEC;
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1470
nic->ndev->macsec_ops = &aq_macsec_ops;
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1471
mutex_init(&nic->macsec_mutex);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1476
void aq_macsec_free(struct aq_nic_s *nic)
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1478
kfree(nic->macsec_cfg);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1479
nic->macsec_cfg = NULL;
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1482
int aq_macsec_enable(struct aq_nic_s *nic)
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1487
struct aq_hw_s *hw = nic->aq_hw;
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1492
if (!nic->macsec_cfg)
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1495
mutex_lock(&nic->macsec_mutex);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1497
if (nic->aq_fw_ops->send_macsec_req) {
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1508
ret = nic->aq_fw_ops->send_macsec_req(hw, &msg, &resp);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1541
ret = aq_apply_macsec_cfg(nic);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1544
mutex_unlock(&nic->macsec_mutex);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1548
void aq_macsec_work(struct aq_nic_s *nic)
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1550
if (!nic->macsec_cfg)
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1553
if (!netif_carrier_ok(nic->ndev))
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1556
mutex_lock(&nic->macsec_mutex);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1557
aq_check_txsa_expiration(nic);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1558
mutex_unlock(&nic->macsec_mutex);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1561
int aq_macsec_rx_sa_cnt(struct aq_nic_s *nic)
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1563
struct aq_macsec_cfg *cfg = nic->macsec_cfg;
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1569
mutex_lock(&nic->macsec_mutex);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1577
mutex_unlock(&nic->macsec_mutex);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1581
int aq_macsec_tx_sc_cnt(struct aq_nic_s *nic)
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1585
if (!nic->macsec_cfg)
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1588
mutex_lock(&nic->macsec_mutex);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1589
cnt = hweight_long(nic->macsec_cfg->txsc_idx_busy);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1590
mutex_unlock(&nic->macsec_mutex);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1595
int aq_macsec_tx_sa_cnt(struct aq_nic_s *nic)
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1597
struct aq_macsec_cfg *cfg = nic->macsec_cfg;
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1603
mutex_lock(&nic->macsec_mutex);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1611
mutex_unlock(&nic->macsec_mutex);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1615
static int aq_macsec_update_stats(struct aq_nic_s *nic)
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1617
struct aq_macsec_cfg *cfg = nic->macsec_cfg;
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1618
struct aq_hw_s *hw = nic->aq_hw;
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1667
u64 *aq_macsec_get_stats(struct aq_nic_s *nic, u64 *data)
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1669
struct aq_macsec_cfg *cfg = nic->macsec_cfg;
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1683
mutex_lock(&nic->macsec_mutex);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1685
aq_macsec_update_stats(nic);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
1767
mutex_unlock(&nic->macsec_mutex);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
24
static int aq_clear_txsc(struct aq_nic_s *nic, const int txsc_idx,
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
26
static int aq_clear_txsa(struct aq_nic_s *nic, struct aq_macsec_txsc *aq_txsc,
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
28
static int aq_clear_rxsc(struct aq_nic_s *nic, const int rxsc_idx,
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
292
struct aq_nic_s *nic = macsec_netdev_priv(ctx->netdev);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
295
if (netif_carrier_ok(nic->ndev))
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
296
ret = aq_apply_secy_cfg(nic, ctx->secy);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
30
static int aq_clear_rxsa(struct aq_nic_s *nic, struct aq_macsec_rxsc *aq_rxsc,
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
303
struct aq_nic_s *nic = macsec_netdev_priv(ctx->netdev);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
307
if (nic->macsec_cfg->txsc_idx_busy & BIT(i))
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
308
aq_clear_secy(nic, nic->macsec_cfg->aq_txsc[i].sw_secy,
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
315
static int aq_set_txsc(struct aq_nic_s *nic, const int txsc_idx)
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
317
struct aq_macsec_txsc *aq_txsc = &nic->macsec_cfg->aq_txsc[txsc_idx];
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
32
static int aq_clear_secy(struct aq_nic_s *nic, const struct macsec_secy *secy,
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
322
struct aq_hw_s *hw = nic->aq_hw;
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
337
tx_class_rec.sc_sa = nic->macsec_cfg->sc_sa;
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
34
static int aq_apply_macsec_cfg(struct aq_nic_s *nic);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
35
static int aq_apply_secy_cfg(struct aq_nic_s *nic,
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
442
struct aq_nic_s *nic = macsec_netdev_priv(ctx->netdev);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
443
struct aq_macsec_cfg *cfg = nic->macsec_cfg;
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
467
if (netif_carrier_ok(nic->ndev) && netif_running(secy->netdev))
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
468
ret = aq_set_txsc(nic, txsc_idx);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
477
struct aq_nic_s *nic = macsec_netdev_priv(ctx->netdev);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
482
txsc_idx = aq_get_txsc_idx_from_secy(nic->macsec_cfg, secy);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
486
if (netif_carrier_ok(nic->ndev) && netif_running(secy->netdev))
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
487
ret = aq_set_txsc(nic, txsc_idx);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
492
static int aq_clear_txsc(struct aq_nic_s *nic, const int txsc_idx,
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
495
struct aq_macsec_txsc *tx_sc = &nic->macsec_cfg->aq_txsc[txsc_idx];
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
498
struct aq_hw_s *hw = nic->aq_hw;
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
503
ret = aq_clear_txsa(nic, tx_sc, sa_num, clear_type);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
522
clear_bit(txsc_idx, &nic->macsec_cfg->txsc_idx_busy);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
523
nic->macsec_cfg->aq_txsc[txsc_idx].sw_secy = NULL;
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
531
struct aq_nic_s *nic = macsec_netdev_priv(ctx->netdev);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
534
if (!nic->macsec_cfg)
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
537
ret = aq_clear_secy(nic, ctx->secy, AQ_CLEAR_ALL);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
542
static int aq_update_txsa(struct aq_nic_s *nic, const unsigned int sc_idx,
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
551
struct aq_hw_s *hw = nic->aq_hw;
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
579
struct aq_nic_s *nic = macsec_netdev_priv(ctx->netdev);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
580
struct aq_macsec_cfg *cfg = nic->macsec_cfg;
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
596
if (netif_carrier_ok(nic->ndev) && netif_running(secy->netdev))
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
597
ret = aq_update_txsa(nic, aq_txsc->hw_sc_idx, secy,
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
606
struct aq_nic_s *nic = macsec_netdev_priv(ctx->netdev);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
607
struct aq_macsec_cfg *cfg = nic->macsec_cfg;
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
618
if (netif_carrier_ok(nic->ndev) && netif_running(secy->netdev))
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
619
ret = aq_update_txsa(nic, aq_txsc->hw_sc_idx, secy,
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
625
static int aq_clear_txsa(struct aq_nic_s *nic, struct aq_macsec_txsc *aq_txsc,
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
629
struct aq_hw_s *hw = nic->aq_hw;
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
635
if ((clear_type & AQ_CLEAR_HW) && netif_carrier_ok(nic->ndev)) {
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
655
struct aq_nic_s *nic = macsec_netdev_priv(ctx->netdev);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
656
struct aq_macsec_cfg *cfg = nic->macsec_cfg;
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
664
ret = aq_clear_txsa(nic, &cfg->aq_txsc[txsc_idx], ctx->sa.assoc_num,
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
686
static int aq_set_rxsc(struct aq_nic_s *nic, const u32 rxsc_idx)
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
689
&nic->macsec_cfg->aq_rxsc[rxsc_idx];
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
695
struct aq_hw_s *hw = nic->aq_hw;
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
708
pre_class_record.an_mask = nic->macsec_cfg->sc_sa;
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
747
struct aq_nic_s *nic = macsec_netdev_priv(ctx->netdev);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
748
struct aq_macsec_cfg *cfg = nic->macsec_cfg;
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
765
if (netif_carrier_ok(nic->ndev) && netif_running(ctx->secy->netdev))
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
766
ret = aq_set_rxsc(nic, rxsc_idx);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
778
struct aq_nic_s *nic = macsec_netdev_priv(ctx->netdev);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
782
rxsc_idx = aq_get_rxsc_idx_from_rxsc(nic->macsec_cfg, ctx->rx_sc);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
786
if (netif_carrier_ok(nic->ndev) && netif_running(ctx->secy->netdev))
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
787
ret = aq_set_rxsc(nic, rxsc_idx);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
792
static int aq_clear_rxsc(struct aq_nic_s *nic, const int rxsc_idx,
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
795
struct aq_macsec_rxsc *rx_sc = &nic->macsec_cfg->aq_rxsc[rxsc_idx];
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
796
struct aq_hw_s *hw = nic->aq_hw;
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
801
ret = aq_clear_rxsa(nic, rx_sc, sa_num, clear_type);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
831
clear_bit(rxsc_idx, &nic->macsec_cfg->rxsc_idx_busy);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
841
struct aq_nic_s *nic = macsec_netdev_priv(ctx->netdev);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
846
rxsc_idx = aq_get_rxsc_idx_from_rxsc(nic->macsec_cfg, ctx->rx_sc);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
850
if (netif_carrier_ok(nic->ndev))
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
853
ret = aq_clear_rxsc(nic, rxsc_idx, clear_type);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
858
static int aq_update_rxsa(struct aq_nic_s *nic, const unsigned int sc_idx,
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
866
struct aq_hw_s *hw = nic->aq_hw;
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
909
struct aq_nic_s *nic = macsec_netdev_priv(ctx->netdev);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
916
rxsc_idx = aq_get_rxsc_idx_from_rxsc(nic->macsec_cfg, rx_sc);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
920
aq_rxsc = &nic->macsec_cfg->aq_rxsc[rxsc_idx];
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
926
if (netif_carrier_ok(nic->ndev) && netif_running(secy->netdev))
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
927
ret = aq_update_rxsa(nic, aq_rxsc->hw_sc_idx, secy,
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
936
struct aq_nic_s *nic = macsec_netdev_priv(ctx->netdev);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
938
struct aq_macsec_cfg *cfg = nic->macsec_cfg;
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
947
if (netif_carrier_ok(nic->ndev) && netif_running(secy->netdev))
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
948
ret = aq_update_rxsa(nic, cfg->aq_rxsc[rxsc_idx].hw_sc_idx,
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
955
static int aq_clear_rxsa(struct aq_nic_s *nic, struct aq_macsec_rxsc *aq_rxsc,
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
959
struct aq_hw_s *hw = nic->aq_hw;
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
965
if ((clear_type & AQ_CLEAR_HW) && netif_carrier_ok(nic->ndev)) {
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
985
struct aq_nic_s *nic = macsec_netdev_priv(ctx->netdev);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
987
struct aq_macsec_cfg *cfg = nic->macsec_cfg;
drivers/net/ethernet/aquantia/atlantic/aq_macsec.c
995
ret = aq_clear_rxsa(nic, &cfg->aq_rxsc[rxsc_idx], ctx->sa.assoc_num,
drivers/net/ethernet/aquantia/atlantic/aq_macsec.h
122
int aq_macsec_init(struct aq_nic_s *nic);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.h
123
void aq_macsec_free(struct aq_nic_s *nic);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.h
124
int aq_macsec_enable(struct aq_nic_s *nic);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.h
125
void aq_macsec_work(struct aq_nic_s *nic);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.h
126
u64 *aq_macsec_get_stats(struct aq_nic_s *nic, u64 *data);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.h
127
int aq_macsec_rx_sa_cnt(struct aq_nic_s *nic);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.h
128
int aq_macsec_tx_sc_cnt(struct aq_nic_s *nic);
drivers/net/ethernet/aquantia/atlantic/aq_macsec.h
129
int aq_macsec_tx_sa_cnt(struct aq_nic_s *nic);
drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c
382
struct aq_nic_s *nic = pci_get_drvdata(to_pci_dev(dev));
drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c
386
nic->power_state = AQ_HW_POWER_STATE_D3;
drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c
387
netif_device_detach(nic->ndev);
drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c
388
netif_tx_stop_all_queues(nic->ndev);
drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c
390
if (netif_running(nic->ndev))
drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c
391
aq_nic_stop(nic);
drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c
393
aq_nic_deinit(nic, !nic->aq_hw->aq_nic_cfg->wol);
drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c
394
aq_nic_set_power(nic);
drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c
404
struct aq_nic_s *nic;
drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c
407
nic = pci_get_drvdata(pdev);
drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c
414
if (netif_running(nic->ndev)) {
drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c
415
ret = aq_nic_init(nic);
drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c
419
ret = aq_nic_start(nic);
drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c
424
netif_device_attach(nic->ndev);
drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c
425
netif_tx_start_all_queues(nic->ndev);
drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c
429
aq_nic_deinit(nic, true);
drivers/net/ethernet/cavium/thunder/nic.h
632
void nicvf_config_rss(struct nicvf *nic);
drivers/net/ethernet/cavium/thunder/nic.h
633
void nicvf_set_rss_key(struct nicvf *nic);
drivers/net/ethernet/cavium/thunder/nic.h
635
void nicvf_update_stats(struct nicvf *nic);
drivers/net/ethernet/cavium/thunder/nic.h
636
void nicvf_update_lmac_stats(struct nicvf *nic);
drivers/net/ethernet/cavium/thunder/nic_main.c
1001
if (pass2_silicon(nic->pdev))
drivers/net/ethernet/cavium/thunder/nic_main.c
1002
nic_reg_write(nic, NIC_PF_RX_CFG, 0x01);
drivers/net/ethernet/cavium/thunder/nic_main.c
1003
if (!pass1_silicon(nic->pdev))
drivers/net/ethernet/cavium/thunder/nic_main.c
1004
nic_enable_tunnel_parsing(nic, vf);
drivers/net/ethernet/cavium/thunder/nic_main.c
101
int vf_cnt = pci_sriov_get_totalvfs(nic->pdev);
drivers/net/ethernet/cavium/thunder/nic_main.c
1010
nic_reg_write(nic, reg_addr, mbx.rq.cfg);
drivers/net/ethernet/cavium/thunder/nic_main.c
1013
ret = nic_rcv_queue_sw_sync(nic);
drivers/net/ethernet/cavium/thunder/nic_main.c
1019
nic_reg_write(nic, reg_addr, mbx.rq.cfg);
drivers/net/ethernet/cavium/thunder/nic_main.c
1025
nic_reg_write(nic, reg_addr, mbx.sq.cfg);
drivers/net/ethernet/cavium/thunder/nic_main.c
1026
nic_tx_channel_cfg(nic, mbx.qs.num, &mbx.sq);
drivers/net/ethernet/cavium/thunder/nic_main.c
1029
if (vf >= nic->num_vf_en) {
drivers/net/ethernet/cavium/thunder/nic_main.c
1034
bgx = NIC_GET_BGX_FROM_VF_LMAC_MAP(nic->vf_lmac_map[lmac]);
drivers/net/ethernet/cavium/thunder/nic_main.c
1035
lmac = NIC_GET_LMAC_FROM_VF_LMAC_MAP(nic->vf_lmac_map[lmac]);
drivers/net/ethernet/cavium/thunder/nic_main.c
1036
bgx_set_lmac_mac(nic->node, bgx, lmac, mbx.mac.mac_addr);
drivers/net/ethernet/cavium/thunder/nic_main.c
1039
ret = nic_update_hw_frs(nic, mbx.frs.max_frs,
drivers/net/ethernet/cavium/thunder/nic_main.c
1043
nic_config_cpi(nic, &mbx.cpi_cfg);
drivers/net/ethernet/cavium/thunder/nic_main.c
1046
nic_send_rss_size(nic, vf);
drivers/net/ethernet/cavium/thunder/nic_main.c
1050
nic_config_rss(nic, &mbx.rss_cfg);
drivers/net/ethernet/cavium/thunder/nic_main.c
1054
nic_enable_vf(nic, vf, true);
drivers/net/ethernet/cavium/thunder/nic_main.c
1058
if (vf >= nic->num_vf_en)
drivers/net/ethernet/cavium/thunder/nic_main.c
1059
nic->sqs_used[vf - nic->num_vf_en] = false;
drivers/net/ethernet/cavium/thunder/nic_main.c
106
nic_reg_write(nic, NIC_PF_MAILBOX_INT, INTR_MASK(vf_cnt));
drivers/net/ethernet/cavium/thunder/nic_main.c
1060
nic->pqs_vf[vf] = 0;
drivers/net/ethernet/cavium/thunder/nic_main.c
1061
nic_enable_vf(nic, vf, false);
drivers/net/ethernet/cavium/thunder/nic_main.c
1064
nic_alloc_sqs(nic, &mbx.sqs_alloc);
drivers/net/ethernet/cavium/thunder/nic_main.c
1067
nic->nicvf[vf] = mbx.nicvf.nicvf;
drivers/net/ethernet/cavium/thunder/nic_main.c
1070
nic_send_pnicvf(nic, vf);
drivers/net/ethernet/cavium/thunder/nic_main.c
1073
nic_send_snicvf(nic, &mbx.nicvf);
drivers/net/ethernet/cavium/thunder/nic_main.c
1076
nic_get_bgx_stats(nic, &mbx.bgx_stats);
drivers/net/ethernet/cavium/thunder/nic_main.c
1079
ret = nic_config_loopback(nic, &mbx.lbk);
drivers/net/ethernet/cavium/thunder/nic_main.c
1082
ret = nic_reset_stat_counters(nic, vf, &mbx.reset_stat);
drivers/net/ethernet/cavium/thunder/nic_main.c
1085
nic_pause_frame(nic, vf, &mbx.pfc);
drivers/net/ethernet/cavium/thunder/nic_main.c
1088
nic_config_timestamp(nic, vf, &mbx.ptp);
drivers/net/ethernet/cavium/thunder/nic_main.c
109
nic_reg_write(nic, NIC_PF_MAILBOX_ENA_W1S, INTR_MASK(vf_cnt));
drivers/net/ethernet/cavium/thunder/nic_main.c
1091
if (vf >= nic->num_vf_en) {
drivers/net/ethernet/cavium/thunder/nic_main.c
1095
bgx = NIC_GET_BGX_FROM_VF_LMAC_MAP(nic->vf_lmac_map[vf]);
drivers/net/ethernet/cavium/thunder/nic_main.c
1096
lmac = NIC_GET_LMAC_FROM_VF_LMAC_MAP(nic->vf_lmac_map[vf]);
drivers/net/ethernet/cavium/thunder/nic_main.c
1097
bgx_reset_xcast_mode(nic->node, bgx, lmac,
drivers/net/ethernet/cavium/thunder/nic_main.c
1103
if (vf >= nic->num_vf_en) {
drivers/net/ethernet/cavium/thunder/nic_main.c
1107
bgx = NIC_GET_BGX_FROM_VF_LMAC_MAP(nic->vf_lmac_map[vf]);
drivers/net/ethernet/cavium/thunder/nic_main.c
1108
lmac = NIC_GET_LMAC_FROM_VF_LMAC_MAP(nic->vf_lmac_map[vf]);
drivers/net/ethernet/cavium/thunder/nic_main.c
1109
bgx_set_dmac_cam_filter(nic->node, bgx, lmac,
drivers/net/ethernet/cavium/thunder/nic_main.c
1116
if (vf >= nic->num_vf_en) {
drivers/net/ethernet/cavium/thunder/nic_main.c
112
nic_reg_write(nic, NIC_PF_MAILBOX_INT + sizeof(u64),
drivers/net/ethernet/cavium/thunder/nic_main.c
1120
bgx = NIC_GET_BGX_FROM_VF_LMAC_MAP(nic->vf_lmac_map[vf]);
drivers/net/ethernet/cavium/thunder/nic_main.c
1121
lmac = NIC_GET_LMAC_FROM_VF_LMAC_MAP(nic->vf_lmac_map[vf]);
drivers/net/ethernet/cavium/thunder/nic_main.c
1122
bgx_set_xcast_mode(nic->node, bgx, lmac, mbx.xcast.mode);
drivers/net/ethernet/cavium/thunder/nic_main.c
1125
if (vf >= nic->num_vf_en) {
drivers/net/ethernet/cavium/thunder/nic_main.c
1129
nic_link_status_get(nic, vf);
drivers/net/ethernet/cavium/thunder/nic_main.c
1132
dev_err(&nic->pdev->dev,
drivers/net/ethernet/cavium/thunder/nic_main.c
1138
nic_mbx_send_ack(nic, vf);
drivers/net/ethernet/cavium/thunder/nic_main.c
114
nic_reg_write(nic, NIC_PF_MAILBOX_ENA_W1S + sizeof(u64),
drivers/net/ethernet/cavium/thunder/nic_main.c
1140
dev_err(&nic->pdev->dev, "NACK for MBOX 0x%02x from VF %d\n",
drivers/net/ethernet/cavium/thunder/nic_main.c
1142
nic_mbx_send_nack(nic, vf);
drivers/net/ethernet/cavium/thunder/nic_main.c
1148
struct nicpf *nic = (struct nicpf *)nic_irq;
drivers/net/ethernet/cavium/thunder/nic_main.c
1153
if (irq == nic->irq_allocated[NIC_PF_INTR_ID_MBOX0])
drivers/net/ethernet/cavium/thunder/nic_main.c
1158
intr = nic_reg_read(nic, NIC_PF_MAILBOX_INT + (mbx << 3));
drivers/net/ethernet/cavium/thunder/nic_main.c
1159
dev_dbg(&nic->pdev->dev, "PF interrupt Mbox%d 0x%llx\n", mbx, intr);
drivers/net/ethernet/cavium/thunder/nic_main.c
1162
dev_dbg(&nic->pdev->dev, "Intr from VF %d\n",
drivers/net/ethernet/cavium/thunder/nic_main.c
1165
nic_handle_mbx_intr(nic, vf +
drivers/net/ethernet/cavium/thunder/nic_main.c
1167
nic_clear_mbx_intr(nic, vf, mbx);
drivers/net/ethernet/cavium/thunder/nic_main.c
1173
static void nic_free_all_interrupts(struct nicpf *nic)
drivers/net/ethernet/cavium/thunder/nic_main.c
1177
for (irq = 0; irq < nic->num_vec; irq++) {
drivers/net/ethernet/cavium/thunder/nic_main.c
1178
if (nic->irq_allocated[irq])
drivers/net/ethernet/cavium/thunder/nic_main.c
1179
free_irq(nic->irq_allocated[irq], nic);
drivers/net/ethernet/cavium/thunder/nic_main.c
1180
nic->irq_allocated[irq] = 0;
drivers/net/ethernet/cavium/thunder/nic_main.c
1184
static int nic_register_interrupts(struct nicpf *nic)
drivers/net/ethernet/cavium/thunder/nic_main.c
1187
nic->num_vec = pci_msix_vec_count(nic->pdev);
drivers/net/ethernet/cavium/thunder/nic_main.c
119
static void nic_clear_mbx_intr(struct nicpf *nic, int vf, int mbx_reg)
drivers/net/ethernet/cavium/thunder/nic_main.c
1190
ret = pci_alloc_irq_vectors(nic->pdev, nic->num_vec, nic->num_vec,
drivers/net/ethernet/cavium/thunder/nic_main.c
1193
dev_err(&nic->pdev->dev,
drivers/net/ethernet/cavium/thunder/nic_main.c
1195
nic->num_vec, ret);
drivers/net/ethernet/cavium/thunder/nic_main.c
1200
for (i = NIC_PF_INTR_ID_MBOX0; i < nic->num_vec; i++) {
drivers/net/ethernet/cavium/thunder/nic_main.c
1201
sprintf(nic->irq_name[i],
drivers/net/ethernet/cavium/thunder/nic_main.c
1204
irq = pci_irq_vector(nic->pdev, i);
drivers/net/ethernet/cavium/thunder/nic_main.c
1206
nic->irq_name[i], nic);
drivers/net/ethernet/cavium/thunder/nic_main.c
121
nic_reg_write(nic, NIC_PF_MAILBOX_INT + (mbx_reg << 3), BIT_ULL(vf));
drivers/net/ethernet/cavium/thunder/nic_main.c
1210
nic->irq_allocated[i] = irq;
drivers/net/ethernet/cavium/thunder/nic_main.c
1214
nic_enable_mbx_intr(nic);
drivers/net/ethernet/cavium/thunder/nic_main.c
1218
dev_err(&nic->pdev->dev, "Request irq failed\n");
drivers/net/ethernet/cavium/thunder/nic_main.c
1219
nic_free_all_interrupts(nic);
drivers/net/ethernet/cavium/thunder/nic_main.c
1220
pci_free_irq_vectors(nic->pdev);
drivers/net/ethernet/cavium/thunder/nic_main.c
1221
nic->num_vec = 0;
drivers/net/ethernet/cavium/thunder/nic_main.c
1225
static void nic_unregister_interrupts(struct nicpf *nic)
drivers/net/ethernet/cavium/thunder/nic_main.c
1227
nic_free_all_interrupts(nic);
drivers/net/ethernet/cavium/thunder/nic_main.c
1228
pci_free_irq_vectors(nic->pdev);
drivers/net/ethernet/cavium/thunder/nic_main.c
1229
nic->num_vec = 0;
drivers/net/ethernet/cavium/thunder/nic_main.c
1232
static int nic_num_sqs_en(struct nicpf *nic, int vf_en)
drivers/net/ethernet/cavium/thunder/nic_main.c
1247
pos = pci_find_ext_capability(nic->pdev, PCI_EXT_CAP_ID_SRIOV);
drivers/net/ethernet/cavium/thunder/nic_main.c
1248
pci_read_config_word(nic->pdev, (pos + PCI_SRIOV_TOTAL_VF), &total_vf);
drivers/net/ethernet/cavium/thunder/nic_main.c
1252
static int nic_sriov_init(struct pci_dev *pdev, struct nicpf *nic)
drivers/net/ethernet/cavium/thunder/nic_main.c
1266
if (total_vf_cnt < nic->num_vf_en)
drivers/net/ethernet/cavium/thunder/nic_main.c
1267
nic->num_vf_en = total_vf_cnt;
drivers/net/ethernet/cavium/thunder/nic_main.c
1272
vf_en = nic->num_vf_en;
drivers/net/ethernet/cavium/thunder/nic_main.c
1273
nic->num_sqs_en = nic_num_sqs_en(nic, nic->num_vf_en);
drivers/net/ethernet/cavium/thunder/nic_main.c
1274
vf_en += nic->num_sqs_en;
drivers/net/ethernet/cavium/thunder/nic_main.c
1280
nic->num_vf_en = 0;
drivers/net/ethernet/cavium/thunder/nic_main.c
1287
nic->flags |= NIC_SRIOV_ENABLED;
drivers/net/ethernet/cavium/thunder/nic_main.c
1294
struct nicpf *nic;
drivers/net/ethernet/cavium/thunder/nic_main.c
1300
nic = devm_kzalloc(dev, sizeof(*nic), GFP_KERNEL);
drivers/net/ethernet/cavium/thunder/nic_main.c
1301
if (!nic)
drivers/net/ethernet/cavium/thunder/nic_main.c
1304
nic->hw = devm_kzalloc(dev, sizeof(struct hw_info), GFP_KERNEL);
drivers/net/ethernet/cavium/thunder/nic_main.c
1305
if (!nic->hw)
drivers/net/ethernet/cavium/thunder/nic_main.c
1308
pci_set_drvdata(pdev, nic);
drivers/net/ethernet/cavium/thunder/nic_main.c
1310
nic->pdev = pdev;
drivers/net/ethernet/cavium/thunder/nic_main.c
133
static void nic_send_msg_to_vf(struct nicpf *nic, int vf, union nic_mbx *mbx)
drivers/net/ethernet/cavium/thunder/nic_main.c
1331
nic->reg_base = pcim_iomap(pdev, PCI_CFG_REG_BAR_NUM, 0);
drivers/net/ethernet/cavium/thunder/nic_main.c
1332
if (!nic->reg_base) {
drivers/net/ethernet/cavium/thunder/nic_main.c
1338
nic->node = nic_get_node_id(pdev);
drivers/net/ethernet/cavium/thunder/nic_main.c
1341
nic_get_hw_info(nic);
drivers/net/ethernet/cavium/thunder/nic_main.c
1345
max_lmac = nic->hw->bgx_cnt * MAX_LMAC_PER_BGX;
drivers/net/ethernet/cavium/thunder/nic_main.c
1347
nic->vf_lmac_map = devm_kmalloc_array(dev, max_lmac, sizeof(u8),
drivers/net/ethernet/cavium/thunder/nic_main.c
1349
if (!nic->vf_lmac_map)
drivers/net/ethernet/cavium/thunder/nic_main.c
135
void __iomem *mbx_addr = nic->reg_base + nic_get_mbx_addr(vf);
drivers/net/ethernet/cavium/thunder/nic_main.c
1353
nic_init_hw(nic);
drivers/net/ethernet/cavium/thunder/nic_main.c
1355
nic_set_lmac_vf_mapping(nic);
drivers/net/ethernet/cavium/thunder/nic_main.c
1358
err = nic_register_interrupts(nic);
drivers/net/ethernet/cavium/thunder/nic_main.c
1363
err = nic_sriov_init(pdev, nic);
drivers/net/ethernet/cavium/thunder/nic_main.c
1370
nic_unregister_interrupts(nic);
drivers/net/ethernet/cavium/thunder/nic_main.c
1381
struct nicpf *nic = pci_get_drvdata(pdev);
drivers/net/ethernet/cavium/thunder/nic_main.c
1383
if (!nic)
drivers/net/ethernet/cavium/thunder/nic_main.c
1386
if (nic->flags & NIC_SRIOV_ENABLED)
drivers/net/ethernet/cavium/thunder/nic_main.c
1389
nic_unregister_interrupts(nic);
drivers/net/ethernet/cavium/thunder/nic_main.c
142
if (pass1_silicon(nic->pdev)) {
drivers/net/ethernet/cavium/thunder/nic_main.c
158
static void nic_mbx_send_ready(struct nicpf *nic, int vf)
drivers/net/ethernet/cavium/thunder/nic_main.c
169
if (vf < nic->num_vf_en) {
drivers/net/ethernet/cavium/thunder/nic_main.c
170
bgx_idx = NIC_GET_BGX_FROM_VF_LMAC_MAP(nic->vf_lmac_map[vf]);
drivers/net/ethernet/cavium/thunder/nic_main.c
171
lmac = NIC_GET_LMAC_FROM_VF_LMAC_MAP(nic->vf_lmac_map[vf]);
drivers/net/ethernet/cavium/thunder/nic_main.c
173
mac = bgx_get_lmac_mac(nic->node, bgx_idx, lmac);
drivers/net/ethernet/cavium/thunder/nic_main.c
177
mbx.nic_cfg.sqs_mode = (vf >= nic->num_vf_en) ? true : false;
drivers/net/ethernet/cavium/thunder/nic_main.c
178
mbx.nic_cfg.node_id = nic->node;
drivers/net/ethernet/cavium/thunder/nic_main.c
180
mbx.nic_cfg.loopback_supported = vf < nic->num_vf_en;
drivers/net/ethernet/cavium/thunder/nic_main.c
182
nic_send_msg_to_vf(nic, vf, &mbx);
drivers/net/ethernet/cavium/thunder/nic_main.c
188
static void nic_mbx_send_ack(struct nicpf *nic, int vf)
drivers/net/ethernet/cavium/thunder/nic_main.c
193
nic_send_msg_to_vf(nic, vf, &mbx);
drivers/net/ethernet/cavium/thunder/nic_main.c
200
static void nic_mbx_send_nack(struct nicpf *nic, int vf)
drivers/net/ethernet/cavium/thunder/nic_main.c
205
nic_send_msg_to_vf(nic, vf, &mbx);
drivers/net/ethernet/cavium/thunder/nic_main.c
211
static int nic_rcv_queue_sw_sync(struct nicpf *nic)
drivers/net/ethernet/cavium/thunder/nic_main.c
215
nic_reg_write(nic, NIC_PF_SW_SYNC_RX, 0x01);
drivers/net/ethernet/cavium/thunder/nic_main.c
218
if (nic_reg_read(nic, NIC_PF_SW_SYNC_RX_DONE) & 0x1)
drivers/net/ethernet/cavium/thunder/nic_main.c
222
nic_reg_write(nic, NIC_PF_SW_SYNC_RX, 0x00);
drivers/net/ethernet/cavium/thunder/nic_main.c
224
dev_err(&nic->pdev->dev, "Receive queue software sync failed");
drivers/net/ethernet/cavium/thunder/nic_main.c
231
static void nic_get_bgx_stats(struct nicpf *nic, struct bgx_stats_msg *bgx)
drivers/net/ethernet/cavium/thunder/nic_main.c
236
bgx_idx = NIC_GET_BGX_FROM_VF_LMAC_MAP(nic->vf_lmac_map[bgx->vf_id]);
drivers/net/ethernet/cavium/thunder/nic_main.c
237
lmac = NIC_GET_LMAC_FROM_VF_LMAC_MAP(nic->vf_lmac_map[bgx->vf_id]);
drivers/net/ethernet/cavium/thunder/nic_main.c
244
mbx.bgx_stats.stats = bgx_get_rx_stats(nic->node, bgx_idx,
drivers/net/ethernet/cavium/thunder/nic_main.c
247
mbx.bgx_stats.stats = bgx_get_tx_stats(nic->node, bgx_idx,
drivers/net/ethernet/cavium/thunder/nic_main.c
249
nic_send_msg_to_vf(nic, bgx->vf_id, &mbx);
drivers/net/ethernet/cavium/thunder/nic_main.c
253
static int nic_update_hw_frs(struct nicpf *nic, int new_frs, int vf)
drivers/net/ethernet/cavium/thunder/nic_main.c
261
bgx = NIC_GET_BGX_FROM_VF_LMAC_MAP(nic->vf_lmac_map[vf]);
drivers/net/ethernet/cavium/thunder/nic_main.c
262
lmac = NIC_GET_LMAC_FROM_VF_LMAC_MAP(nic->vf_lmac_map[vf]);
drivers/net/ethernet/cavium/thunder/nic_main.c
268
lmac_cnt = bgx_get_lmac_count(nic->node, bgx);
drivers/net/ethernet/cavium/thunder/nic_main.c
269
lmac_credits = nic_reg_read(nic, NIC_PF_LMAC_0_7_CREDIT + (lmac * 8));
drivers/net/ethernet/cavium/thunder/nic_main.c
272
nic_reg_write(nic, NIC_PF_LMAC_0_7_CREDIT + (lmac * 8), lmac_credits);
drivers/net/ethernet/cavium/thunder/nic_main.c
277
if (!pass1_silicon(nic->pdev))
drivers/net/ethernet/cavium/thunder/nic_main.c
278
nic_reg_write(nic,
drivers/net/ethernet/cavium/thunder/nic_main.c
284
static void nic_set_tx_pkt_pad(struct nicpf *nic, int size)
drivers/net/ethernet/cavium/thunder/nic_main.c
299
pci_read_config_word(nic->pdev, PCI_SUBSYSTEM_ID, &sdevid);
drivers/net/ethernet/cavium/thunder/nic_main.c
302
max_lmac = ((nic->hw->bgx_cnt - 1) * MAX_LMAC_PER_BGX) + 1;
drivers/net/ethernet/cavium/thunder/nic_main.c
304
max_lmac = nic->hw->bgx_cnt * MAX_LMAC_PER_BGX;
drivers/net/ethernet/cavium/thunder/nic_main.c
307
lmac_cfg = nic_reg_read(nic, NIC_PF_LMAC_0_7_CFG | (lmac << 3));
drivers/net/ethernet/cavium/thunder/nic_main.c
310
nic_reg_write(nic, NIC_PF_LMAC_0_7_CFG | (lmac << 3), lmac_cfg);
drivers/net/ethernet/cavium/thunder/nic_main.c
317
static void nic_set_lmac_vf_mapping(struct nicpf *nic)
drivers/net/ethernet/cavium/thunder/nic_main.c
319
unsigned bgx_map = bgx_get_map(nic->node);
drivers/net/ethernet/cavium/thunder/nic_main.c
324
nic->num_vf_en = 0;
drivers/net/ethernet/cavium/thunder/nic_main.c
326
for (bgx = 0; bgx < nic->hw->bgx_cnt; bgx++) {
drivers/net/ethernet/cavium/thunder/nic_main.c
329
lmac_cnt = bgx_get_lmac_count(nic->node, bgx);
drivers/net/ethernet/cavium/thunder/nic_main.c
331
nic->vf_lmac_map[next_bgx_lmac++] =
drivers/net/ethernet/cavium/thunder/nic_main.c
333
nic->num_vf_en += lmac_cnt;
drivers/net/ethernet/cavium/thunder/nic_main.c
343
nic_reg_write(nic,
drivers/net/ethernet/cavium/thunder/nic_main.c
350
if (nic->num_vf_en >= pci_sriov_get_totalvfs(nic->pdev)) {
drivers/net/ethernet/cavium/thunder/nic_main.c
351
nic->num_vf_en = pci_sriov_get_totalvfs(nic->pdev);
drivers/net/ethernet/cavium/thunder/nic_main.c
357
static void nic_get_hw_info(struct nicpf *nic)
drivers/net/ethernet/cavium/thunder/nic_main.c
360
struct hw_info *hw = nic->hw;
drivers/net/ethernet/cavium/thunder/nic_main.c
362
pci_read_config_word(nic->pdev, PCI_SUBSYSTEM_ID, &sdevid);
drivers/net/ethernet/cavium/thunder/nic_main.c
405
hw->tl4_cnt = MAX_QUEUES_PER_QSET * pci_sriov_get_totalvfs(nic->pdev);
drivers/net/ethernet/cavium/thunder/nic_main.c
411
static void nic_init_hw(struct nicpf *nic)
drivers/net/ethernet/cavium/thunder/nic_main.c
417
nic_reg_write(nic, NIC_PF_CFG, 0x3);
drivers/net/ethernet/cavium/thunder/nic_main.c
420
nic_reg_write(nic, NIC_PF_BP_CFG, (1ULL << 6) | 0x03);
drivers/net/ethernet/cavium/thunder/nic_main.c
425
if (nic->pdev->subsystem_device == PCI_SUBSYS_DEVID_88XX_NIC_PF) {
drivers/net/ethernet/cavium/thunder/nic_main.c
427
nic_reg_write(nic, NIC_PF_INTF_0_1_SEND_CFG,
drivers/net/ethernet/cavium/thunder/nic_main.c
430
nic_reg_write(nic, NIC_PF_INTF_0_1_SEND_CFG | (1 << 8),
drivers/net/ethernet/cavium/thunder/nic_main.c
435
for (i = 0; i < nic->hw->bgx_cnt; i++)
drivers/net/ethernet/cavium/thunder/nic_main.c
436
nic_reg_write(nic, NIC_PF_INTFX_SEND_CFG | (i << 3),
drivers/net/ethernet/cavium/thunder/nic_main.c
440
nic_reg_write(nic, NIC_PF_INTF_0_1_BP_CFG,
drivers/net/ethernet/cavium/thunder/nic_main.c
442
nic_reg_write(nic, NIC_PF_INTF_0_1_BP_CFG + (1 << 8),
drivers/net/ethernet/cavium/thunder/nic_main.c
446
nic->pkind.minlen = 0;
drivers/net/ethernet/cavium/thunder/nic_main.c
447
nic->pkind.maxlen = NIC_HW_MAX_FRS + VLAN_ETH_HLEN + ETH_FCS_LEN + 4;
drivers/net/ethernet/cavium/thunder/nic_main.c
448
nic->pkind.lenerr_en = 1;
drivers/net/ethernet/cavium/thunder/nic_main.c
449
nic->pkind.rx_hdr = 0;
drivers/net/ethernet/cavium/thunder/nic_main.c
450
nic->pkind.hdr_sl = 0;
drivers/net/ethernet/cavium/thunder/nic_main.c
453
nic_reg_write(nic, NIC_PF_PKIND_0_15_CFG | (i << 3),
drivers/net/ethernet/cavium/thunder/nic_main.c
454
*(u64 *)&nic->pkind);
drivers/net/ethernet/cavium/thunder/nic_main.c
456
nic_set_tx_pkt_pad(nic, NIC_HW_MIN_FRS);
drivers/net/ethernet/cavium/thunder/nic_main.c
459
nic_reg_write(nic, NIC_PF_INTR_TIMER_CFG, NICPF_CLK_PER_INT_TICK);
drivers/net/ethernet/cavium/thunder/nic_main.c
462
nic_reg_write(nic, NIC_PF_RX_ETYPE_0_7,
drivers/net/ethernet/cavium/thunder/nic_main.c
466
cqm_cfg = nic_reg_read(nic, NIC_PF_CQM_CFG);
drivers/net/ethernet/cavium/thunder/nic_main.c
468
nic_reg_write(nic, NIC_PF_CQM_CFG, NICPF_CQM_MIN_DROP_LEVEL);
drivers/net/ethernet/cavium/thunder/nic_main.c
472
static void nic_config_cpi(struct nicpf *nic, struct cpi_cfg_msg *cfg)
drivers/net/ethernet/cavium/thunder/nic_main.c
474
struct hw_info *hw = nic->hw;
drivers/net/ethernet/cavium/thunder/nic_main.c
481
bgx = NIC_GET_BGX_FROM_VF_LMAC_MAP(nic->vf_lmac_map[vnic]);
drivers/net/ethernet/cavium/thunder/nic_main.c
482
lmac = NIC_GET_LMAC_FROM_VF_LMAC_MAP(nic->vf_lmac_map[vnic]);
drivers/net/ethernet/cavium/thunder/nic_main.c
489
nic_reg_write(nic, NIC_PF_CHAN_0_255_RX_BP_CFG | (chan << 3),
drivers/net/ethernet/cavium/thunder/nic_main.c
491
nic_reg_write(nic, NIC_PF_CHAN_0_255_RX_CFG | (chan << 3),
drivers/net/ethernet/cavium/thunder/nic_main.c
507
nic_reg_write(nic, NIC_PF_RSSI_0_4097_RQ | (rssi << 3),
drivers/net/ethernet/cavium/thunder/nic_main.c
522
if (pass1_silicon(nic->pdev)) {
drivers/net/ethernet/cavium/thunder/nic_main.c
523
nic_reg_write(nic, NIC_PF_CPI_0_2047_CFG | (cpi << 3),
drivers/net/ethernet/cavium/thunder/nic_main.c
528
nic_reg_write(nic, NIC_PF_CPI_0_2047_CFG | (cpi << 3),
drivers/net/ethernet/cavium/thunder/nic_main.c
531
nic_reg_write(nic, NIC_PF_MPI_0_2047_CFG | (cpi << 3),
drivers/net/ethernet/cavium/thunder/nic_main.c
545
nic->cpi_base[cfg->vf_id] = cpi_base;
drivers/net/ethernet/cavium/thunder/nic_main.c
546
nic->rssi_base[cfg->vf_id] = rssi_base;
drivers/net/ethernet/cavium/thunder/nic_main.c
550
static void nic_send_rss_size(struct nicpf *nic, int vf)
drivers/net/ethernet/cavium/thunder/nic_main.c
555
mbx.rss_size.ind_tbl_size = nic->hw->rss_ind_tbl_size;
drivers/net/ethernet/cavium/thunder/nic_main.c
556
nic_send_msg_to_vf(nic, vf, &mbx);
drivers/net/ethernet/cavium/thunder/nic_main.c
565
static void nic_config_rss(struct nicpf *nic, struct rss_cfg_msg *cfg)
drivers/net/ethernet/cavium/thunder/nic_main.c
571
rssi_base = nic->rssi_base[cfg->vf_id] + cfg->tbl_offset;
drivers/net/ethernet/cavium/thunder/nic_main.c
579
qset = nic->vf_sqs[cfg->vf_id][svf - 1];
drivers/net/ethernet/cavium/thunder/nic_main.c
582
nic_reg_write(nic, NIC_PF_RSSI_0_4097_RQ | (rssi << 3),
drivers/net/ethernet/cavium/thunder/nic_main.c
587
cpi_base = nic->cpi_base[cfg->vf_id];
drivers/net/ethernet/cavium/thunder/nic_main.c
588
if (pass1_silicon(nic->pdev))
drivers/net/ethernet/cavium/thunder/nic_main.c
592
cpi_cfg = nic_reg_read(nic, idx_addr | (cpi_base << 3));
drivers/net/ethernet/cavium/thunder/nic_main.c
595
nic_reg_write(nic, idx_addr | (cpi_base << 3), cpi_cfg);
drivers/net/ethernet/cavium/thunder/nic_main.c
611
static void nic_tx_channel_cfg(struct nicpf *nic, u8 vnic,
drivers/net/ethernet/cavium/thunder/nic_main.c
614
struct hw_info *hw = nic->hw;
drivers/net/ethernet/cavium/thunder/nic_main.c
623
pqs_vnic = nic->pqs_vf[vnic];
drivers/net/ethernet/cavium/thunder/nic_main.c
627
bgx = NIC_GET_BGX_FROM_VF_LMAC_MAP(nic->vf_lmac_map[pqs_vnic]);
drivers/net/ethernet/cavium/thunder/nic_main.c
628
lmac = NIC_GET_LMAC_FROM_VF_LMAC_MAP(nic->vf_lmac_map[pqs_vnic]);
drivers/net/ethernet/cavium/thunder/nic_main.c
642
if (nic->vf_sqs[pqs_vnic][svf] == vnic)
drivers/net/ethernet/cavium/thunder/nic_main.c
655
nic_reg_write(nic, NIC_PF_QSET_0_127_SQ_0_7_CFG2 |
drivers/net/ethernet/cavium/thunder/nic_main.c
658
nic_reg_write(nic, NIC_PF_TL4_0_1023_CFG | (tl4 << 3),
drivers/net/ethernet/cavium/thunder/nic_main.c
661
nic_reg_write(nic, NIC_PF_TL3_0_255_CFG | (tl3 << 3), rr_quantum);
drivers/net/ethernet/cavium/thunder/nic_main.c
671
nic_reg_write(nic, NIC_PF_TL3_0_255_CHAN | (tl3 << 3), chan);
drivers/net/ethernet/cavium/thunder/nic_main.c
673
nic_reg_write(nic, NIC_PF_TL3_0_255_CHAN | (tl3 << 3), 0);
drivers/net/ethernet/cavium/thunder/nic_main.c
676
nic_reg_write(nic, NIC_PF_CHAN_0_255_TX_CFG | (chan << 3), 1);
drivers/net/ethernet/cavium/thunder/nic_main.c
679
nic_reg_write(nic, NIC_PF_TL3A_0_63_CFG | (tl2 << 3), tl2);
drivers/net/ethernet/cavium/thunder/nic_main.c
680
nic_reg_write(nic, NIC_PF_TL2_0_63_CFG | (tl2 << 3), rr_quantum);
drivers/net/ethernet/cavium/thunder/nic_main.c
682
nic_reg_write(nic, NIC_PF_TL2_0_63_PRI | (tl2 << 3), 0x00);
drivers/net/ethernet/cavium/thunder/nic_main.c
691
nic_reg_write(nic, NIC_PF_TL2_LMAC | (tl2 << 3),
drivers/net/ethernet/cavium/thunder/nic_main.c
696
static void nic_send_pnicvf(struct nicpf *nic, int sqs)
drivers/net/ethernet/cavium/thunder/nic_main.c
701
mbx.nicvf.nicvf = nic->nicvf[nic->pqs_vf[sqs]];
drivers/net/ethernet/cavium/thunder/nic_main.c
702
nic_send_msg_to_vf(nic, sqs, &mbx);
drivers/net/ethernet/cavium/thunder/nic_main.c
706
static void nic_send_snicvf(struct nicpf *nic, struct nicvf_ptr *nicvf)
drivers/net/ethernet/cavium/thunder/nic_main.c
709
int sqs_id = nic->vf_sqs[nicvf->vf_id][nicvf->sqs_id];
drivers/net/ethernet/cavium/thunder/nic_main.c
713
mbx.nicvf.nicvf = nic->nicvf[sqs_id];
drivers/net/ethernet/cavium/thunder/nic_main.c
714
nic_send_msg_to_vf(nic, nicvf->vf_id, &mbx);
drivers/net/ethernet/cavium/thunder/nic_main.c
720
static int nic_nxt_avail_sqs(struct nicpf *nic)
drivers/net/ethernet/cavium/thunder/nic_main.c
724
for (sqs = 0; sqs < nic->num_sqs_en; sqs++) {
drivers/net/ethernet/cavium/thunder/nic_main.c
725
if (!nic->sqs_used[sqs])
drivers/net/ethernet/cavium/thunder/nic_main.c
726
nic->sqs_used[sqs] = true;
drivers/net/ethernet/cavium/thunder/nic_main.c
729
return sqs + nic->num_vf_en;
drivers/net/ethernet/cavium/thunder/nic_main.c
735
static void nic_alloc_sqs(struct nicpf *nic, struct sqs_alloc *sqs)
drivers/net/ethernet/cavium/thunder/nic_main.c
741
if (!nic->num_sqs_en)
drivers/net/ethernet/cavium/thunder/nic_main.c
745
sqs_id = nic_nxt_avail_sqs(nic);
drivers/net/ethernet/cavium/thunder/nic_main.c
748
nic->vf_sqs[sqs->vf_id][idx] = sqs_id;
drivers/net/ethernet/cavium/thunder/nic_main.c
749
nic->pqs_vf[sqs_id] = sqs->vf_id;
drivers/net/ethernet/cavium/thunder/nic_main.c
757
nic_send_msg_to_vf(nic, sqs->vf_id, &mbx);
drivers/net/ethernet/cavium/thunder/nic_main.c
760
static int nic_config_loopback(struct nicpf *nic, struct set_loopback *lbk)
drivers/net/ethernet/cavium/thunder/nic_main.c
764
if (lbk->vf_id >= nic->num_vf_en)
drivers/net/ethernet/cavium/thunder/nic_main.c
767
bgx_idx = NIC_GET_BGX_FROM_VF_LMAC_MAP(nic->vf_lmac_map[lbk->vf_id]);
drivers/net/ethernet/cavium/thunder/nic_main.c
768
lmac_idx = NIC_GET_LMAC_FROM_VF_LMAC_MAP(nic->vf_lmac_map[lbk->vf_id]);
drivers/net/ethernet/cavium/thunder/nic_main.c
770
bgx_lmac_internal_loopback(nic->node, bgx_idx, lmac_idx, lbk->enable);
drivers/net/ethernet/cavium/thunder/nic_main.c
776
nic_reg_write(nic, NIC_PF_CQ_AVG_CFG,
drivers/net/ethernet/cavium/thunder/nic_main.c
778
nic_reg_write(nic, NIC_PF_RRM_AVG_CFG,
drivers/net/ethernet/cavium/thunder/nic_main.c
785
static int nic_reset_stat_counters(struct nicpf *nic,
drivers/net/ethernet/cavium/thunder/nic_main.c
796
nic_reg_write(nic, reg_addr, 0);
drivers/net/ethernet/cavium/thunder/nic_main.c
805
nic_reg_write(nic, reg_addr, 0);
drivers/net/ethernet/cavium/thunder/nic_main.c
816
nic_reg_write(nic, reg_addr, 0);
drivers/net/ethernet/cavium/thunder/nic_main.c
820
nic_reg_write(nic, reg_addr, 0);
drivers/net/ethernet/cavium/thunder/nic_main.c
827
static void nic_enable_tunnel_parsing(struct nicpf *nic, int vf)
drivers/net/ethernet/cavium/thunder/nic_main.c
834
nic_reg_write(nic, NIC_PF_RX_GENEVE_DEF,
drivers/net/ethernet/cavium/thunder/nic_main.c
836
nic_reg_write(nic, NIC_PF_RX_GENEVE_PROT_DEF,
drivers/net/ethernet/cavium/thunder/nic_main.c
838
nic_reg_write(nic, NIC_PF_RX_NVGRE_PROT_DEF,
drivers/net/ethernet/cavium/thunder/nic_main.c
840
nic_reg_write(nic, NIC_PF_RX_VXLAN_DEF_0_1,
drivers/net/ethernet/cavium/thunder/nic_main.c
842
nic_reg_write(nic, NIC_PF_RX_VXLAN_PROT_DEF,
drivers/net/ethernet/cavium/thunder/nic_main.c
846
static void nic_enable_vf(struct nicpf *nic, int vf, bool enable)
drivers/net/ethernet/cavium/thunder/nic_main.c
850
nic->vf_enabled[vf] = enable;
drivers/net/ethernet/cavium/thunder/nic_main.c
852
if (vf >= nic->num_vf_en)
drivers/net/ethernet/cavium/thunder/nic_main.c
855
bgx = NIC_GET_BGX_FROM_VF_LMAC_MAP(nic->vf_lmac_map[vf]);
drivers/net/ethernet/cavium/thunder/nic_main.c
856
lmac = NIC_GET_LMAC_FROM_VF_LMAC_MAP(nic->vf_lmac_map[vf]);
drivers/net/ethernet/cavium/thunder/nic_main.c
858
bgx_lmac_rx_tx_enable(nic->node, bgx, lmac, enable);
drivers/net/ethernet/cavium/thunder/nic_main.c
861
static void nic_pause_frame(struct nicpf *nic, int vf, struct pfc *cfg)
drivers/net/ethernet/cavium/thunder/nic_main.c
867
if (vf >= nic->num_vf_en)
drivers/net/ethernet/cavium/thunder/nic_main.c
869
bgx = NIC_GET_BGX_FROM_VF_LMAC_MAP(nic->vf_lmac_map[vf]);
drivers/net/ethernet/cavium/thunder/nic_main.c
870
lmac = NIC_GET_LMAC_FROM_VF_LMAC_MAP(nic->vf_lmac_map[vf]);
drivers/net/ethernet/cavium/thunder/nic_main.c
873
bgx_lmac_get_pfc(nic->node, bgx, lmac, &pfc);
drivers/net/ethernet/cavium/thunder/nic_main.c
878
nic_send_msg_to_vf(nic, vf, &mbx);
drivers/net/ethernet/cavium/thunder/nic_main.c
88
static void nic_reg_write(struct nicpf *nic, u64 offset, u64 val)
drivers/net/ethernet/cavium/thunder/nic_main.c
880
bgx_lmac_set_pfc(nic->node, bgx, lmac, cfg);
drivers/net/ethernet/cavium/thunder/nic_main.c
881
nic_mbx_send_ack(nic, vf);
drivers/net/ethernet/cavium/thunder/nic_main.c
886
static void nic_config_timestamp(struct nicpf *nic, int vf, struct set_ptp *ptp)
drivers/net/ethernet/cavium/thunder/nic_main.c
892
if (vf >= nic->num_vf_en)
drivers/net/ethernet/cavium/thunder/nic_main.c
895
bgx_idx = NIC_GET_BGX_FROM_VF_LMAC_MAP(nic->vf_lmac_map[vf]);
drivers/net/ethernet/cavium/thunder/nic_main.c
896
lmac = NIC_GET_LMAC_FROM_VF_LMAC_MAP(nic->vf_lmac_map[vf]);
drivers/net/ethernet/cavium/thunder/nic_main.c
899
pkind_val = nic_reg_read(nic, NIC_PF_PKIND_0_15_CFG | (pkind_idx << 3));
drivers/net/ethernet/cavium/thunder/nic_main.c
90
writeq_relaxed(val, nic->reg_base + offset);
drivers/net/ethernet/cavium/thunder/nic_main.c
909
bgx_config_timestamping(nic->node, bgx_idx, lmac, true);
drivers/net/ethernet/cavium/thunder/nic_main.c
910
nic_reg_write(nic, NIC_PF_RX_ETYPE_0_7 | (1 << 3),
drivers/net/ethernet/cavium/thunder/nic_main.c
915
bgx_config_timestamping(nic->node, bgx_idx, lmac, false);
drivers/net/ethernet/cavium/thunder/nic_main.c
916
nic_reg_write(nic, NIC_PF_RX_ETYPE_0_7 | (1 << 3),
drivers/net/ethernet/cavium/thunder/nic_main.c
920
nic_reg_write(nic, NIC_PF_PKIND_0_15_CFG | (pkind_idx << 3), pkind_val);
drivers/net/ethernet/cavium/thunder/nic_main.c
927
static void nic_link_status_get(struct nicpf *nic, u8 vf)
drivers/net/ethernet/cavium/thunder/nic_main.c
93
static u64 nic_reg_read(struct nicpf *nic, u64 offset)
drivers/net/ethernet/cavium/thunder/nic_main.c
936
bgx = NIC_GET_BGX_FROM_VF_LMAC_MAP(nic->vf_lmac_map[vf]);
drivers/net/ethernet/cavium/thunder/nic_main.c
937
lmac = NIC_GET_LMAC_FROM_VF_LMAC_MAP(nic->vf_lmac_map[vf]);
drivers/net/ethernet/cavium/thunder/nic_main.c
940
bgx_get_lmac_link_state(nic->node, bgx, lmac, &link);
drivers/net/ethernet/cavium/thunder/nic_main.c
949
nic_send_msg_to_vf(nic, vf, &mbx);
drivers/net/ethernet/cavium/thunder/nic_main.c
95
return readq_relaxed(nic->reg_base + offset);
drivers/net/ethernet/cavium/thunder/nic_main.c
953
static void nic_handle_mbx_intr(struct nicpf *nic, int vf)
drivers/net/ethernet/cavium/thunder/nic_main.c
968
*mbx_data = nic_reg_read(nic, mbx_addr);
drivers/net/ethernet/cavium/thunder/nic_main.c
973
dev_dbg(&nic->pdev->dev, "%s: Mailbox msg 0x%02x from VF%d\n",
drivers/net/ethernet/cavium/thunder/nic_main.c
977
nic_mbx_send_ready(nic, vf);
drivers/net/ethernet/cavium/thunder/nic_main.c
984
if (vf >= nic->num_vf_en) {
drivers/net/ethernet/cavium/thunder/nic_main.c
987
cfg |= nic->pqs_vf[vf];
drivers/net/ethernet/cavium/thunder/nic_main.c
989
nic_reg_write(nic, reg_addr, cfg);
drivers/net/ethernet/cavium/thunder/nic_main.c
99
static void nic_enable_mbx_intr(struct nicpf *nic)
drivers/net/ethernet/cavium/thunder/nic_main.c
995
nic_reg_write(nic, reg_addr, mbx.rq.cfg);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
122
struct nicvf *nic = netdev_priv(netdev);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
128
if (!nic->link_up) {
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
134
switch (nic->speed) {
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
154
if (nic->mac_type == BGX_MODE_RXAUI) {
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
171
cmd->base.duplex = nic->duplex;
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
172
cmd->base.speed = nic->speed;
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
184
struct nicvf *nic = netdev_priv(netdev);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
186
return nic->link_up;
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
192
struct nicvf *nic = netdev_priv(netdev);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
195
strscpy(info->bus_info, pci_name(nic->pdev), sizeof(info->bus_info));
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
200
struct nicvf *nic = netdev_priv(netdev);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
202
return nic->msg_enable;
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
207
struct nicvf *nic = netdev_priv(netdev);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
209
nic->msg_enable = lvl;
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
212
static void nicvf_get_qset_strings(struct nicvf *nic, u8 **data, int qset)
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
217
for (qidx = 0; qidx < nic->qs->rq_cnt; qidx++) {
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
225
for (qidx = 0; qidx < nic->qs->sq_cnt; qidx++) {
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
236
struct nicvf *nic = netdev_priv(netdev);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
253
nicvf_get_qset_strings(nic, &data, 0);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
255
for (sqs = 0; sqs < nic->sqs_count; sqs++) {
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
256
if (!nic->snicvf[sqs])
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
258
nicvf_get_qset_strings(nic->snicvf[sqs], &data, sqs + 1);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
274
struct nicvf *nic = netdev_priv(netdev);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
282
(nic->qs->rq_cnt + nic->qs->sq_cnt);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
283
for (sqs = 0; sqs < nic->sqs_count; sqs++) {
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
286
snic = nic->snicvf[sqs];
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
298
static void nicvf_get_qset_stats(struct nicvf *nic,
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
303
if (!nic)
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
306
for (qidx = 0; qidx < nic->qs->rq_cnt; qidx++) {
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
307
nicvf_update_rq_stats(nic, qidx);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
309
*((*data)++) = ((u64 *)&nic->qs->rq[qidx].stats)
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
313
for (qidx = 0; qidx < nic->qs->sq_cnt; qidx++) {
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
314
nicvf_update_sq_stats(nic, qidx);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
316
*((*data)++) = ((u64 *)&nic->qs->sq[qidx].stats)
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
324
struct nicvf *nic = netdev_priv(netdev);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
328
nicvf_update_stats(nic);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
331
nicvf_update_lmac_stats(nic);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
334
*(data++) = ((u64 *)&nic->hw_stats)
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
339
tmp_stats += ((u64 *)per_cpu_ptr(nic->drv_stats, cpu))
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
344
nicvf_get_qset_stats(nic, stats, &data);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
346
for (sqs = 0; sqs < nic->sqs_count; sqs++) {
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
347
if (!nic->snicvf[sqs])
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
349
nicvf_get_qset_stats(nic->snicvf[sqs], stats, &data);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
353
*(data++) = nic->bgx_stats.rx_stats[stat];
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
355
*(data++) = nic->bgx_stats.tx_stats[stat];
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
366
struct nicvf *nic = netdev_priv(dev);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
375
p[i++] = nicvf_reg_read(nic, NIC_VNIC_CFG);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
378
p[i++] = nicvf_reg_read(nic,
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
381
p[i++] = nicvf_reg_read(nic, NIC_VF_INT);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
382
p[i++] = nicvf_reg_read(nic, NIC_VF_INT_W1S);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
383
p[i++] = nicvf_reg_read(nic, NIC_VF_ENA_W1C);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
384
p[i++] = nicvf_reg_read(nic, NIC_VF_ENA_W1S);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
385
p[i++] = nicvf_reg_read(nic, NIC_VNIC_RSS_CFG);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
388
p[i++] = nicvf_reg_read(nic, NIC_VNIC_RSS_KEY_0_4 | (key << 3));
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
392
p[i++] = nicvf_reg_read(nic,
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
396
p[i++] = nicvf_reg_read(nic,
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
399
p[i++] = nicvf_reg_read(nic, NIC_QSET_RQ_GEN_CFG);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
403
p[i++] = nicvf_queue_reg_read(nic, NIC_QSET_CQ_0_7_CFG, q);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
404
p[i++] = nicvf_queue_reg_read(nic, NIC_QSET_CQ_0_7_CFG2, q);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
405
p[i++] = nicvf_queue_reg_read(nic, NIC_QSET_CQ_0_7_THRESH, q);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
406
p[i++] = nicvf_queue_reg_read(nic, NIC_QSET_CQ_0_7_BASE, q);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
407
p[i++] = nicvf_queue_reg_read(nic, NIC_QSET_CQ_0_7_HEAD, q);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
408
p[i++] = nicvf_queue_reg_read(nic, NIC_QSET_CQ_0_7_TAIL, q);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
409
p[i++] = nicvf_queue_reg_read(nic, NIC_QSET_CQ_0_7_DOOR, q);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
410
p[i++] = nicvf_queue_reg_read(nic, NIC_QSET_CQ_0_7_STATUS, q);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
411
p[i++] = nicvf_queue_reg_read(nic, NIC_QSET_CQ_0_7_STATUS2, q);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
412
p[i++] = nicvf_queue_reg_read(nic, NIC_QSET_CQ_0_7_DEBUG, q);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
417
p[i++] = nicvf_queue_reg_read(nic, NIC_QSET_RQ_0_7_CFG, q);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
418
p[i++] = nicvf_queue_reg_read(nic,
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
421
p[i++] = nicvf_queue_reg_read(nic, reg_offset, q);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
425
p[i++] = nicvf_queue_reg_read(nic, NIC_QSET_SQ_0_7_CFG, q);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
426
p[i++] = nicvf_queue_reg_read(nic, NIC_QSET_SQ_0_7_THRESH, q);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
427
p[i++] = nicvf_queue_reg_read(nic, NIC_QSET_SQ_0_7_BASE, q);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
428
p[i++] = nicvf_queue_reg_read(nic, NIC_QSET_SQ_0_7_HEAD, q);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
429
p[i++] = nicvf_queue_reg_read(nic, NIC_QSET_SQ_0_7_TAIL, q);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
430
p[i++] = nicvf_queue_reg_read(nic, NIC_QSET_SQ_0_7_DOOR, q);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
431
p[i++] = nicvf_queue_reg_read(nic, NIC_QSET_SQ_0_7_STATUS, q);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
432
p[i++] = nicvf_queue_reg_read(nic, NIC_QSET_SQ_0_7_DEBUG, q);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
437
p[i++] = nicvf_queue_reg_read(nic, NIC_QSET_SQ_0_7_STAT_0_1, q);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
439
p[i++] = nicvf_queue_reg_read(nic, reg_offset, q);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
443
p[i++] = nicvf_queue_reg_read(nic, NIC_QSET_RBDR_0_1_CFG, q);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
444
p[i++] = nicvf_queue_reg_read(nic, NIC_QSET_RBDR_0_1_THRESH, q);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
445
p[i++] = nicvf_queue_reg_read(nic, NIC_QSET_RBDR_0_1_BASE, q);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
446
p[i++] = nicvf_queue_reg_read(nic, NIC_QSET_RBDR_0_1_HEAD, q);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
447
p[i++] = nicvf_queue_reg_read(nic, NIC_QSET_RBDR_0_1_TAIL, q);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
448
p[i++] = nicvf_queue_reg_read(nic, NIC_QSET_RBDR_0_1_DOOR, q);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
449
p[i++] = nicvf_queue_reg_read(nic,
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
451
p[i++] = nicvf_queue_reg_read(nic,
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
454
p[i++] = nicvf_queue_reg_read(nic, reg_offset, q);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
463
struct nicvf *nic = netdev_priv(netdev);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
465
cmd->rx_coalesce_usecs = nic->cq_coalesce_usecs;
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
474
struct nicvf *nic = netdev_priv(netdev);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
475
struct queue_set *qs = nic->qs;
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
488
struct nicvf *nic = netdev_priv(netdev);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
489
struct queue_set *qs = nic->qs;
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
493
if (pass1_silicon(nic->pdev))
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
546
struct nicvf *nic = netdev_priv(dev);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
548
return nic->rx_queues;
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
555
struct nicvf *nic = netdev_priv(dev);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
559
rss = &nic->rss_info;
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
560
rss_cfg = nicvf_reg_read(nic, NIC_VNIC_RSS_CFG);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
563
netdev_err(nic->netdev,
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
566
netdev_info(nic->netdev, "Set RSS flow type = %d, data = %u\n",
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
620
nicvf_reg_write(nic, NIC_VNIC_RSS_CFG, rss_cfg);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
631
struct nicvf *nic = netdev_priv(dev);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
633
return nic->rss_info.rss_size;
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
639
struct nicvf *nic = netdev_priv(dev);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
640
struct nicvf_rss_info *rss = &nic->rss_info;
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
660
struct nicvf *nic = netdev_priv(dev);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
661
struct nicvf_rss_info *rss = &nic->rss_info;
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
669
netdev_err(nic->netdev,
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
681
nicvf_set_rss_key(nic);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
684
nicvf_config_rss(nic);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
692
struct nicvf *nic = netdev_priv(dev);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
696
channel->max_rx = nic->max_queues;
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
697
channel->max_tx = nic->max_queues;
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
699
channel->rx_count = nic->rx_queues;
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
700
channel->tx_count = nic->tx_queues;
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
707
struct nicvf *nic = netdev_priv(dev);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
714
if (channel->rx_count > nic->max_queues)
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
716
if (channel->tx_count > nic->max_queues)
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
719
if (channel->tx_count + channel->rx_count > nic->max_queues) {
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
720
if (nic->xdp_prog) {
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
721
netdev_err(nic->netdev,
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
723
nic->max_queues);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
727
xdp_clear_features_flag(nic->netdev);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
728
} else if (!pass1_silicon(nic->pdev)) {
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
735
nic->rx_queues = channel->rx_count;
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
736
nic->tx_queues = channel->tx_count;
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
737
if (!nic->xdp_prog)
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
738
nic->xdp_tx_queues = 0;
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
740
nic->xdp_tx_queues = channel->rx_count;
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
742
txq_count = nic->xdp_tx_queues + nic->tx_queues;
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
743
cqcount = max(nic->rx_queues, txq_count);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
746
nic->sqs_count = roundup(cqcount, MAX_CMP_QUEUES_PER_QS);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
747
nic->sqs_count = (nic->sqs_count / MAX_CMP_QUEUES_PER_QS) - 1;
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
749
nic->sqs_count = 0;
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
752
nic->qs->rq_cnt = min_t(u8, nic->rx_queues, MAX_RCV_QUEUES_PER_QS);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
753
nic->qs->sq_cnt = min_t(u8, txq_count, MAX_SND_QUEUES_PER_QS);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
754
nic->qs->cq_cnt = max(nic->qs->rq_cnt, nic->qs->sq_cnt);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
756
err = nicvf_set_real_num_queues(dev, nic->tx_queues, nic->rx_queues);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
764
nic->tx_queues, nic->rx_queues);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
772
struct nicvf *nic = netdev_priv(dev);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
776
if ((nic->mac_type == BGX_MODE_SGMII) ||
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
777
(nic->mac_type == BGX_MODE_QSGMII) ||
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
778
(nic->mac_type == BGX_MODE_RGMII))
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
783
if (!nicvf_send_msg_to_pf(nic, &mbx)) {
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
784
pause->autoneg = nic->pfc.autoneg;
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
785
pause->rx_pause = nic->pfc.fc_rx;
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
786
pause->tx_pause = nic->pfc.fc_tx;
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
793
struct nicvf *nic = netdev_priv(dev);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
797
if ((nic->mac_type == BGX_MODE_SGMII) ||
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
798
(nic->mac_type == BGX_MODE_QSGMII) ||
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
799
(nic->mac_type == BGX_MODE_RGMII))
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
809
if (nicvf_send_msg_to_pf(nic, &mbx))
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
812
nic->pfc.fc_rx = pause->rx_pause;
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
813
nic->pfc.fc_tx = pause->tx_pause;
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
821
struct nicvf *nic = netdev_priv(netdev);
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
823
if (!nic->ptp_clock)
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
831
info->phc_index = cavium_ptp_clock_index(nic->ptp_clock);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
100
return readq_relaxed(nic->reg_base + offset);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1001
nicvf_disable_intr(nic, NICVF_INTR_CQ, qidx);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1002
nicvf_sq_disable(nic, qidx);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1003
nicvf_cq_intr_handler(nic->netdev, qidx, NULL, 0);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1004
nicvf_cmp_queue_config(nic, qs, qidx, true);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1005
nicvf_sq_free_used_descs(nic->netdev, &qs->sq[qidx], qidx);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1006
nicvf_sq_enable(nic, &qs->sq[qidx], qidx);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1008
nicvf_enable_intr(nic, NICVF_INTR_CQ, qidx);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1011
netif_tx_start_all_queues(nic->netdev);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1013
nicvf_enable_intr(nic, NICVF_INTR_QS_ERR, 0);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1016
static void nicvf_dump_intr_status(struct nicvf *nic)
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1018
netif_info(nic, intr, nic->netdev, "interrupt status 0x%llx\n",
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1019
nicvf_reg_read(nic, NIC_VF_INT));
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1024
struct nicvf *nic = (struct nicvf *)nicvf_irq;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1027
nicvf_dump_intr_status(nic);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1029
intr = nicvf_reg_read(nic, NIC_VF_INT);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
103
void nicvf_queue_reg_write(struct nicvf *nic, u64 offset,
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1034
nicvf_handle_mbx_intr(nic);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1042
struct nicvf *nic = cq_poll->nicvf;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1045
nicvf_dump_intr_status(nic);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1048
nicvf_disable_intr(nic, NICVF_INTR_CQ, qidx);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1054
nicvf_clear_intr(nic, NICVF_INTR_CQ, qidx);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
106
void __iomem *addr = nic->reg_base + offset;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1061
struct nicvf *nic = (struct nicvf *)nicvf_irq;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1065
nicvf_dump_intr_status(nic);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1068
for (qidx = 0; qidx < nic->qs->rbdr_cnt; qidx++) {
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1069
if (!nicvf_is_intr_enabled(nic, NICVF_INTR_RBDR, qidx))
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1071
nicvf_disable_intr(nic, NICVF_INTR_RBDR, qidx);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1072
tasklet_hi_schedule(&nic->rbdr_task);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1074
nicvf_clear_intr(nic, NICVF_INTR_RBDR, qidx);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1082
struct nicvf *nic = (struct nicvf *)nicvf_irq;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1084
nicvf_dump_intr_status(nic);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1087
nicvf_disable_intr(nic, NICVF_INTR_QS_ERR, 0);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1088
tasklet_hi_schedule(&nic->qs_err_task);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1089
nicvf_clear_intr(nic, NICVF_INTR_QS_ERR, 0);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1094
static void nicvf_set_irq_affinity(struct nicvf *nic)
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1098
for (vec = 0; vec < nic->num_vec; vec++) {
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1099
if (!nic->irq_allocated[vec])
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1102
if (!zalloc_cpumask_var(&nic->affinity_mask[vec], GFP_KERNEL))
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1107
cpu = nicvf_netdev_qidx(nic, vec) + 1;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
111
u64 nicvf_queue_reg_read(struct nicvf *nic, u64 offset, u64 qidx)
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1111
cpumask_set_cpu(cpumask_local_spread(cpu, nic->node),
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1112
nic->affinity_mask[vec]);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1113
irq_set_affinity_hint(pci_irq_vector(nic->pdev, vec),
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1114
nic->affinity_mask[vec]);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1118
static int nicvf_register_interrupts(struct nicvf *nic)
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1123
sprintf(nic->irq_name[irq], "%s-rxtx-%d",
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1124
nic->pnicvf->netdev->name,
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1125
nicvf_netdev_qidx(nic, irq));
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1128
sprintf(nic->irq_name[irq], "%s-sq-%d",
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1129
nic->pnicvf->netdev->name,
drivers/net/ethernet/cavium/thunder/nicvf_main.c
113
void __iomem *addr = nic->reg_base + offset;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1130
nicvf_netdev_qidx(nic, irq - NICVF_INTR_ID_SQ));
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1133
sprintf(nic->irq_name[irq], "%s-rbdr-%d",
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1134
nic->pnicvf->netdev->name,
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1135
nic->sqs_mode ? (nic->sqs_id + 1) : 0);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1138
for (irq = 0; irq < nic->qs->cq_cnt; irq++) {
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1139
ret = request_irq(pci_irq_vector(nic->pdev, irq),
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1141
0, nic->irq_name[irq], nic->napi[irq]);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1144
nic->irq_allocated[irq] = true;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1149
irq < (NICVF_INTR_ID_RBDR + nic->qs->rbdr_cnt); irq++) {
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1150
ret = request_irq(pci_irq_vector(nic->pdev, irq),
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1152
0, nic->irq_name[irq], nic);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1155
nic->irq_allocated[irq] = true;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1159
sprintf(nic->irq_name[NICVF_INTR_ID_QS_ERR], "%s-qset-err-%d",
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1160
nic->pnicvf->netdev->name,
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1161
nic->sqs_mode ? (nic->sqs_id + 1) : 0);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1163
ret = request_irq(pci_irq_vector(nic->pdev, irq),
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1165
0, nic->irq_name[irq], nic);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1169
nic->irq_allocated[irq] = true;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1172
nicvf_set_irq_affinity(nic);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1176
netdev_err(nic->netdev, "request_irq failed, vector %d\n", irq);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1181
static void nicvf_unregister_interrupts(struct nicvf *nic)
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1183
struct pci_dev *pdev = nic->pdev;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1187
for (irq = 0; irq < nic->num_vec; irq++) {
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1188
if (!nic->irq_allocated[irq])
drivers/net/ethernet/cavium/thunder/nicvf_main.c
119
static void nicvf_write_to_mbx(struct nicvf *nic, union nic_mbx *mbx)
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1192
free_cpumask_var(nic->affinity_mask[irq]);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1195
free_irq(pci_irq_vector(pdev, irq), nic->napi[irq]);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1197
free_irq(pci_irq_vector(pdev, irq), nic);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1199
nic->irq_allocated[irq] = false;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1204
nic->num_vec = 0;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1210
static int nicvf_register_misc_interrupt(struct nicvf *nic)
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1216
if (nic->pdev->msix_enabled)
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1220
nic->num_vec = pci_msix_vec_count(nic->pdev);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1221
ret = pci_alloc_irq_vectors(nic->pdev, nic->num_vec, nic->num_vec,
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1224
netdev_err(nic->netdev,
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1225
"Req for #%d msix vectors failed\n", nic->num_vec);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1229
sprintf(nic->irq_name[irq], "%s Mbox", "NICVF");
drivers/net/ethernet/cavium/thunder/nicvf_main.c
123
nicvf_reg_write(nic, NIC_VF_PF_MAILBOX_0_1 + 0, msg[0]);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1231
ret = request_irq(pci_irq_vector(nic->pdev, irq),
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1232
nicvf_misc_intr_handler, 0, nic->irq_name[irq], nic);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1236
nic->irq_allocated[irq] = true;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1239
nicvf_enable_intr(nic, NICVF_INTR_MBOX, 0);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
124
nicvf_reg_write(nic, NIC_VF_PF_MAILBOX_0_1 + 8, msg[1]);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1242
if (!nicvf_check_pf_ready(nic)) {
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1243
nicvf_disable_intr(nic, NICVF_INTR_MBOX, 0);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1244
nicvf_unregister_interrupts(nic);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1253
struct nicvf *nic = netdev_priv(netdev);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
127
int nicvf_send_msg_to_pf(struct nicvf *nic, union nic_mbx *mbx)
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1270
if (nic->xdp_prog)
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1271
qid += nic->xdp_tx_queues;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1273
snic = nic;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1277
snic = (struct nicvf *)nic->snicvf[tmp - 1];
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1279
netdev_warn(nic->netdev,
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1300
this_cpu_inc(nic->drv_stats->txq_stop);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1301
netif_warn(nic, tx_err, netdev,
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1310
static inline void nicvf_free_cq_poll(struct nicvf *nic)
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1315
for (qidx = 0; qidx < nic->qs->cq_cnt; qidx++) {
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1316
cq_poll = nic->napi[qidx];
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1319
nic->napi[qidx] = NULL;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
132
mutex_lock(&nic->rx_mode_mtx);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1327
struct nicvf *nic = netdev_priv(netdev);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1328
struct queue_set *qs = nic->qs;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1333
if (nic->nicvf_rx_mode_wq) {
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1334
cancel_delayed_work_sync(&nic->link_change_work);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1335
drain_workqueue(nic->nicvf_rx_mode_wq);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1339
nicvf_send_msg_to_pf(nic, &mbx);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
134
nic->pf_acked = false;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1342
netif_tx_stop_all_queues(nic->netdev);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1343
nic->link_up = false;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1346
if (!nic->sqs_mode) {
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1347
for (qidx = 0; qidx < nic->sqs_count; qidx++) {
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1348
if (!nic->snicvf[qidx])
drivers/net/ethernet/cavium/thunder/nicvf_main.c
135
nic->pf_nacked = false;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1350
nicvf_stop(nic->snicvf[qidx]->netdev);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1351
nic->snicvf[qidx] = NULL;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1357
nicvf_disable_intr(nic, NICVF_INTR_RBDR, qidx);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1358
nicvf_clear_intr(nic, NICVF_INTR_RBDR, qidx);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1360
nicvf_disable_intr(nic, NICVF_INTR_QS_ERR, 0);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1361
nicvf_clear_intr(nic, NICVF_INTR_QS_ERR, 0);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1364
for (irq = 0; irq < nic->num_vec; irq++)
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1365
synchronize_irq(pci_irq_vector(nic->pdev, irq));
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1367
tasklet_kill(&nic->rbdr_task);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1368
tasklet_kill(&nic->qs_err_task);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1369
if (nic->rb_work_scheduled)
drivers/net/ethernet/cavium/thunder/nicvf_main.c
137
nicvf_write_to_mbx(nic, mbx);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1370
cancel_delayed_work_sync(&nic->rbdr_work);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1372
for (qidx = 0; qidx < nic->qs->cq_cnt; qidx++) {
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1373
cq_poll = nic->napi[qidx];
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1380
nicvf_disable_intr(nic, NICVF_INTR_CQ, qidx);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1381
nicvf_clear_intr(nic, NICVF_INTR_CQ, qidx);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1392
nicvf_config_data_transfer(nic, false);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1395
nicvf_qset_config(nic, false);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1398
nicvf_disable_intr(nic, NICVF_INTR_MBOX, 0);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1400
nicvf_unregister_interrupts(nic);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1402
nicvf_free_cq_poll(nic);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1405
if (nic->ptp_skb) {
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1406
dev_kfree_skb_any(nic->ptp_skb);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1407
nic->ptp_skb = NULL;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
141
while (!nic->pf_acked) {
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1411
nic->pnicvf = nic;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1416
static int nicvf_config_hw_rx_tstamp(struct nicvf *nic, bool enable)
drivers/net/ethernet/cavium/thunder/nicvf_main.c
142
if (nic->pf_nacked) {
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1423
return nicvf_send_msg_to_pf(nic, &mbx);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1426
static int nicvf_update_hw_max_frs(struct nicvf *nic, int mtu)
drivers/net/ethernet/cavium/thunder/nicvf_main.c
143
netdev_err(nic->netdev,
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1432
mbx.frs.vf_id = nic->vf_id;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1434
return nicvf_send_msg_to_pf(nic, &mbx);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1439
struct nicvf *nic = container_of(work_arg,
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1444
nicvf_send_msg_to_pf(nic, &mbx);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1445
queue_delayed_work(nic->nicvf_rx_mode_wq,
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1446
&nic->link_change_work, 2 * HZ);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
145
(mbx->msg.msg & 0xFF), nic->vf_id);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1452
struct nicvf *nic = netdev_priv(netdev);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1453
struct queue_set *qs = nic->qs;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1457
if (nic->nicvf_rx_mode_wq)
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1458
drain_workqueue(nic->nicvf_rx_mode_wq);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1462
err = nicvf_register_misc_interrupt(nic);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1474
cq_poll->nicvf = nic;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1477
nic->napi[qidx] = cq_poll;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1481
if (!nic->sqs_mode && is_zero_ether_addr(netdev->dev_addr)) {
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1483
nicvf_hw_set_mac_addr(nic, netdev);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1486
if (nic->set_mac_pending) {
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1487
nic->set_mac_pending = false;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1488
nicvf_hw_set_mac_addr(nic, netdev);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1492
tasklet_setup(&nic->qs_err_task, nicvf_handle_qs_err);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1495
tasklet_setup(&nic->rbdr_task, nicvf_rbdr_task);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1496
INIT_DELAYED_WORK(&nic->rbdr_work, nicvf_rbdr_work);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1499
nic->cpi_alg = cpi_alg;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
150
if (nic->pf_acked)
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1500
if (!nic->sqs_mode)
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1501
nicvf_config_cpi(nic);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1503
nicvf_request_sqs(nic);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1504
if (nic->sqs_mode)
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1505
nicvf_get_primary_vf_struct(nic);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1508
if (nic->ptp_clock)
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1509
nicvf_config_hw_rx_tstamp(nic, nic->hw_rx_tstamp);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1510
atomic_set(&nic->tx_ptp_skbs, 0);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1511
nic->ptp_skb = NULL;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1514
if (!nic->sqs_mode) {
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1515
nicvf_rss_init(nic);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1516
err = nicvf_update_hw_max_frs(nic, netdev->mtu);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1522
memset(per_cpu_ptr(nic->drv_stats, cpu), 0,
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1526
err = nicvf_register_interrupts(nic);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
153
netdev_err(nic->netdev,
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1531
err = nicvf_init_resources(nic);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1538
nicvf_reg_write(nic, NIC_VF_INT, -1);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1540
nicvf_enable_intr(nic, NICVF_INTR_QS_ERR, 0);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1544
nicvf_enable_intr(nic, NICVF_INTR_CQ, qidx);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1548
nicvf_enable_intr(nic, NICVF_INTR_RBDR, qidx);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
155
(mbx->msg.msg & 0xFF), nic->vf_id);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1551
nicvf_send_cfg_done(nic);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1553
if (nic->nicvf_rx_mode_wq) {
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1554
INIT_DELAYED_WORK(&nic->link_change_work,
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1556
queue_delayed_work(nic->nicvf_rx_mode_wq,
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1557
&nic->link_change_work, 0);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1562
nicvf_disable_intr(nic, NICVF_INTR_MBOX, 0);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1563
nicvf_unregister_interrupts(nic);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1564
tasklet_kill(&nic->qs_err_task);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1565
tasklet_kill(&nic->rbdr_task);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1568
cq_poll = nic->napi[qidx];
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1574
nicvf_free_cq_poll(nic);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1580
struct nicvf *nic = netdev_priv(netdev);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1585
if (nic->xdp_prog && new_mtu > MAX_XDP_MTU) {
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1591
if (netif_running(netdev) && nicvf_update_hw_max_frs(nic, new_mtu))
drivers/net/ethernet/cavium/thunder/nicvf_main.c
160
mutex_unlock(&nic->rx_mode_mtx);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1602
struct nicvf *nic = netdev_priv(netdev);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1609
if (nic->pdev->msix_enabled) {
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1610
if (nicvf_hw_set_mac_addr(nic, netdev))
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1613
nic->set_mac_pending = true;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1619
void nicvf_update_lmac_stats(struct nicvf *nic)
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1624
if (!netif_running(nic->netdev))
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1628
mbx.bgx_stats.vf_id = nic->vf_id;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1633
if (nicvf_send_msg_to_pf(nic, &mbx))
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1644
if (nicvf_send_msg_to_pf(nic, &mbx))
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1650
void nicvf_update_stats(struct nicvf *nic)
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1654
struct nicvf_hw_stats *stats = &nic->hw_stats;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1656
struct queue_set *qs = nic->qs;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1659
nicvf_reg_read(nic, NIC_VNIC_RX_STAT_0_13 | (reg << 3))
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1661
nicvf_reg_read(nic, NIC_VNIC_TX_STAT_0_4 | (reg << 3))
drivers/net/ethernet/cavium/thunder/nicvf_main.c
167
static int nicvf_check_pf_ready(struct nicvf *nic)
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1690
if (nic->t88 && nic->hw_tso) {
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1692
drv_stats = per_cpu_ptr(nic->drv_stats, cpu);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1708
nicvf_update_rq_stats(nic, qidx);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1710
nicvf_update_sq_stats(nic, qidx);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1716
struct nicvf *nic = netdev_priv(netdev);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1717
struct nicvf_hw_stats *hw_stats = &nic->hw_stats;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1719
nicvf_update_stats(nic);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
172
if (nicvf_send_msg_to_pf(nic, &mbx)) {
drivers/net/ethernet/cavium/thunder/nicvf_main.c
173
netdev_err(nic->netdev,
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1734
struct nicvf *nic = netdev_priv(dev);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1736
netif_warn(nic, tx_err, dev, "Transmit timed out, resetting\n");
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1738
this_cpu_inc(nic->drv_stats->tx_timeout);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1739
schedule_work(&nic->reset_task);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1744
struct nicvf *nic;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1746
nic = container_of(work, struct nicvf, reset_task);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1748
if (!netif_running(nic->netdev))
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1751
nicvf_stop(nic->netdev);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1752
nicvf_open(nic->netdev);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1753
netif_trans_update(nic->netdev);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1756
static int nicvf_config_loopback(struct nicvf *nic,
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1762
mbx.lbk.vf_id = nic->vf_id;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1765
return nicvf_send_msg_to_pf(nic, &mbx);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1771
struct nicvf *nic = netdev_priv(netdev);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1774
netif_running(netdev) && !nic->loopback_supported)
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1783
struct nicvf *nic = netdev_priv(netdev);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1787
nicvf_config_vlan_stripping(nic, features);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1790
return nicvf_config_loopback(nic, features);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1795
static void nicvf_set_xdp_queues(struct nicvf *nic, bool bpf_attached)
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1801
nic->xdp_tx_queues = 0;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1803
nic->xdp_tx_queues = nic->rx_queues;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1808
txq_count = nic->xdp_tx_queues + nic->tx_queues;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1809
cq_count = max(nic->rx_queues, txq_count);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
181
static void nicvf_send_cfg_done(struct nicvf *nic)
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1811
nic->sqs_count = roundup(cq_count, MAX_CMP_QUEUES_PER_QS);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1812
nic->sqs_count = (nic->sqs_count / MAX_CMP_QUEUES_PER_QS) - 1;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1814
nic->sqs_count = 0;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1818
nic->qs->rq_cnt = min_t(u8, nic->rx_queues, MAX_RCV_QUEUES_PER_QS);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1819
nic->qs->sq_cnt = min_t(u8, txq_count, MAX_SND_QUEUES_PER_QS);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1820
nic->qs->cq_cnt = max_t(u8, nic->qs->rq_cnt, nic->qs->sq_cnt);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1823
nicvf_set_real_num_queues(nic->netdev, nic->tx_queues, nic->rx_queues);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1826
static int nicvf_xdp_setup(struct nicvf *nic, struct bpf_prog *prog)
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1828
struct net_device *dev = nic->netdev;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1829
bool if_up = netif_running(nic->netdev);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1850
if ((nic->rx_queues + nic->tx_queues) > nic->max_queues) {
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1853
nic->max_queues);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1858
nicvf_stop(nic->netdev);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
186
if (nicvf_send_msg_to_pf(nic, &mbx)) {
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1860
old_prog = xchg(&nic->xdp_prog, prog);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1865
if (nic->xdp_prog) {
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1867
bpf_prog_add(nic->xdp_prog, nic->rx_queues - 1);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
187
netdev_err(nic->netdev,
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1872
nicvf_set_xdp_queues(nic, bpf_attached);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1876
nicvf_open(nic->netdev);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1877
netif_trans_update(nic->netdev);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1885
struct nicvf *nic = netdev_priv(netdev);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1891
if (pass1_silicon(nic->pdev))
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1896
return nicvf_xdp_setup(nic, xdp->prog);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1906
struct nicvf *nic = netdev_priv(netdev);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1908
if (!nic->ptp_clock) {
drivers/net/ethernet/cavium/thunder/nicvf_main.c
192
static void nicvf_read_bgx_stats(struct nicvf *nic, struct bgx_stats_msg *bgx)
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1923
nic->hw_rx_tstamp = false;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1939
nic->hw_rx_tstamp = true;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1947
nicvf_config_hw_rx_tstamp(nic, nic->hw_rx_tstamp);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
195
nic->bgx_stats.rx_stats[bgx->idx] = bgx->stats;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1955
struct nicvf *nic = netdev_priv(netdev);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1957
if (!nic->ptp_clock)
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1962
config->rx_filter = nic->hw_rx_tstamp ?
drivers/net/ethernet/cavium/thunder/nicvf_main.c
197
nic->bgx_stats.tx_stats[bgx->idx] = bgx->stats;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1970
struct nicvf *nic)
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1983
if (nicvf_send_msg_to_pf(nic, &mbx) < 0)
drivers/net/ethernet/cavium/thunder/nicvf_main.c
1992
if (nicvf_send_msg_to_pf(nic, &mbx) < 0)
drivers/net/ethernet/cavium/thunder/nicvf_main.c
200
static void nicvf_handle_mbx_intr(struct nicvf *nic)
drivers/net/ethernet/cavium/thunder/nicvf_main.c
2002
if (nicvf_send_msg_to_pf(nic, &mbx) < 0)
drivers/net/ethernet/cavium/thunder/nicvf_main.c
2011
nicvf_send_msg_to_pf(nic, &mbx);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
2020
struct nicvf *nic = container_of(vf_work, struct nicvf, rx_mode_work);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
2027
spin_lock_bh(&nic->rx_mode_wq_lock);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
2031
spin_unlock_bh(&nic->rx_mode_wq_lock);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
2033
__nicvf_set_rx_mode_task(mode, mc, nic);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
2038
struct nicvf *nic = netdev_priv(netdev);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
2069
spin_lock(&nic->rx_mode_wq_lock);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
2070
kfree(nic->rx_mode_work.mc);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
2071
nic->rx_mode_work.mc = mc_list;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
2072
nic->rx_mode_work.mode = mode;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
2073
queue_work(nic->nicvf_rx_mode_wq, &nic->rx_mode_work.work);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
2074
spin_unlock(&nic->rx_mode_wq_lock);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
2097
struct nicvf *nic;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
211
*mbx_data = nicvf_reg_read(nic, mbx_addr);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
2146
nic = netdev_priv(netdev);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
2147
nic->netdev = netdev;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
2148
nic->pdev = pdev;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
2149
nic->pnicvf = nic;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
2150
nic->max_queues = qcount;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
2154
if (!nic->t88)
drivers/net/ethernet/cavium/thunder/nicvf_main.c
2155
nic->max_queues *= 2;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
2156
nic->ptp_clock = ptp_clock;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
2159
mutex_init(&nic->rx_mode_mtx);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
216
netdev_dbg(nic->netdev, "Mbox message: msg: 0x%x\n", mbx.msg.msg);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
2162
nic->reg_base = pcim_iomap(pdev, PCI_CFG_REG_BAR_NUM, 0);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
2163
if (!nic->reg_base) {
drivers/net/ethernet/cavium/thunder/nicvf_main.c
2169
nic->drv_stats = netdev_alloc_pcpu_stats(struct nicvf_drv_stats);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
2170
if (!nic->drv_stats) {
drivers/net/ethernet/cavium/thunder/nicvf_main.c
2175
err = nicvf_set_qset_resources(nic);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
2180
err = nicvf_register_misc_interrupt(nic);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
2184
nicvf_send_vf_struct(nic);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
2186
if (!pass1_silicon(nic->pdev))
drivers/net/ethernet/cavium/thunder/nicvf_main.c
2187
nic->hw_tso = true;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
219
nic->pf_acked = true;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
2190
nic->iommu_domain = iommu_get_domain_for_dev(dev);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
2192
pci_read_config_word(nic->pdev, PCI_SUBSYSTEM_ID, &sdevid);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
2194
nic->t88 = true;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
2197
if (nic->sqs_mode)
drivers/net/ethernet/cavium/thunder/nicvf_main.c
220
nic->vf_id = mbx.nic_cfg.vf_id & 0x7F;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
2200
err = nicvf_set_real_num_queues(netdev, nic->tx_queues, nic->rx_queues);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
221
nic->tns_mode = mbx.nic_cfg.tns_mode & 0x7F;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
222
nic->node = mbx.nic_cfg.node_id;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
2220
if (!pass1_silicon(nic->pdev) &&
drivers/net/ethernet/cavium/thunder/nicvf_main.c
2221
nic->rx_queues + nic->tx_queues <= nic->max_queues)
drivers/net/ethernet/cavium/thunder/nicvf_main.c
2228
INIT_WORK(&nic->reset_task, nicvf_reset_task);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
223
if (!nic->set_mac_pending)
drivers/net/ethernet/cavium/thunder/nicvf_main.c
2230
nic->nicvf_rx_mode_wq = alloc_ordered_workqueue("nicvf_rx_mode_wq_VF%d",
drivers/net/ethernet/cavium/thunder/nicvf_main.c
2232
nic->vf_id);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
2233
if (!nic->nicvf_rx_mode_wq) {
drivers/net/ethernet/cavium/thunder/nicvf_main.c
2239
INIT_WORK(&nic->rx_mode_work.work, nicvf_set_rx_mode_task);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
224
eth_hw_addr_set(nic->netdev, mbx.nic_cfg.mac_addr);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
2240
spin_lock_init(&nic->rx_mode_wq_lock);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
2248
nic->msg_enable = debug;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
225
nic->sqs_mode = mbx.nic_cfg.sqs_mode;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
2255
destroy_workqueue(nic->nicvf_rx_mode_wq);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
2257
nicvf_unregister_interrupts(nic);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
226
nic->loopback_supported = mbx.nic_cfg.loopback_supported;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
2260
if (nic->drv_stats)
drivers/net/ethernet/cavium/thunder/nicvf_main.c
2261
free_percpu(nic->drv_stats);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
227
nic->link_up = false;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
2273
struct nicvf *nic;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
2279
nic = netdev_priv(netdev);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
228
nic->duplex = 0;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
2280
pnetdev = nic->pnicvf->netdev;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
2287
if (nic->nicvf_rx_mode_wq) {
drivers/net/ethernet/cavium/thunder/nicvf_main.c
2288
destroy_workqueue(nic->nicvf_rx_mode_wq);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
2289
nic->nicvf_rx_mode_wq = NULL;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
229
nic->speed = 0;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
2291
nicvf_unregister_interrupts(nic);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
2293
if (nic->drv_stats)
drivers/net/ethernet/cavium/thunder/nicvf_main.c
2294
free_percpu(nic->drv_stats);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
2295
cavium_ptp_put(nic->ptp_clock);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
232
nic->pf_acked = true;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
235
nic->pf_nacked = true;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
238
nic->rss_info.rss_size = mbx.rss_size.ind_tbl_size;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
239
nic->pf_acked = true;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
242
nicvf_read_bgx_stats(nic, &mbx.bgx_stats);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
243
nic->pf_acked = true;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
246
nic->pf_acked = true;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
247
if (nic->link_up != mbx.link_status.link_up) {
drivers/net/ethernet/cavium/thunder/nicvf_main.c
248
nic->link_up = mbx.link_status.link_up;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
249
nic->duplex = mbx.link_status.duplex;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
250
nic->speed = mbx.link_status.speed;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
251
nic->mac_type = mbx.link_status.mac_type;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
252
if (nic->link_up) {
drivers/net/ethernet/cavium/thunder/nicvf_main.c
253
netdev_info(nic->netdev,
drivers/net/ethernet/cavium/thunder/nicvf_main.c
255
nic->speed,
drivers/net/ethernet/cavium/thunder/nicvf_main.c
256
nic->duplex == DUPLEX_FULL ?
drivers/net/ethernet/cavium/thunder/nicvf_main.c
258
netif_carrier_on(nic->netdev);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
259
netif_tx_start_all_queues(nic->netdev);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
261
netdev_info(nic->netdev, "Link is Down\n");
drivers/net/ethernet/cavium/thunder/nicvf_main.c
262
netif_carrier_off(nic->netdev);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
263
netif_tx_stop_all_queues(nic->netdev);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
268
nic->sqs_count = mbx.sqs_alloc.qs_count;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
269
nic->pf_acked = true;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
275
nic->snicvf[mbx.nicvf.sqs_id] =
drivers/net/ethernet/cavium/thunder/nicvf_main.c
277
nic->pf_acked = true;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
284
nic->pnicvf = (struct nicvf *)mbx.nicvf.nicvf;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
285
nic->pf_acked = true;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
288
nic->pfc.autoneg = mbx.pfc.autoneg;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
289
nic->pfc.fc_rx = mbx.pfc.fc_rx;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
290
nic->pfc.fc_tx = mbx.pfc.fc_tx;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
291
nic->pf_acked = true;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
294
netdev_err(nic->netdev,
drivers/net/ethernet/cavium/thunder/nicvf_main.c
298
nicvf_clear_intr(nic, NICVF_INTR_MBOX, 0);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
301
static int nicvf_hw_set_mac_addr(struct nicvf *nic, struct net_device *netdev)
drivers/net/ethernet/cavium/thunder/nicvf_main.c
306
mbx.mac.vf_id = nic->vf_id;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
309
return nicvf_send_msg_to_pf(nic, &mbx);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
312
static void nicvf_config_cpi(struct nicvf *nic)
drivers/net/ethernet/cavium/thunder/nicvf_main.c
317
mbx.cpi_cfg.vf_id = nic->vf_id;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
318
mbx.cpi_cfg.cpi_alg = nic->cpi_alg;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
319
mbx.cpi_cfg.rq_cnt = nic->qs->rq_cnt;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
321
nicvf_send_msg_to_pf(nic, &mbx);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
324
static void nicvf_get_rss_size(struct nicvf *nic)
drivers/net/ethernet/cavium/thunder/nicvf_main.c
329
mbx.rss_size.vf_id = nic->vf_id;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
330
nicvf_send_msg_to_pf(nic, &mbx);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
333
void nicvf_config_rss(struct nicvf *nic)
drivers/net/ethernet/cavium/thunder/nicvf_main.c
336
struct nicvf_rss_info *rss = &nic->rss_info;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
340
mbx.rss_cfg.vf_id = nic->vf_id;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
352
nicvf_send_msg_to_pf(nic, &mbx);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
358
void nicvf_set_rss_key(struct nicvf *nic)
drivers/net/ethernet/cavium/thunder/nicvf_main.c
360
struct nicvf_rss_info *rss = &nic->rss_info;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
365
nicvf_reg_write(nic, key_addr, rss->key[idx]);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
370
static int nicvf_rss_init(struct nicvf *nic)
drivers/net/ethernet/cavium/thunder/nicvf_main.c
372
struct nicvf_rss_info *rss = &nic->rss_info;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
375
nicvf_get_rss_size(nic);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
386
nicvf_set_rss_key(nic);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
389
nicvf_reg_write(nic, NIC_VNIC_RSS_CFG, rss->cfg);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
395
nic->rx_queues);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
396
nicvf_config_rss(nic);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
401
static void nicvf_request_sqs(struct nicvf *nic)
drivers/net/ethernet/cavium/thunder/nicvf_main.c
405
int sqs_count = nic->sqs_count;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
409
if (nic->sqs_mode || !nic->sqs_count)
drivers/net/ethernet/cavium/thunder/nicvf_main.c
413
mbx.sqs_alloc.vf_id = nic->vf_id;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
414
mbx.sqs_alloc.qs_count = nic->sqs_count;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
415
if (nicvf_send_msg_to_pf(nic, &mbx)) {
drivers/net/ethernet/cavium/thunder/nicvf_main.c
417
nic->sqs_count = 0;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
422
if (!nic->sqs_count)
drivers/net/ethernet/cavium/thunder/nicvf_main.c
425
if (nic->rx_queues > MAX_RCV_QUEUES_PER_QS)
drivers/net/ethernet/cavium/thunder/nicvf_main.c
426
rx_queues = nic->rx_queues - MAX_RCV_QUEUES_PER_QS;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
428
tx_queues = nic->tx_queues + nic->xdp_tx_queues;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
433
for (sqs = 0; sqs < nic->sqs_count; sqs++) {
drivers/net/ethernet/cavium/thunder/nicvf_main.c
435
mbx.nicvf.vf_id = nic->vf_id;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
437
nicvf_send_msg_to_pf(nic, &mbx);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
439
nic->snicvf[sqs]->sqs_id = sqs;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
441
nic->snicvf[sqs]->qs->rq_cnt = MAX_RCV_QUEUES_PER_QS;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
444
nic->snicvf[sqs]->qs->rq_cnt = rx_queues;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
449
nic->snicvf[sqs]->qs->sq_cnt = MAX_SND_QUEUES_PER_QS;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
452
nic->snicvf[sqs]->qs->sq_cnt = tx_queues;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
456
nic->snicvf[sqs]->qs->cq_cnt =
drivers/net/ethernet/cavium/thunder/nicvf_main.c
457
max(nic->snicvf[sqs]->qs->rq_cnt, nic->snicvf[sqs]->qs->sq_cnt);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
460
nicvf_open(nic->snicvf[sqs]->netdev);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
464
if (sqs_count != nic->sqs_count)
drivers/net/ethernet/cavium/thunder/nicvf_main.c
465
nicvf_set_real_num_queues(nic->netdev,
drivers/net/ethernet/cavium/thunder/nicvf_main.c
466
nic->tx_queues, nic->rx_queues);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
473
static void nicvf_send_vf_struct(struct nicvf *nic)
drivers/net/ethernet/cavium/thunder/nicvf_main.c
478
mbx.nicvf.sqs_mode = nic->sqs_mode;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
479
mbx.nicvf.nicvf = (u64)nic;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
480
nicvf_send_msg_to_pf(nic, &mbx);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
483
static void nicvf_get_primary_vf_struct(struct nicvf *nic)
drivers/net/ethernet/cavium/thunder/nicvf_main.c
488
nicvf_send_msg_to_pf(nic, &mbx);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
510
static int nicvf_init_resources(struct nicvf *nic)
drivers/net/ethernet/cavium/thunder/nicvf_main.c
515
nicvf_qset_config(nic, true);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
518
err = nicvf_config_data_transfer(nic, true);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
520
netdev_err(nic->netdev,
drivers/net/ethernet/cavium/thunder/nicvf_main.c
528
static inline bool nicvf_xdp_rx(struct nicvf *nic, struct bpf_prog *prog,
drivers/net/ethernet/cavium/thunder/nicvf_main.c
544
cpu_addr = nicvf_iova_to_phys(nic, dma_addr);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
575
dma_unmap_page_attrs(&nic->pdev->dev, dma_addr,
drivers/net/ethernet/cavium/thunder/nicvf_main.c
590
nicvf_xdp_sq_append_pkt(nic, sq, (u64)xdp.data, dma_addr, len);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
593
bpf_warn_invalid_xdp_action(nic->netdev, prog, action);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
596
trace_xdp_exception(nic->netdev, prog, action);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
606
dma_unmap_page_attrs(&nic->pdev->dev, dma_addr,
drivers/net/ethernet/cavium/thunder/nicvf_main.c
620
struct nicvf *nic = netdev_priv(netdev);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
624
nic = nic->pnicvf;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
630
atomic_set(&nic->tx_ptp_skbs, 0);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
633
if (!nic->ptp_skb)
drivers/net/ethernet/cavium/thunder/nicvf_main.c
643
ns = cavium_ptp_tstamp2time(nic->ptp_clock, cqe_tx->ptp_timestamp);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
645
skb_tstamp_tx(nic->ptp_skb, &ts);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
649
dev_kfree_skb_any(nic->ptp_skb);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
650
nic->ptp_skb = NULL;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
662
struct nicvf *nic = netdev_priv(netdev);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
667
sq = &nic->qs->sq[cqe_tx->sq_idx];
drivers/net/ethernet/cavium/thunder/nicvf_main.c
675
nicvf_check_cqe_tx_errs(nic->pnicvf, cqe_tx);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
682
nicvf_unmap_sndq_buffers(nic, sq, cqe_tx->sqe_ptr,
drivers/net/ethernet/cavium/thunder/nicvf_main.c
700
nicvf_unmap_sndq_buffers(nic, sq, hdr->rsvd2,
drivers/net/ethernet/cavium/thunder/nicvf_main.c
704
nicvf_unmap_sndq_buffers(nic, sq, cqe_tx->sqe_ptr,
drivers/net/ethernet/cavium/thunder/nicvf_main.c
713
!nic->pnicvf->ptp_skb)
drivers/net/ethernet/cavium/thunder/nicvf_main.c
714
nic->pnicvf->ptp_skb = skb;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
722
if (!nic->hw_tso)
drivers/net/ethernet/cavium/thunder/nicvf_main.c
75
static inline u8 nicvf_netdev_qidx(struct nicvf *nic, u8 qidx)
drivers/net/ethernet/cavium/thunder/nicvf_main.c
755
static inline void nicvf_set_rxtstamp(struct nicvf *nic, struct sk_buff *skb)
drivers/net/ethernet/cavium/thunder/nicvf_main.c
759
if (!nic->ptp_clock || !nic->hw_rx_tstamp)
drivers/net/ethernet/cavium/thunder/nicvf_main.c
763
ns = cavium_ptp_tstamp2time(nic->ptp_clock,
drivers/net/ethernet/cavium/thunder/nicvf_main.c
77
if (nic->sqs_mode)
drivers/net/ethernet/cavium/thunder/nicvf_main.c
776
struct nicvf *nic = netdev_priv(netdev);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
777
struct nicvf *snic = nic;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
78
return qidx + ((nic->sqs_id + 1) * MAX_CMP_QUEUES_PER_QS);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
781
rq_idx = nicvf_netdev_qidx(nic, cqe_rx->rq_idx);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
783
if (nic->sqs_mode) {
drivers/net/ethernet/cavium/thunder/nicvf_main.c
785
nic = nic->pnicvf;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
786
netdev = nic->netdev;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
791
err = nicvf_check_cqe_rx_errs(nic, cqe_rx);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
797
if (nic->xdp_prog && (cqe_rx->rb_cnt == 1)) {
drivers/net/ethernet/cavium/thunder/nicvf_main.c
799
if (nicvf_xdp_rx(snic, nic->xdp_prog, cqe_rx, sq, rq, &skb))
drivers/net/ethernet/cavium/thunder/nicvf_main.c
803
nic->xdp_prog ? true : false);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
809
if (netif_msg_pktdata(nic)) {
drivers/net/ethernet/cavium/thunder/nicvf_main.c
810
netdev_info(nic->netdev, "skb 0x%p, len=%d\n", skb, skb->len);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
821
nicvf_set_rxtstamp(nic, skb);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
851
struct nicvf *nic = netdev_priv(netdev);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
852
struct queue_set *qs = nic->qs;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
864
cqe_count = nicvf_queue_reg_read(nic, NIC_QSET_CQ_0_7_STATUS, cq_idx);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
870
cqe_head = nicvf_queue_reg_read(nic, NIC_QSET_CQ_0_7_HEAD, cq_idx) >> 9;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
910
nicvf_queue_reg_write(nic, NIC_QSET_CQ_0_7_DOOR,
drivers/net/ethernet/cavium/thunder/nicvf_main.c
921
txq_idx = nicvf_netdev_qidx(nic, cq_idx);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
923
if (nic->pnicvf->xdp_prog) {
drivers/net/ethernet/cavium/thunder/nicvf_main.c
924
if (txq_idx < nic->pnicvf->xdp_tx_queues) {
drivers/net/ethernet/cavium/thunder/nicvf_main.c
925
nicvf_xdp_sq_doorbell(nic, sq, cq_idx);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
928
nic = nic->pnicvf;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
929
txq_idx -= nic->pnicvf->xdp_tx_queues;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
93
void nicvf_reg_write(struct nicvf *nic, u64 offset, u64 val)
drivers/net/ethernet/cavium/thunder/nicvf_main.c
935
netdev = nic->pnicvf->netdev;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
944
nic = nic->pnicvf;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
945
this_cpu_inc(nic->drv_stats->txq_wake);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
946
netif_warn(nic, tx_err, netdev,
drivers/net/ethernet/cavium/thunder/nicvf_main.c
95
writeq_relaxed(val, nic->reg_base + offset);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
961
struct nicvf *nic = netdev_priv(netdev);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
971
cq_head = nicvf_queue_reg_read(nic, NIC_QSET_CQ_0_7_HEAD,
drivers/net/ethernet/cavium/thunder/nicvf_main.c
973
nicvf_clear_intr(nic, NICVF_INTR_CQ, cq->cq_idx);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
974
nicvf_queue_reg_write(nic, NIC_QSET_CQ_0_7_HEAD,
drivers/net/ethernet/cavium/thunder/nicvf_main.c
976
nicvf_enable_intr(nic, NICVF_INTR_CQ, cq->cq_idx);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
98
u64 nicvf_reg_read(struct nicvf *nic, u64 offset)
drivers/net/ethernet/cavium/thunder/nicvf_main.c
987
struct nicvf *nic = from_tasklet(nic, t, qs_err_task);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
988
struct queue_set *qs = nic->qs;
drivers/net/ethernet/cavium/thunder/nicvf_main.c
992
netif_tx_disable(nic->netdev);
drivers/net/ethernet/cavium/thunder/nicvf_main.c
996
status = nicvf_queue_reg_read(nic, NIC_QSET_CQ_0_7_STATUS,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1003
nicvf_free_snd_queue(nic, &qs->sq[qidx]);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1006
static int nicvf_alloc_resources(struct nicvf *nic)
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1009
struct queue_set *qs = nic->qs;
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1013
if (nicvf_init_rbdr(nic, &qs->rbdr[qidx], qs->rbdr_len,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1020
if (nicvf_init_snd_queue(nic, &qs->sq[qidx], qs->sq_len, qidx))
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1026
if (nicvf_init_cmp_queue(nic, &qs->cq[qidx], qs->cq_len))
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1032
nicvf_free_resources(nic);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1036
int nicvf_set_qset_resources(struct nicvf *nic)
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1040
qs = devm_kzalloc(&nic->pdev->dev, sizeof(*qs), GFP_KERNEL);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1043
nic->qs = qs;
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1056
nic->rx_queues = qs->rq_cnt;
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1057
nic->tx_queues = qs->sq_cnt;
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1058
nic->xdp_tx_queues = 0;
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1063
int nicvf_config_data_transfer(struct nicvf *nic, bool enable)
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1066
struct queue_set *qs = nic->qs;
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1067
struct queue_set *pqs = nic->pnicvf->qs;
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1077
if (nic->sqs_mode && pqs) {
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1083
if (nicvf_alloc_resources(nic))
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1087
nicvf_snd_queue_config(nic, qs, qidx, enable);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1089
nicvf_cmp_queue_config(nic, qs, qidx, enable);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1091
nicvf_rbdr_config(nic, qs, qidx, enable);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1093
nicvf_rcv_queue_config(nic, qs, qidx, enable);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1096
nicvf_rcv_queue_config(nic, qs, qidx, disable);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1098
nicvf_rbdr_config(nic, qs, qidx, disable);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1100
nicvf_snd_queue_config(nic, qs, qidx, disable);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1102
nicvf_cmp_queue_config(nic, qs, qidx, disable);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1104
nicvf_free_resources(nic);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1110
nicvf_reset_rcv_queue_stats(nic);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1159
void nicvf_sq_enable(struct nicvf *nic, struct snd_queue *sq, int qidx)
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1163
sq_cfg = nicvf_queue_reg_read(nic, NIC_QSET_SQ_0_7_CFG, qidx);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1165
nicvf_queue_reg_write(nic, NIC_QSET_SQ_0_7_CFG, qidx, sq_cfg);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1167
nicvf_queue_reg_write(nic, NIC_QSET_SQ_0_7_DOOR, qidx, 0);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1170
void nicvf_sq_disable(struct nicvf *nic, int qidx)
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1174
sq_cfg = nicvf_queue_reg_read(nic, NIC_QSET_SQ_0_7_CFG, qidx);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1176
nicvf_queue_reg_write(nic, NIC_QSET_SQ_0_7_CFG, qidx, sq_cfg);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1184
struct nicvf *nic = netdev_priv(netdev);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1187
head = nicvf_queue_reg_read(nic, NIC_QSET_SQ_0_7_HEAD, qidx) >> 4;
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1205
void nicvf_xdp_sq_doorbell(struct nicvf *nic,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1215
nicvf_queue_reg_write(nic, NIC_QSET_SQ_0_7_DOOR,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1235
int nicvf_xdp_sq_append_pkt(struct nicvf *nic, struct snd_queue *sq,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
126
this_cpu_inc(nic->pnicvf->drv_stats->page_alloc);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1306
static int nicvf_sq_subdesc_required(struct nicvf *nic, struct sk_buff *skb)
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
131
nic->rb_page = page;
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1310
if (skb_shinfo(skb)->gso_size && !nic->hw_tso) {
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1316
if (nic->t88 && nic->hw_tso && skb_shinfo(skb)->gso_size)
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1329
nicvf_sq_add_hdr_subdesc(struct nicvf *nic, struct snd_queue *sq, int qentry,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1345
if (nic->t88 && nic->hw_tso && skb_shinfo(skb)->gso_size) {
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1382
if (nic->hw_tso && skb_shinfo(skb)->gso_size) {
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1388
this_cpu_inc(nic->pnicvf->drv_stats->tx_tso);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1400
if (!atomic_add_unless(&nic->pnicvf->tx_ptp_skbs, 1, 1))
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1462
static inline void nicvf_sq_doorbell(struct nicvf *nic, struct sk_buff *skb,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1467
txq = netdev_get_tx_queue(nic->pnicvf->netdev,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1478
nicvf_queue_reg_write(nic, NIC_QSET_SQ_0_7_DOOR,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1485
static int nicvf_sq_append_tso(struct nicvf *nic, struct snd_queue *sq,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1532
nicvf_sq_add_hdr_subdesc(nic, sq, hdr_qentry,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1542
nicvf_sq_doorbell(nic, skb, sq_num, desc_cnt);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1544
this_cpu_inc(nic->pnicvf->drv_stats->tx_tso);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1549
int nicvf_sq_append_skb(struct nicvf *nic, struct snd_queue *sq,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1557
subdesc_cnt = nicvf_sq_subdesc_required(nic, skb);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1564
if (skb_shinfo(skb)->gso_size && !nic->hw_tso)
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1565
return nicvf_sq_append_tso(nic, sq, sq_num, qentry, skb);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1568
nicvf_sq_add_hdr_subdesc(nic, sq, qentry, subdesc_cnt - 1,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1576
dma_addr = dma_map_page_attrs(&nic->pdev->dev, virt_to_page(skb->data),
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1579
if (dma_mapping_error(&nic->pdev->dev, dma_addr)) {
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1595
dma_addr = dma_map_page_attrs(&nic->pdev->dev,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1600
if (dma_mapping_error(&nic->pdev->dev, dma_addr)) {
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1604
nicvf_unmap_sndq_buffers(nic, sq, hdr_sqe, i);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1612
if (nic->t88 && skb_shinfo(skb)->gso_size) {
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1617
nicvf_sq_doorbell(nic, skb, sq_num, subdesc_cnt);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1623
nic = nic->pnicvf;
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1624
netdev_dbg(nic->netdev, "Not enough SQ descriptors to xmit pkt\n");
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1637
static void nicvf_unmap_rcv_buffer(struct nicvf *nic, u64 dma_addr,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1657
dma_unmap_page_attrs(&nic->pdev->dev, dma_addr, len,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1662
struct sk_buff *nicvf_get_rcv_skb(struct nicvf *nic,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1682
if (!nic->hw_tso)
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1689
phys_addr = nicvf_iova_to_phys(nic, *rb_ptrs);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1698
nicvf_unmap_rcv_buffer(nic,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1701
skb = nicvf_rb_ptr_to_skb(nic,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1710
nicvf_unmap_rcv_buffer(nic, *rb_ptrs, phys_addr, xdp);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1756
void nicvf_enable_intr(struct nicvf *nic, int int_type, int q_idx)
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
176
static inline int nicvf_alloc_rcv_buffer(struct nicvf *nic, struct rbdr *rbdr,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1761
netdev_dbg(nic->netdev,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1765
nicvf_reg_write(nic, NIC_VF_ENA_W1S,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1766
nicvf_reg_read(nic, NIC_VF_ENA_W1S) | mask);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1770
void nicvf_disable_intr(struct nicvf *nic, int int_type, int q_idx)
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1775
netdev_dbg(nic->netdev,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1780
nicvf_reg_write(nic, NIC_VF_ENA_W1C, mask);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1784
void nicvf_clear_intr(struct nicvf *nic, int int_type, int q_idx)
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1789
netdev_dbg(nic->netdev,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1794
nicvf_reg_write(nic, NIC_VF_INT, mask);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1798
int nicvf_is_intr_enabled(struct nicvf *nic, int int_type, int q_idx)
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1803
netdev_dbg(nic->netdev,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1808
return mask & nicvf_reg_read(nic, NIC_VF_ENA_W1S);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1811
void nicvf_update_rq_stats(struct nicvf *nic, int rq_idx)
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1816
nicvf_reg_read(nic, NIC_QSET_RQ_0_7_STAT_0_1 |\
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1819
rq = &nic->qs->rq[rq_idx];
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1824
void nicvf_update_sq_stats(struct nicvf *nic, int sq_idx)
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1829
nicvf_reg_read(nic, NIC_QSET_SQ_0_7_STAT_0_1 |\
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1832
sq = &nic->qs->sq[sq_idx];
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1838
int nicvf_check_cqe_rx_errs(struct nicvf *nic, struct cqe_rx_t *cqe_rx)
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
184
if (!rbdr->is_xdp && nic->rb_page &&
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1840
netif_err(nic, rx_err, nic->netdev,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1846
this_cpu_inc(nic->drv_stats->rx_bgx_truncated_pkts);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1849
this_cpu_inc(nic->drv_stats->rx_jabber_errs);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
185
((nic->rb_page_offset + buf_len) <= PAGE_SIZE)) {
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1852
this_cpu_inc(nic->drv_stats->rx_fcs_errs);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1855
this_cpu_inc(nic->drv_stats->rx_bgx_errs);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1858
this_cpu_inc(nic->drv_stats->rx_prel2_errs);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
186
nic->rb_pageref++;
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1861
this_cpu_inc(nic->drv_stats->rx_l2_hdr_malformed);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1864
this_cpu_inc(nic->drv_stats->rx_oversize);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1867
this_cpu_inc(nic->drv_stats->rx_undersize);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1870
this_cpu_inc(nic->drv_stats->rx_l2_len_mismatch);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1873
this_cpu_inc(nic->drv_stats->rx_l2_pclp);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1876
this_cpu_inc(nic->drv_stats->rx_ip_ver_errs);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1879
this_cpu_inc(nic->drv_stats->rx_ip_csum_errs);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1882
this_cpu_inc(nic->drv_stats->rx_ip_hdr_malformed);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1885
this_cpu_inc(nic->drv_stats->rx_ip_payload_malformed);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1888
this_cpu_inc(nic->drv_stats->rx_ip_ttl_errs);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1891
this_cpu_inc(nic->drv_stats->rx_l3_pclp);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1894
this_cpu_inc(nic->drv_stats->rx_l4_malformed);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1897
this_cpu_inc(nic->drv_stats->rx_l4_csum_errs);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
190
nicvf_get_page(nic);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1900
this_cpu_inc(nic->drv_stats->rx_udp_len_errs);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1903
this_cpu_inc(nic->drv_stats->rx_l4_port_errs);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1906
this_cpu_inc(nic->drv_stats->rx_tcp_flag_errs);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1909
this_cpu_inc(nic->drv_stats->rx_tcp_offset_errs);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
191
nic->rb_page = NULL;
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1912
this_cpu_inc(nic->drv_stats->rx_l4_pclp);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1915
this_cpu_inc(nic->drv_stats->rx_truncated_pkts);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1923
int nicvf_check_cqe_tx_errs(struct nicvf *nic, struct cqe_send_t *cqe_tx)
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1927
this_cpu_inc(nic->drv_stats->tx_desc_fault);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1930
this_cpu_inc(nic->drv_stats->tx_hdr_cons_err);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1933
this_cpu_inc(nic->drv_stats->tx_subdesc_err);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1936
this_cpu_inc(nic->drv_stats->tx_max_size_exceeded);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1939
this_cpu_inc(nic->drv_stats->tx_imm_size_oflow);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
194
pgcache = nicvf_alloc_page(nic, rbdr, gfp);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1942
this_cpu_inc(nic->drv_stats->tx_data_seq_err);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1945
this_cpu_inc(nic->drv_stats->tx_mem_seq_err);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1948
this_cpu_inc(nic->drv_stats->tx_lock_viol);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
195
if (!pgcache && !nic->rb_page) {
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1951
this_cpu_inc(nic->drv_stats->tx_data_fault);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1954
this_cpu_inc(nic->drv_stats->tx_tstmp_conflict);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1957
this_cpu_inc(nic->drv_stats->tx_tstmp_timeout);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
196
this_cpu_inc(nic->pnicvf->drv_stats->rcv_buffer_alloc_failures);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1960
this_cpu_inc(nic->drv_stats->tx_mem_fault);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1963
this_cpu_inc(nic->drv_stats->tx_csum_overlap);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1966
this_cpu_inc(nic->drv_stats->tx_csum_overflow);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
200
nic->rb_page_offset = 0;
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
208
nic->rb_page = pgcache->page;
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
214
*rbuf = (u64)dma_map_page_attrs(&nic->pdev->dev, nic->rb_page,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
215
nic->rb_page_offset, buf_len,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
218
if (dma_mapping_error(&nic->pdev->dev, (dma_addr_t)*rbuf)) {
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
219
if (!nic->rb_page_offset)
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
22
static void nicvf_get_page(struct nicvf *nic)
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
220
__free_pages(nic->rb_page, 0);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
221
nic->rb_page = NULL;
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
226
nic->rb_page_offset += buf_len;
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
233
static struct sk_buff *nicvf_rb_ptr_to_skb(struct nicvf *nic,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
24
if (!nic->rb_pageref || !nic->rb_page)
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
253
static int nicvf_init_rbdr(struct nicvf *nic, struct rbdr *rbdr,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
261
err = nicvf_alloc_q_desc_mem(nic, &rbdr->dmem, ring_len,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
27
page_ref_add(nic->rb_page, nic->rb_pageref);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
28
nic->rb_pageref = 0;
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
284
if (!nic->pnicvf->xdp_prog) {
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
298
nic->rb_page = NULL;
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
300
err = nicvf_alloc_rcv_buffer(nic, rbdr, GFP_KERNEL,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
312
nicvf_get_page(nic);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
318
static void nicvf_free_rbdr(struct nicvf *nic, struct rbdr *rbdr)
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
32
static int nicvf_poll_reg(struct nicvf *nic, int qidx,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
339
phys_addr = nicvf_iova_to_phys(nic, buf_addr);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
340
dma_unmap_page_attrs(&nic->pdev->dev, buf_addr, RCV_FRAG_LEN,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
350
phys_addr = nicvf_iova_to_phys(nic, buf_addr);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
351
dma_unmap_page_attrs(&nic->pdev->dev, buf_addr, RCV_FRAG_LEN,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
374
nicvf_free_q_desc_mem(nic, &rbdr->dmem);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
379
static void nicvf_refill_rbdr(struct nicvf *nic, gfp_t gfp)
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
381
struct queue_set *qs = nic->qs;
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
400
qcount = nicvf_queue_reg_read(nic, NIC_QSET_RBDR_0_1_STATUS0, rbdr_idx);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
412
tail = nicvf_queue_reg_read(nic, NIC_QSET_RBDR_0_1_TAIL, rbdr_idx) >> 3;
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
417
if (nicvf_alloc_rcv_buffer(nic, rbdr, gfp, RCV_FRAG_LEN, &rbuf))
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
426
nicvf_get_page(nic);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
43
reg_val = nicvf_queue_reg_read(nic, reg, qidx);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
433
nic->rb_alloc_fail = true;
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
435
nic->rb_alloc_fail = false;
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
438
nicvf_queue_reg_write(nic, NIC_QSET_RBDR_0_1_DOOR,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
442
if (!nic->rb_alloc_fail && rbdr->enable &&
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
443
netif_running(nic->pnicvf->netdev))
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
444
nicvf_enable_intr(nic, NICVF_INTR_RBDR, rbdr_idx);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
453
struct nicvf *nic = container_of(work, struct nicvf, rbdr_work.work);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
455
nicvf_refill_rbdr(nic, GFP_KERNEL);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
456
if (nic->rb_alloc_fail)
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
457
schedule_delayed_work(&nic->rbdr_work, msecs_to_jiffies(10));
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
459
nic->rb_work_scheduled = false;
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
465
struct nicvf *nic = from_tasklet(nic, t, rbdr_task);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
467
nicvf_refill_rbdr(nic, GFP_ATOMIC);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
468
if (nic->rb_alloc_fail) {
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
469
nic->rb_work_scheduled = true;
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
470
schedule_delayed_work(&nic->rbdr_work, msecs_to_jiffies(10));
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
475
static int nicvf_init_cmp_queue(struct nicvf *nic,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
480
err = nicvf_alloc_q_desc_mem(nic, &cq->dmem, q_len, CMP_QUEUE_DESC_SIZE,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
486
cq->thresh = pass1_silicon(nic->pdev) ? 0 : CMP_QUEUE_CQE_THRESH;
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
487
nic->cq_coalesce_usecs = (CMP_QUEUE_TIMER_THRESH * 0.05) - 1;
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
49
netdev_err(nic->netdev, "Poll on reg 0x%llx failed\n", reg);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
492
static void nicvf_free_cmp_queue(struct nicvf *nic, struct cmp_queue *cq)
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
499
nicvf_free_q_desc_mem(nic, &cq->dmem);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
503
static int nicvf_init_snd_queue(struct nicvf *nic,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
508
err = nicvf_alloc_q_desc_mem(nic, &sq->dmem, q_len, SND_QUEUE_DESC_SIZE,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
523
if (nic->sqs_mode)
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
524
qidx += ((nic->sqs_id + 1) * MAX_SND_QUEUES_PER_QS);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
525
if (qidx < nic->pnicvf->xdp_tx_queues) {
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
54
static int nicvf_alloc_q_desc_mem(struct nicvf *nic, struct q_desc_mem *dmem,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
542
sq->tso_hdrs = dma_alloc_coherent(&nic->pdev->dev,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
553
void nicvf_unmap_sndq_buffers(struct nicvf *nic, struct snd_queue *sq,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
565
dma_unmap_page_attrs(&nic->pdev->dev, gather->addr,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
571
static void nicvf_free_snd_queue(struct nicvf *nic, struct snd_queue *sq)
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
584
dma_free_coherent(&nic->pdev->dev,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
60
dmem->unalign_base = dma_alloc_coherent(&nic->pdev->dev, dmem->size,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
609
nicvf_unmap_sndq_buffers(nic, sq, hdr->rsvd2,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
612
nicvf_unmap_sndq_buffers(nic, sq, sq->head,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
623
nicvf_free_q_desc_mem(nic, &sq->dmem);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
626
static void nicvf_reclaim_snd_queue(struct nicvf *nic,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
630
nicvf_queue_reg_write(nic, NIC_QSET_SQ_0_7_CFG, qidx, 0);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
632
if (nicvf_poll_reg(nic, qidx, NIC_QSET_SQ_0_7_STATUS, 21, 1, 0x01))
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
635
nicvf_queue_reg_write(nic, NIC_QSET_SQ_0_7_CFG, qidx, NICVF_SQ_RESET);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
638
static void nicvf_reclaim_rcv_queue(struct nicvf *nic,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
645
nicvf_send_msg_to_pf(nic, &mbx);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
648
static void nicvf_reclaim_cmp_queue(struct nicvf *nic,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
652
nicvf_queue_reg_write(nic, NIC_QSET_CQ_0_7_CFG2, qidx, 0);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
654
nicvf_queue_reg_write(nic, NIC_QSET_CQ_0_7_CFG, qidx, 0);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
656
nicvf_queue_reg_write(nic, NIC_QSET_CQ_0_7_CFG, qidx, NICVF_CQ_RESET);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
659
static void nicvf_reclaim_rbdr(struct nicvf *nic,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
666
rbdr->head = nicvf_queue_reg_read(nic,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
669
rbdr->tail = nicvf_queue_reg_read(nic,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
676
fifo_state = nicvf_queue_reg_read(nic, NIC_QSET_RBDR_0_1_STATUS0, qidx);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
678
nicvf_queue_reg_write(nic, NIC_QSET_RBDR_0_1_CFG,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
682
nicvf_queue_reg_write(nic, NIC_QSET_RBDR_0_1_CFG, qidx, 0);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
683
if (nicvf_poll_reg(nic, qidx, NIC_QSET_RBDR_0_1_STATUS0, 62, 2, 0x00))
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
686
tmp = nicvf_queue_reg_read(nic,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
694
netdev_err(nic->netdev,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
699
nicvf_queue_reg_write(nic, NIC_QSET_RBDR_0_1_CFG,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
702
if (nicvf_poll_reg(nic, qidx, NIC_QSET_RBDR_0_1_STATUS0, 62, 2, 0x02))
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
704
nicvf_queue_reg_write(nic, NIC_QSET_RBDR_0_1_CFG, qidx, 0x00);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
705
if (nicvf_poll_reg(nic, qidx, NIC_QSET_RBDR_0_1_STATUS0, 62, 2, 0x00))
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
709
void nicvf_config_vlan_stripping(struct nicvf *nic, netdev_features_t features)
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
714
rq_cfg = nicvf_queue_reg_read(nic, NIC_QSET_RQ_GEN_CFG, 0);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
72
static void nicvf_free_q_desc_mem(struct nicvf *nic, struct q_desc_mem *dmem)
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
721
nicvf_queue_reg_write(nic, NIC_QSET_RQ_GEN_CFG, 0, rq_cfg);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
724
for (sqs = 0; sqs < nic->sqs_count; sqs++)
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
725
if (nic->snicvf[sqs])
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
726
nicvf_queue_reg_write(nic->snicvf[sqs],
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
730
static void nicvf_reset_rcv_queue_stats(struct nicvf *nic)
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
740
nicvf_send_msg_to_pf(nic, &mbx);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
744
static void nicvf_rcv_queue_config(struct nicvf *nic, struct queue_set *qs,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
755
nicvf_queue_reg_write(nic, NIC_QSET_RQ_0_7_CFG, qidx, 0);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
758
nicvf_reclaim_rcv_queue(nic, qs, qidx);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
77
dma_free_coherent(&nic->pdev->dev, dmem->size,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
773
WARN_ON(xdp_rxq_info_reg(&rq->xdp_rxq, nic->netdev, qidx, 0) < 0);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
783
nicvf_send_msg_to_pf(nic, &mbx);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
789
nicvf_send_msg_to_pf(nic, &mbx);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
798
nicvf_send_msg_to_pf(nic, &mbx);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
800
if (!nic->sqs_mode && (qidx == 0)) {
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
804
nicvf_queue_reg_write(nic, NIC_QSET_RQ_GEN_CFG, 0,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
806
nicvf_config_vlan_stripping(nic, nic->netdev->features);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
813
nicvf_queue_reg_write(nic, NIC_QSET_RQ_0_7_CFG, qidx, *(u64 *)&rq_cfg);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
817
void nicvf_cmp_queue_config(struct nicvf *nic, struct queue_set *qs,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
827
nicvf_reclaim_cmp_queue(nic, qs, qidx);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
832
nicvf_queue_reg_write(nic, NIC_QSET_CQ_0_7_CFG, qidx, NICVF_CQ_RESET);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
839
nicvf_queue_reg_write(nic, NIC_QSET_CQ_0_7_BASE,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
849
nicvf_queue_reg_write(nic, NIC_QSET_CQ_0_7_CFG, qidx, *(u64 *)&cq_cfg);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
852
nicvf_queue_reg_write(nic, NIC_QSET_CQ_0_7_THRESH, qidx, cq->thresh);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
853
nicvf_queue_reg_write(nic, NIC_QSET_CQ_0_7_CFG2,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
858
static void nicvf_snd_queue_config(struct nicvf *nic, struct queue_set *qs,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
869
nicvf_reclaim_snd_queue(nic, qs, qidx);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
874
nicvf_queue_reg_write(nic, NIC_QSET_SQ_0_7_CFG, qidx, NICVF_SQ_RESET);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
883
mbx.sq.sqs_mode = nic->sqs_mode;
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
885
nicvf_send_msg_to_pf(nic, &mbx);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
888
nicvf_queue_reg_write(nic, NIC_QSET_SQ_0_7_BASE,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
902
nicvf_queue_reg_write(nic, NIC_QSET_SQ_0_7_CFG, qidx, *(u64 *)&sq_cfg);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
905
nicvf_queue_reg_write(nic, NIC_QSET_SQ_0_7_THRESH, qidx, sq->thresh);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
910
netif_set_xps_queue(nic->netdev,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
916
static void nicvf_rbdr_config(struct nicvf *nic, struct queue_set *qs,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
923
nicvf_reclaim_rbdr(nic, rbdr, qidx);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
928
nicvf_queue_reg_write(nic, NIC_QSET_RBDR_0_1_BASE,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
93
static inline struct pgcache *nicvf_alloc_page(struct nicvf *nic,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
940
nicvf_queue_reg_write(nic, NIC_QSET_RBDR_0_1_CFG,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
944
nicvf_queue_reg_write(nic, NIC_QSET_RBDR_0_1_DOOR,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
948
nicvf_queue_reg_write(nic, NIC_QSET_RBDR_0_1_THRESH,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
953
void nicvf_qset_config(struct nicvf *nic, bool enable)
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
956
struct queue_set *qs = nic->qs;
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
960
netdev_warn(nic->netdev,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
966
qs->vnic_id = nic->vf_id;
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
971
mbx.qs.sqs_count = nic->sqs_count;
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
982
if (nic->ptp_clock)
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
985
nicvf_send_msg_to_pf(nic, &mbx);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
988
static void nicvf_free_resources(struct nicvf *nic)
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
991
struct queue_set *qs = nic->qs;
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
995
nicvf_free_rbdr(nic, &qs->rbdr[qidx]);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
999
nicvf_free_cmp_queue(nic, &qs->cq[qidx]);
drivers/net/ethernet/cavium/thunder/nicvf_queues.h
320
static inline u64 nicvf_iova_to_phys(struct nicvf *nic, dma_addr_t dma_addr)
drivers/net/ethernet/cavium/thunder/nicvf_queues.h
323
if (nic->iommu_domain)
drivers/net/ethernet/cavium/thunder/nicvf_queues.h
324
return iommu_iova_to_phys(nic->iommu_domain, dma_addr);
drivers/net/ethernet/cavium/thunder/nicvf_queues.h
328
void nicvf_unmap_sndq_buffers(struct nicvf *nic, struct snd_queue *sq,
drivers/net/ethernet/cavium/thunder/nicvf_queues.h
330
void nicvf_config_vlan_stripping(struct nicvf *nic,
drivers/net/ethernet/cavium/thunder/nicvf_queues.h
332
int nicvf_set_qset_resources(struct nicvf *nic);
drivers/net/ethernet/cavium/thunder/nicvf_queues.h
333
int nicvf_config_data_transfer(struct nicvf *nic, bool enable);
drivers/net/ethernet/cavium/thunder/nicvf_queues.h
334
void nicvf_qset_config(struct nicvf *nic, bool enable);
drivers/net/ethernet/cavium/thunder/nicvf_queues.h
335
void nicvf_cmp_queue_config(struct nicvf *nic, struct queue_set *qs,
drivers/net/ethernet/cavium/thunder/nicvf_queues.h
338
void nicvf_sq_enable(struct nicvf *nic, struct snd_queue *sq, int qidx);
drivers/net/ethernet/cavium/thunder/nicvf_queues.h
339
void nicvf_sq_disable(struct nicvf *nic, int qidx);
drivers/net/ethernet/cavium/thunder/nicvf_queues.h
343
int nicvf_sq_append_skb(struct nicvf *nic, struct snd_queue *sq,
drivers/net/ethernet/cavium/thunder/nicvf_queues.h
345
int nicvf_xdp_sq_append_pkt(struct nicvf *nic, struct snd_queue *sq,
drivers/net/ethernet/cavium/thunder/nicvf_queues.h
347
void nicvf_xdp_sq_doorbell(struct nicvf *nic, struct snd_queue *sq, int sq_num);
drivers/net/ethernet/cavium/thunder/nicvf_queues.h
349
struct sk_buff *nicvf_get_rcv_skb(struct nicvf *nic,
drivers/net/ethernet/cavium/thunder/nicvf_queues.h
354
void nicvf_enable_intr(struct nicvf *nic, int int_type, int q_idx);
drivers/net/ethernet/cavium/thunder/nicvf_queues.h
355
void nicvf_disable_intr(struct nicvf *nic, int int_type, int q_idx);
drivers/net/ethernet/cavium/thunder/nicvf_queues.h
356
void nicvf_clear_intr(struct nicvf *nic, int int_type, int q_idx);
drivers/net/ethernet/cavium/thunder/nicvf_queues.h
357
int nicvf_is_intr_enabled(struct nicvf *nic, int int_type, int q_idx);
drivers/net/ethernet/cavium/thunder/nicvf_queues.h
360
void nicvf_reg_write(struct nicvf *nic, u64 offset, u64 val);
drivers/net/ethernet/cavium/thunder/nicvf_queues.h
361
u64 nicvf_reg_read(struct nicvf *nic, u64 offset);
drivers/net/ethernet/cavium/thunder/nicvf_queues.h
362
void nicvf_queue_reg_write(struct nicvf *nic, u64 offset,
drivers/net/ethernet/cavium/thunder/nicvf_queues.h
364
u64 nicvf_queue_reg_read(struct nicvf *nic,
drivers/net/ethernet/cavium/thunder/nicvf_queues.h
368
void nicvf_update_rq_stats(struct nicvf *nic, int rq_idx);
drivers/net/ethernet/cavium/thunder/nicvf_queues.h
369
void nicvf_update_sq_stats(struct nicvf *nic, int sq_idx);
drivers/net/ethernet/cavium/thunder/nicvf_queues.h
370
int nicvf_check_cqe_rx_errs(struct nicvf *nic, struct cqe_rx_t *cqe_rx);
drivers/net/ethernet/cavium/thunder/nicvf_queues.h
371
int nicvf_check_cqe_tx_errs(struct nicvf *nic, struct cqe_send_t *cqe_tx);
drivers/net/ethernet/chelsio/cxgb4/t4_hw.c
3423
if (hdr1->chip == hdr2->chip && SAME_INTF(nic) && SAME_INTF(vnic) &&
drivers/net/ethernet/emulex/benet/be_cmds.c
4261
struct be_nic_res_desc *nic;
drivers/net/ethernet/emulex/benet/be_cmds.c
4267
nic = (struct be_nic_res_desc *)hdr;
drivers/net/ethernet/emulex/benet/be_cmds.c
4270
nic->pf_num == pf_num) &&
drivers/net/ethernet/emulex/benet/be_cmds.c
4271
(!get_vft || nic->flags & BIT(VFT_SHIFT)))
drivers/net/ethernet/emulex/benet/be_cmds.c
4272
return nic;
drivers/net/ethernet/emulex/benet/be_cmds.c
4449
struct be_nic_res_desc *nic;
drivers/net/ethernet/emulex/benet/be_cmds.c
4495
nic = be_get_func_nic_desc(resp->func_param, desc_count,
drivers/net/ethernet/emulex/benet/be_cmds.c
4497
if (nic->link_param == adapter->port_num) {
drivers/net/ethernet/emulex/benet/be_cmds.c
4517
nic = be_get_func_nic_desc(resp->func_param, desc_count,
drivers/net/ethernet/emulex/benet/be_cmds.c
4519
if (nic)
drivers/net/ethernet/emulex/benet/be_cmds.c
4520
be_copy_nic_desc(res, nic);
drivers/net/ethernet/emulex/benet/be_cmds.c
4567
static void be_reset_nic_desc(struct be_nic_res_desc *nic)
drivers/net/ethernet/emulex/benet/be_cmds.c
4569
memset(nic, 0, sizeof(*nic));
drivers/net/ethernet/emulex/benet/be_cmds.c
4570
nic->unicast_mac_count = 0xFFFF;
drivers/net/ethernet/emulex/benet/be_cmds.c
4571
nic->mcc_count = 0xFFFF;
drivers/net/ethernet/emulex/benet/be_cmds.c
4572
nic->vlan_count = 0xFFFF;
drivers/net/ethernet/emulex/benet/be_cmds.c
4573
nic->mcast_mac_count = 0xFFFF;
drivers/net/ethernet/emulex/benet/be_cmds.c
4574
nic->txq_count = 0xFFFF;
drivers/net/ethernet/emulex/benet/be_cmds.c
4575
nic->rq_count = 0xFFFF;
drivers/net/ethernet/emulex/benet/be_cmds.c
4576
nic->rssq_count = 0xFFFF;
drivers/net/ethernet/emulex/benet/be_cmds.c
4577
nic->lro_count = 0xFFFF;
drivers/net/ethernet/emulex/benet/be_cmds.c
4578
nic->cq_count = 0xFFFF;
drivers/net/ethernet/emulex/benet/be_cmds.c
4579
nic->toe_conn_count = 0xFFFF;
drivers/net/ethernet/emulex/benet/be_cmds.c
4580
nic->eq_count = 0xFFFF;
drivers/net/ethernet/emulex/benet/be_cmds.c
4581
nic->iface_count = 0xFFFF;
drivers/net/ethernet/emulex/benet/be_cmds.c
4582
nic->link_param = 0xFF;
drivers/net/ethernet/emulex/benet/be_cmds.c
4583
nic->channel_id_param = cpu_to_le16(0xF000);
drivers/net/ethernet/emulex/benet/be_cmds.c
4584
nic->acpi_params = 0xFF;
drivers/net/ethernet/emulex/benet/be_cmds.c
4585
nic->wol_param = 0x0F;
drivers/net/ethernet/emulex/benet/be_cmds.c
4586
nic->tunnel_iface_count = 0xFFFF;
drivers/net/ethernet/emulex/benet/be_cmds.c
4587
nic->direct_tenant_iface_count = 0xFFFF;
drivers/net/ethernet/emulex/benet/be_cmds.c
4588
nic->bw_min = 0xFFFFFFFF;
drivers/net/ethernet/emulex/benet/be_cmds.c
4589
nic->bw_max = 0xFFFFFFFF;
drivers/net/ethernet/hisilicon/hns3/hns3_common/hclge_comm_rss.c
34
int hclge_comm_rss_init_cfg(struct hnae3_handle *nic,
drivers/net/ethernet/hisilicon/hns3/hns3_common/hclge_comm_rss.c
42
if (nic->flags & HNAE3_SUPPORT_VF)
drivers/net/ethernet/hisilicon/hns3/hns3_common/hclge_comm_rss.c
43
rss_cfg->rss_size = nic->kinfo.rss_size;
drivers/net/ethernet/hisilicon/hns3/hns3_common/hclge_comm_rss.h
119
int hclge_comm_rss_init_cfg(struct hnae3_handle *nic,
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_dcb.c
431
vport->nic.kinfo.tc_map_mode = HNAE3_TC_MAP_MODE_DSCP;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_dcb.c
474
vport->nic.kinfo.tc_map_mode = HNAE3_TC_MAP_MODE_PRIO;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_dcb.c
611
kinfo = &vport->nic.kinfo;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_dcb.c
679
kinfo = &vport->nic.kinfo;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_debugfs.c
1669
kinfo = &hdev->vport[0].nic.kinfo;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_devlink.c
112
struct hnae3_handle *h = &hdev->vport->nic;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_devlink.c
77
struct hnae3_handle *h = &hdev->vport->nic;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_err.c
3403
ret = hclge_reset_tqp(&vport->nic);
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
10063
struct hnae3_handle *handle = &hdev->vport[0].nic;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
10292
struct hnae3_handle *handle = &vport->nic;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
10414
struct hnae3_handle *nic = &vport->nic;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
10440
nic->port_base_vlan_state = HNAE3_PORT_BASE_VLAN_DISABLE;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
10442
nic->port_base_vlan_state = HNAE3_PORT_BASE_VLAN_ENABLE;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
11192
struct hnae3_handle *handle = &hdev->vport->nic;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
11221
struct hnae3_client *client = vport->nic.client;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
11226
ret = client->ops->init_instance(&vport->nic);
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
11247
if (netif_msg_drv(&hdev->vport->nic))
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
11257
client->ops->uninit_instance(&vport->nic, 0);
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
11323
vport->nic.client = client;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
11352
vport->nic.client = NULL;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
11388
client->ops->uninit_instance(&vport->nic, 0);
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
11390
vport->nic.client = NULL;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
11852
ret = hclge_comm_rss_init_cfg(&hdev->vport->nic, hdev->ae_dev,
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
12136
struct hnae3_handle *handle = &hdev->vport->nic;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
12390
roundup_size = roundup_pow_of_two(vport->nic.kinfo.rss_size);
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
12401
tc_offset[i] = vport->nic.kinfo.rss_size * i;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
12413
struct hnae3_knic_private_info *kinfo = &vport->nic.kinfo;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
12537
struct hnae3_handle *handle = &vport->nic;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
12790
*tc_mode = vport->nic.kinfo.tc_map_mode;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
12792
*priority = vport->nic.kinfo.dscp_prio[dscp] == HNAE3_PRIO_ID_INVALID ? 0 :
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
12793
vport->nic.kinfo.dscp_prio[dscp];
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
1703
struct hnae3_knic_private_info *kinfo = &vport->nic.kinfo;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
1710
hdev->htqp[i].q.handle = &vport->nic;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
1734
struct hnae3_handle *nic = &vport->nic;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
1735
struct hnae3_knic_private_info *kinfo = &nic->kinfo;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
1760
struct hnae3_handle *nic = &vport->nic;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
1764
kinfo = &nic->kinfo;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
1802
struct hnae3_handle *nic = &vport->nic;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
1806
nic->pdev = hdev->pdev;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
1807
nic->ae_algo = &ae_algo;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
1808
bitmap_copy(nic->numa_node_mask.bits, hdev->numa_node_mask.bits,
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
1810
nic->kinfo.io_base = hdev->hw.hw.io_base;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
2485
struct hnae3_handle *nic = &vport->nic;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
2495
roce->rinfo.netdev = nic->kinfo.netdev;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
2499
roce->pdev = nic->pdev;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
2500
roce->ae_algo = nic->ae_algo;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
2501
bitmap_copy(roce->numa_node_mask.bits, nic->numa_node_mask.bits,
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
3093
struct hnae3_handle *handle = &hdev->vport[0].nic;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
3419
ret = hclge_get_phy_link_ksettings(&hdev->vport->nic, &cmd);
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
3443
return hclge_set_phy_link_ksettings(&hdev->vport->nic, &cmd);
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
3793
struct hnae3_handle *handle = &hdev->vport[0].nic;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
3998
client->ops->process_hw_error(&hdev->vport[0].nic, type);
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
4039
struct hnae3_handle *handle = &hdev->vport[0].nic;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
4745
return container_of(handle, struct hclge_vport, nic);
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
4749
return container_of(handle, struct hclge_vport, nic);
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
4931
tc_info = &vport->nic.kinfo.tc_info;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
5111
struct hnae3_handle *handle = &vport->nic;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
5892
struct hnae3_knic_private_info *kinfo = &vport->nic.kinfo;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
620
handle = &hdev->vport[0].nic;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
6533
tqps = hdev->vport[vf].nic.kinfo.num_tqps;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
7152
struct hnae3_handle *handle = &hdev->vport[0].nic;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
9547
struct hnae3_handle *handle = &vport->nic;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
9913
struct hnae3_ae_dev *ae_dev = pci_get_drvdata(vport->nic.pdev);
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.h
1071
struct hnae3_handle nic;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c
196
if (req->msg.param[i].tqp_index >= vport->nic.kinfo.num_tqps) {
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c
199
vport->nic.kinfo.num_tqps - 1U);
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c
207
hclge_get_queue_id(vport->nic.kinfo.tqp
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c
223
hclge_get_queue_id(vport->nic.kinfo.tqp
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c
337
struct hnae3_handle *handle = &vport->nic;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c
442
struct hnae3_handle *handle = &vport->nic;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c
493
struct hnae3_knic_private_info *kinfo = &vport->nic.kinfo;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c
522
queue_info->rss_size = cpu_to_le16(vport->nic.kinfo.rss_size);
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c
627
struct hnae3_handle *handle = &vport->nic;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c
728
struct hnae3_handle *handle = &vport->nic;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c
739
qid_in_pf = hclge_covert_handle_qid_global(&vport->nic, queue_id);
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mdio.c
206
struct net_device *netdev = hdev->vport[0].nic.netdev;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mdio.c
268
struct net_device *netdev = hdev->vport[0].nic.netdev;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c
1126
struct hnae3_knic_private_info *kinfo = &vport->nic.kinfo;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c
1201
struct hnae3_knic_private_info *kinfo = &vport[k].nic.kinfo;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c
1243
struct hnae3_knic_private_info *kinfo = &vport->nic.kinfo;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c
1320
if (hdev->vport[0].nic.kinfo.tc_map_mode == HNAE3_TC_MAP_MODE_DSCP) {
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c
1389
struct hnae3_knic_private_info *kinfo = &vport[i].nic.kinfo;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c
1408
struct hnae3_knic_private_info *kinfo = &vport->nic.kinfo;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c
1645
kinfo = &vport[k].nic.kinfo;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c
2152
kinfo = &vport->nic.kinfo;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c
273
hdev->vport[0].nic.kinfo.tc_map_mode = HNAE3_TC_MAP_MODE_PRIO;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c
274
hdev->vport[0].nic.kinfo.dscp_app_cnt = 0;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c
276
hdev->vport[0].nic.kinfo.dscp_prio[i] = HNAE3_PRIO_ID_INVALID;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c
292
pri_id = hdev->vport[0].nic.kinfo.dscp_prio[i];
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c
301
pri_id = hdev->vport[0].nic.kinfo.dscp_prio[j];
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c
589
struct hnae3_knic_private_info *kinfo = &vport->nic.kinfo;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c
637
struct hnae3_knic_private_info *kinfo = &vport->nic.kinfo;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c
658
struct hnae3_knic_private_info *kinfo = &vport->nic.kinfo;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c
677
struct hnae3_knic_private_info *kinfo = &vport->nic.kinfo;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c
717
struct hnae3_knic_private_info *kinfo = &vport->nic.kinfo;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c
952
struct hnae3_knic_private_info *kinfo = &vport->nic.kinfo;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c
981
struct hnae3_knic_private_info *kinfo = &vport[k].nic.kinfo;
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_trace.h
28
__string(devname, hdev->vport[0].nic.kinfo.netdev->name)
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_trace.h
60
__string(devname, hdev->vport[0].nic.kinfo.netdev->name)
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_devlink.c
40
struct hnae3_handle *h = &hdev->nic;
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_devlink.c
75
struct hnae3_handle *h = &hdev->nic;
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
103
return container_of(handle, struct hclgevf_dev, nic);
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
107
return container_of(handle, struct hclgevf_dev, nic);
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
1270
struct hnae3_handle *handle = &hdev->nic;
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
1370
struct hnae3_handle *handle = &hdev->nic;
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
185
struct hnae3_handle *nic = &hdev->nic;
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
1937
struct hnae3_handle *handle = &hdev->nic;
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
201
nic->port_base_vlan_state = resp_msg;
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
2143
struct hnae3_handle *nic = &hdev->nic;
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
2153
roce->rinfo.netdev = nic->kinfo.netdev;
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
2157
roce->pdev = nic->pdev;
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
2158
roce->ae_algo = nic->ae_algo;
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
2159
bitmap_copy(roce->numa_node_mask.bits, nic->numa_node_mask.bits,
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
2222
struct hnae3_handle *nic = &hdev->nic;
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
2225
ret = hclgevf_en_hw_strip_rxvtag(nic, rxvtag_strip_en);
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
2232
return hclgevf_set_vlan_filter(&hdev->nic, htons(ETH_P_8021Q), 0,
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
2471
ret = client->ops->init_instance(&hdev->nic);
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
2480
client->ops->uninit_instance(&hdev->nic, 0);
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
2486
if (netif_msg_drv(&hdev->nic))
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
2525
hdev->nic.client = client;
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
2556
hdev->nic.client = NULL;
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
2587
client->ops->uninit_instance(&hdev->nic, 0);
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
2589
hdev->nic.client = NULL;
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
2987
ret = hclge_comm_rss_init_cfg(&hdev->nic, hdev->ae_dev,
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
3305
struct hnae3_handle *nic = &hdev->nic;
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
3332
nic->port_base_vlan_state = state;
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
3334
nic->port_base_vlan_state = HNAE3_PORT_BASE_VLAN_ENABLE;
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
351
struct hnae3_handle *nic = &hdev->nic;
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
357
kinfo = &nic->kinfo;
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
377
hdev->htqp[i].q.handle = &hdev->nic;
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
407
struct hnae3_handle *handle = &hdev->nic;
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
445
struct hnae3_handle *nic = &hdev->nic;
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
448
nic->ae_algo = &ae_algovf;
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
449
nic->pdev = hdev->pdev;
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
450
bitmap_copy(nic->numa_node_mask.bits, hdev->numa_node_mask.bits,
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
452
nic->flags |= HNAE3_SUPPORT_VF;
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
453
nic->kinfo.io_base = hdev->hw.hw.io_base;
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
766
struct hnae3_handle *handle = &hdev->nic;
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c
808
struct hnae3_handle *handle = &hdev->nic;
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.h
269
struct hnae3_handle nic;
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_trace.h
26
__string(devname, hdev->nic.kinfo.netdev->name)
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_trace.h
58
__string(devname, hdev->nic.kinfo.netdev->name)
drivers/net/ethernet/intel/e100.c
1010
netif_printk(nic, hw, KERN_DEBUG, nic->netdev,
drivers/net/ethernet/intel/e100.c
1019
netif_printk(nic, hw, KERN_DEBUG, nic->netdev,
drivers/net/ethernet/intel/e100.c
1027
static inline int e100_phy_supports_mii(struct nic *nic)
drivers/net/ethernet/intel/e100.c
1032
return (nic->mdio_ctrl != mdio_ctrl_phy_mii_emulated);
drivers/net/ethernet/intel/e100.c
1035
static void e100_get_defaults(struct nic *nic)
drivers/net/ethernet/intel/e100.c
1041
nic->mac = (nic->flags & ich) ? mac_82559_D101M : nic->pdev->revision;
drivers/net/ethernet/intel/e100.c
1042
if (nic->mac == mac_unknown)
drivers/net/ethernet/intel/e100.c
1043
nic->mac = mac_82557_D100_A;
drivers/net/ethernet/intel/e100.c
1045
nic->params.rfds = rfds;
drivers/net/ethernet/intel/e100.c
1046
nic->params.cbs = cbs;
drivers/net/ethernet/intel/e100.c
1049
nic->tx_threshold = 0xE0;
drivers/net/ethernet/intel/e100.c
1052
nic->tx_command = cpu_to_le16(cb_tx | cb_tx_sf |
drivers/net/ethernet/intel/e100.c
1053
((nic->mac >= mac_82558_D101_A4) ? cb_cid : cb_i));
drivers/net/ethernet/intel/e100.c
1056
nic->blank_rfd.command = 0;
drivers/net/ethernet/intel/e100.c
1057
nic->blank_rfd.rbd = cpu_to_le32(0xFFFFFFFF);
drivers/net/ethernet/intel/e100.c
1058
nic->blank_rfd.size = cpu_to_le16(VLAN_ETH_FRAME_LEN + ETH_FCS_LEN);
drivers/net/ethernet/intel/e100.c
1061
nic->mii.phy_id_mask = 0x1F;
drivers/net/ethernet/intel/e100.c
1062
nic->mii.reg_num_mask = 0x1F;
drivers/net/ethernet/intel/e100.c
1063
nic->mii.dev = nic->netdev;
drivers/net/ethernet/intel/e100.c
1064
nic->mii.mdio_read = mdio_read;
drivers/net/ethernet/intel/e100.c
1065
nic->mii.mdio_write = mdio_write;
drivers/net/ethernet/intel/e100.c
1068
static int e100_configure(struct nic *nic, struct cb *cb, struct sk_buff *skb)
drivers/net/ethernet/intel/e100.c
1072
struct net_device *netdev = nic->netdev;
drivers/net/ethernet/intel/e100.c
1085
if (e100_phy_supports_mii(nic))
drivers/net/ethernet/intel/e100.c
1104
config->adaptive_ifs = nic->adaptive_ifs;
drivers/net/ethernet/intel/e100.c
1105
config->loopback = nic->loopback;
drivers/net/ethernet/intel/e100.c
1107
if (nic->mii.force_media && nic->mii.full_duplex)
drivers/net/ethernet/intel/e100.c
1110
if (nic->flags & promiscuous || nic->loopback) {
drivers/net/ethernet/intel/e100.c
1119
if (nic->flags & multicast_all)
drivers/net/ethernet/intel/e100.c
1123
if (netif_running(nic->netdev) || !(nic->flags & wol_magic))
drivers/net/ethernet/intel/e100.c
1126
if (nic->mac >= mac_82558_D101_A4) {
drivers/net/ethernet/intel/e100.c
1131
if (nic->mac >= mac_82559_D101M) {
drivers/net/ethernet/intel/e100.c
1134
if (nic->mac >= mac_82551_10) {
drivers/net/ethernet/intel/e100.c
1149
netif_printk(nic, hw, KERN_DEBUG, nic->netdev, "[00-07]=%8ph\n",
drivers/net/ethernet/intel/e100.c
1151
netif_printk(nic, hw, KERN_DEBUG, nic->netdev, "[08-15]=%8ph\n",
drivers/net/ethernet/intel/e100.c
1153
netif_printk(nic, hw, KERN_DEBUG, nic->netdev, "[16-23]=%8ph\n",
drivers/net/ethernet/intel/e100.c
1218
static const struct firmware *e100_request_firmware(struct nic *nic)
drivers/net/ethernet/intel/e100.c
1221
const struct firmware *fw = nic->fw;
drivers/net/ethernet/intel/e100.c
1227
if (nic->flags & ich)
drivers/net/ethernet/intel/e100.c
1243
if (nic->mac == mac_82559_D101M) {
drivers/net/ethernet/intel/e100.c
1245
} else if (nic->mac == mac_82559_D101S) {
drivers/net/ethernet/intel/e100.c
1247
} else if (nic->mac == mac_82551_F || nic->mac == mac_82551_10) {
drivers/net/ethernet/intel/e100.c
1260
err = request_firmware(&fw, fw_name, &nic->pdev->dev);
drivers/net/ethernet/intel/e100.c
1264
netif_err(nic, probe, nic->netdev,
drivers/net/ethernet/intel/e100.c
1269
netif_info(nic, probe, nic->netdev,
drivers/net/ethernet/intel/e100.c
1279
netif_err(nic, probe, nic->netdev,
drivers/net/ethernet/intel/e100.c
1293
netif_err(nic, probe, nic->netdev,
drivers/net/ethernet/intel/e100.c
1302
nic->fw = fw;
drivers/net/ethernet/intel/e100.c
1306
static int e100_setup_ucode(struct nic *nic, struct cb *cb,
drivers/net/ethernet/intel/e100.c
1336
static inline int e100_load_ucode_wait(struct nic *nic)
drivers/net/ethernet/intel/e100.c
1340
struct cb *cb = nic->cb_to_clean;
drivers/net/ethernet/intel/e100.c
1342
fw = e100_request_firmware(nic);
drivers/net/ethernet/intel/e100.c
1347
if ((err = e100_exec_cb(nic, (void *)fw, e100_setup_ucode)))
drivers/net/ethernet/intel/e100.c
1348
netif_err(nic, probe, nic->netdev,
drivers/net/ethernet/intel/e100.c
1352
nic->cuc_cmd = cuc_start;
drivers/net/ethernet/intel/e100.c
1355
e100_write_flush(nic);
drivers/net/ethernet/intel/e100.c
1365
iowrite8(~0, &nic->csr->scb.stat_ack);
drivers/net/ethernet/intel/e100.c
1369
netif_err(nic, probe, nic->netdev, "ucode load failed\n");
drivers/net/ethernet/intel/e100.c
1376
static int e100_setup_iaaddr(struct nic *nic, struct cb *cb,
drivers/net/ethernet/intel/e100.c
1380
memcpy(cb->u.iaaddr, nic->netdev->dev_addr, ETH_ALEN);
drivers/net/ethernet/intel/e100.c
1384
static int e100_dump(struct nic *nic, struct cb *cb, struct sk_buff *skb)
drivers/net/ethernet/intel/e100.c
1387
cb->u.dump_buffer_addr = cpu_to_le32(nic->dma_addr +
drivers/net/ethernet/intel/e100.c
1392
static int e100_phy_check_without_mii(struct nic *nic)
drivers/net/ethernet/intel/e100.c
1397
phy_type = (le16_to_cpu(nic->eeprom[eeprom_phy_iface]) >> 8) & 0x0f;
drivers/net/ethernet/intel/e100.c
1409
netif_info(nic, probe, nic->netdev,
drivers/net/ethernet/intel/e100.c
1412
nic->mdio_ctrl = mdio_ctrl_phy_mii_emulated;
drivers/net/ethernet/intel/e100.c
1413
nic->mii.phy_id = 0; /* is this ok for an MII-less PHY? */
drivers/net/ethernet/intel/e100.c
1432
static int e100_phy_init(struct nic *nic)
drivers/net/ethernet/intel/e100.c
1434
struct net_device *netdev = nic->netdev;
drivers/net/ethernet/intel/e100.c
1440
nic->mii.phy_id = (addr == 0) ? 1 : (addr == 1) ? 0 : addr;
drivers/net/ethernet/intel/e100.c
1441
bmcr = mdio_read(netdev, nic->mii.phy_id, MII_BMCR);
drivers/net/ethernet/intel/e100.c
1442
stat = mdio_read(netdev, nic->mii.phy_id, MII_BMSR);
drivers/net/ethernet/intel/e100.c
1443
stat = mdio_read(netdev, nic->mii.phy_id, MII_BMSR);
drivers/net/ethernet/intel/e100.c
1452
if (e100_phy_check_without_mii(nic))
drivers/net/ethernet/intel/e100.c
1456
netif_err(nic, hw, nic->netdev,
drivers/net/ethernet/intel/e100.c
1461
netif_printk(nic, hw, KERN_DEBUG, nic->netdev,
drivers/net/ethernet/intel/e100.c
1462
"phy_addr = %d\n", nic->mii.phy_id);
drivers/net/ethernet/intel/e100.c
1465
id_lo = mdio_read(netdev, nic->mii.phy_id, MII_PHYSID1);
drivers/net/ethernet/intel/e100.c
1466
id_hi = mdio_read(netdev, nic->mii.phy_id, MII_PHYSID2);
drivers/net/ethernet/intel/e100.c
1467
nic->phy = (u32)id_hi << 16 | (u32)id_lo;
drivers/net/ethernet/intel/e100.c
1468
netif_printk(nic, hw, KERN_DEBUG, nic->netdev,
drivers/net/ethernet/intel/e100.c
1469
"phy ID = 0x%08X\n", nic->phy);
drivers/net/ethernet/intel/e100.c
1473
if (addr != nic->mii.phy_id) {
drivers/net/ethernet/intel/e100.c
1475
} else if (nic->phy != phy_82552_v) {
drivers/net/ethernet/intel/e100.c
1486
if (nic->phy == phy_82552_v)
drivers/net/ethernet/intel/e100.c
1487
mdio_write(netdev, nic->mii.phy_id, MII_BMCR,
drivers/net/ethernet/intel/e100.c
1492
if ((nic->phy & NCS_PHY_MODEL_MASK) == phy_nsc_tx) {
drivers/net/ethernet/intel/e100.c
1494
cong = mdio_read(netdev, nic->mii.phy_id, MII_NSC_CONG);
drivers/net/ethernet/intel/e100.c
1497
mdio_write(netdev, nic->mii.phy_id, MII_NSC_CONG, cong);
drivers/net/ethernet/intel/e100.c
1500
if (nic->phy == phy_82552_v) {
drivers/net/ethernet/intel/e100.c
1501
u16 advert = mdio_read(netdev, nic->mii.phy_id, MII_ADVERTISE);
drivers/net/ethernet/intel/e100.c
1504
nic->mdio_ctrl = mdio_ctrl_phy_82552_v;
drivers/net/ethernet/intel/e100.c
1508
mdio_write(netdev, nic->mii.phy_id, MII_ADVERTISE, advert);
drivers/net/ethernet/intel/e100.c
1511
bmcr = mdio_read(netdev, nic->mii.phy_id, MII_BMCR);
drivers/net/ethernet/intel/e100.c
1513
mdio_write(netdev, nic->mii.phy_id, MII_BMCR, bmcr);
drivers/net/ethernet/intel/e100.c
1514
} else if ((nic->mac >= mac_82550_D102) || ((nic->flags & ich) &&
drivers/net/ethernet/intel/e100.c
1515
(mdio_read(netdev, nic->mii.phy_id, MII_TPISTATUS) & 0x8000) &&
drivers/net/ethernet/intel/e100.c
1516
(le16_to_cpu(nic->eeprom[eeprom_cnfg_mdix]) & eeprom_mdix_enabled))) {
drivers/net/ethernet/intel/e100.c
1518
mdio_write(netdev, nic->mii.phy_id, MII_NCONFIG,
drivers/net/ethernet/intel/e100.c
1519
nic->mii.force_media ? 0 : NCONFIG_AUTO_SWITCH);
drivers/net/ethernet/intel/e100.c
1525
static int e100_hw_init(struct nic *nic)
drivers/net/ethernet/intel/e100.c
1529
e100_hw_reset(nic);
drivers/net/ethernet/intel/e100.c
1531
netif_err(nic, hw, nic->netdev, "e100_hw_init\n");
drivers/net/ethernet/intel/e100.c
1532
if ((err = e100_self_test(nic)))
drivers/net/ethernet/intel/e100.c
1535
if ((err = e100_phy_init(nic)))
drivers/net/ethernet/intel/e100.c
1537
if ((err = e100_exec_cmd(nic, cuc_load_base, 0)))
drivers/net/ethernet/intel/e100.c
1539
if ((err = e100_exec_cmd(nic, ruc_load_base, 0)))
drivers/net/ethernet/intel/e100.c
1541
if ((err = e100_load_ucode_wait(nic)))
drivers/net/ethernet/intel/e100.c
1543
if ((err = e100_exec_cb(nic, NULL, e100_configure)))
drivers/net/ethernet/intel/e100.c
1545
if ((err = e100_exec_cb(nic, NULL, e100_setup_iaaddr)))
drivers/net/ethernet/intel/e100.c
1547
if ((err = e100_exec_cmd(nic, cuc_dump_addr,
drivers/net/ethernet/intel/e100.c
1548
nic->dma_addr + offsetof(struct mem, stats))))
drivers/net/ethernet/intel/e100.c
1550
if ((err = e100_exec_cmd(nic, cuc_dump_reset, 0)))
drivers/net/ethernet/intel/e100.c
1553
e100_disable_irq(nic);
drivers/net/ethernet/intel/e100.c
1558
static int e100_multi(struct nic *nic, struct cb *cb, struct sk_buff *skb)
drivers/net/ethernet/intel/e100.c
1560
struct net_device *netdev = nic->netdev;
drivers/net/ethernet/intel/e100.c
1578
struct nic *nic = netdev_priv(netdev);
drivers/net/ethernet/intel/e100.c
1580
netif_printk(nic, hw, KERN_DEBUG, nic->netdev,
drivers/net/ethernet/intel/e100.c
1585
nic->flags |= promiscuous;
drivers/net/ethernet/intel/e100.c
1587
nic->flags &= ~promiscuous;
drivers/net/ethernet/intel/e100.c
1591
nic->flags |= multicast_all;
drivers/net/ethernet/intel/e100.c
1593
nic->flags &= ~multicast_all;
drivers/net/ethernet/intel/e100.c
1595
e100_exec_cb(nic, NULL, e100_configure);
drivers/net/ethernet/intel/e100.c
1596
e100_exec_cb(nic, NULL, e100_multi);
drivers/net/ethernet/intel/e100.c
1599
static void e100_update_stats(struct nic *nic)
drivers/net/ethernet/intel/e100.c
1601
struct net_device *dev = nic->netdev;
drivers/net/ethernet/intel/e100.c
1603
struct stats *s = &nic->mem->stats;
drivers/net/ethernet/intel/e100.c
1604
__le32 *complete = (nic->mac < mac_82558_D101_A4) ? &s->fc_xmt_pause :
drivers/net/ethernet/intel/e100.c
1605
(nic->mac < mac_82559_D101M) ? (__le32 *)&s->xmt_tco_frames :
drivers/net/ethernet/intel/e100.c
1614
nic->tx_frames = le32_to_cpu(s->tx_good_frames);
drivers/net/ethernet/intel/e100.c
1615
nic->tx_collisions = le32_to_cpu(s->tx_total_collisions);
drivers/net/ethernet/intel/e100.c
1620
ns->collisions += nic->tx_collisions;
drivers/net/ethernet/intel/e100.c
1623
nic->rx_short_frame_errors +=
drivers/net/ethernet/intel/e100.c
1625
ns->rx_length_errors = nic->rx_short_frame_errors +
drivers/net/ethernet/intel/e100.c
1626
nic->rx_over_length_errors;
drivers/net/ethernet/intel/e100.c
1636
nic->tx_deferred += le32_to_cpu(s->tx_deferred);
drivers/net/ethernet/intel/e100.c
1637
nic->tx_single_collisions +=
drivers/net/ethernet/intel/e100.c
1639
nic->tx_multiple_collisions +=
drivers/net/ethernet/intel/e100.c
1641
if (nic->mac >= mac_82558_D101_A4) {
drivers/net/ethernet/intel/e100.c
1642
nic->tx_fc_pause += le32_to_cpu(s->fc_xmt_pause);
drivers/net/ethernet/intel/e100.c
1643
nic->rx_fc_pause += le32_to_cpu(s->fc_rcv_pause);
drivers/net/ethernet/intel/e100.c
1644
nic->rx_fc_unsupported +=
drivers/net/ethernet/intel/e100.c
1646
if (nic->mac >= mac_82559_D101M) {
drivers/net/ethernet/intel/e100.c
1647
nic->tx_tco_frames +=
drivers/net/ethernet/intel/e100.c
1649
nic->rx_tco_frames +=
drivers/net/ethernet/intel/e100.c
1656
if (e100_exec_cmd(nic, cuc_dump_reset, 0))
drivers/net/ethernet/intel/e100.c
1657
netif_printk(nic, tx_err, KERN_DEBUG, nic->netdev,
drivers/net/ethernet/intel/e100.c
1661
static void e100_adjust_adaptive_ifs(struct nic *nic, int speed, int duplex)
drivers/net/ethernet/intel/e100.c
1667
u32 prev = nic->adaptive_ifs;
drivers/net/ethernet/intel/e100.c
1670
if ((nic->tx_frames / 32 < nic->tx_collisions) &&
drivers/net/ethernet/intel/e100.c
1671
(nic->tx_frames > min_frames)) {
drivers/net/ethernet/intel/e100.c
1672
if (nic->adaptive_ifs < 60)
drivers/net/ethernet/intel/e100.c
1673
nic->adaptive_ifs += 5;
drivers/net/ethernet/intel/e100.c
1674
} else if (nic->tx_frames < min_frames) {
drivers/net/ethernet/intel/e100.c
1675
if (nic->adaptive_ifs >= 5)
drivers/net/ethernet/intel/e100.c
1676
nic->adaptive_ifs -= 5;
drivers/net/ethernet/intel/e100.c
1678
if (nic->adaptive_ifs != prev)
drivers/net/ethernet/intel/e100.c
1679
e100_exec_cb(nic, NULL, e100_configure);
drivers/net/ethernet/intel/e100.c
1685
struct nic *nic = timer_container_of(nic, t, watchdog);
drivers/net/ethernet/intel/e100.c
1689
netif_printk(nic, timer, KERN_DEBUG, nic->netdev,
drivers/net/ethernet/intel/e100.c
1694
mii_ethtool_gset(&nic->mii, &cmd);
drivers/net/ethernet/intel/e100.c
1697
if (mii_link_ok(&nic->mii) && !netif_carrier_ok(nic->netdev)) {
drivers/net/ethernet/intel/e100.c
1698
netdev_info(nic->netdev, "NIC Link is Up %u Mbps %s Duplex\n",
drivers/net/ethernet/intel/e100.c
1701
} else if (!mii_link_ok(&nic->mii) && netif_carrier_ok(nic->netdev)) {
drivers/net/ethernet/intel/e100.c
1702
netdev_info(nic->netdev, "NIC Link is Down\n");
drivers/net/ethernet/intel/e100.c
1705
mii_check_link(&nic->mii);
drivers/net/ethernet/intel/e100.c
1712
spin_lock_irq(&nic->cmd_lock);
drivers/net/ethernet/intel/e100.c
1713
iowrite8(ioread8(&nic->csr->scb.cmd_hi) | irq_sw_gen,&nic->csr->scb.cmd_hi);
drivers/net/ethernet/intel/e100.c
1714
e100_write_flush(nic);
drivers/net/ethernet/intel/e100.c
1715
spin_unlock_irq(&nic->cmd_lock);
drivers/net/ethernet/intel/e100.c
1717
e100_update_stats(nic);
drivers/net/ethernet/intel/e100.c
1718
e100_adjust_adaptive_ifs(nic, speed, cmd.duplex);
drivers/net/ethernet/intel/e100.c
1720
if (nic->mac <= mac_82557_D100_C)
drivers/net/ethernet/intel/e100.c
1722
e100_set_multicast_list(nic->netdev);
drivers/net/ethernet/intel/e100.c
1724
if (nic->flags & ich && speed == SPEED_10 && cmd.duplex == DUPLEX_HALF)
drivers/net/ethernet/intel/e100.c
1726
nic->flags |= ich_10h_workaround;
drivers/net/ethernet/intel/e100.c
1728
nic->flags &= ~ich_10h_workaround;
drivers/net/ethernet/intel/e100.c
1730
mod_timer(&nic->watchdog,
drivers/net/ethernet/intel/e100.c
1734
static int e100_xmit_prepare(struct nic *nic, struct cb *cb,
drivers/net/ethernet/intel/e100.c
1738
cb->command = nic->tx_command;
drivers/net/ethernet/intel/e100.c
1740
dma_addr = dma_map_single(&nic->pdev->dev, skb->data, skb->len,
drivers/net/ethernet/intel/e100.c
1743
if (dma_mapping_error(&nic->pdev->dev, dma_addr))
drivers/net/ethernet/intel/e100.c
1756
if ((nic->cbs_avail & ~15) == nic->cbs_avail)
drivers/net/ethernet/intel/e100.c
1760
cb->u.tcb.threshold = nic->tx_threshold;
drivers/net/ethernet/intel/e100.c
1771
struct nic *nic = netdev_priv(netdev);
drivers/net/ethernet/intel/e100.c
1774
if (nic->flags & ich_10h_workaround) {
drivers/net/ethernet/intel/e100.c
1778
if (e100_exec_cmd(nic, cuc_nop, 0))
drivers/net/ethernet/intel/e100.c
1779
netif_printk(nic, tx_err, KERN_DEBUG, nic->netdev,
drivers/net/ethernet/intel/e100.c
1784
err = e100_exec_cb(nic, skb, e100_xmit_prepare);
drivers/net/ethernet/intel/e100.c
1789
netif_printk(nic, tx_err, KERN_DEBUG, nic->netdev,
drivers/net/ethernet/intel/e100.c
1795
netif_printk(nic, tx_err, KERN_DEBUG, nic->netdev,
drivers/net/ethernet/intel/e100.c
1804
static int e100_tx_clean(struct nic *nic)
drivers/net/ethernet/intel/e100.c
1806
struct net_device *dev = nic->netdev;
drivers/net/ethernet/intel/e100.c
1810
spin_lock(&nic->cb_lock);
drivers/net/ethernet/intel/e100.c
1813
for (cb = nic->cb_to_clean;
drivers/net/ethernet/intel/e100.c
1815
cb = nic->cb_to_clean = cb->next) {
drivers/net/ethernet/intel/e100.c
1817
netif_printk(nic, tx_done, KERN_DEBUG, nic->netdev,
drivers/net/ethernet/intel/e100.c
1819
(int)(((void*)cb - (void*)nic->cbs)/sizeof(struct cb)),
drivers/net/ethernet/intel/e100.c
1826
dma_unmap_single(&nic->pdev->dev,
drivers/net/ethernet/intel/e100.c
1835
nic->cbs_avail++;
drivers/net/ethernet/intel/e100.c
1838
spin_unlock(&nic->cb_lock);
drivers/net/ethernet/intel/e100.c
1841
if (unlikely(tx_cleaned && netif_queue_stopped(nic->netdev)))
drivers/net/ethernet/intel/e100.c
1842
netif_wake_queue(nic->netdev);
drivers/net/ethernet/intel/e100.c
1847
static void e100_clean_cbs(struct nic *nic)
drivers/net/ethernet/intel/e100.c
1849
if (nic->cbs) {
drivers/net/ethernet/intel/e100.c
1850
while (nic->cbs_avail != nic->params.cbs.count) {
drivers/net/ethernet/intel/e100.c
1851
struct cb *cb = nic->cb_to_clean;
drivers/net/ethernet/intel/e100.c
1853
dma_unmap_single(&nic->pdev->dev,
drivers/net/ethernet/intel/e100.c
1859
nic->cb_to_clean = nic->cb_to_clean->next;
drivers/net/ethernet/intel/e100.c
1860
nic->cbs_avail++;
drivers/net/ethernet/intel/e100.c
1862
dma_pool_free(nic->cbs_pool, nic->cbs, nic->cbs_dma_addr);
drivers/net/ethernet/intel/e100.c
1863
nic->cbs = NULL;
drivers/net/ethernet/intel/e100.c
1864
nic->cbs_avail = 0;
drivers/net/ethernet/intel/e100.c
1866
nic->cuc_cmd = cuc_start;
drivers/net/ethernet/intel/e100.c
1867
nic->cb_to_use = nic->cb_to_send = nic->cb_to_clean =
drivers/net/ethernet/intel/e100.c
1868
nic->cbs;
drivers/net/ethernet/intel/e100.c
1871
static int e100_alloc_cbs(struct nic *nic)
drivers/net/ethernet/intel/e100.c
1874
unsigned int i, count = nic->params.cbs.count;
drivers/net/ethernet/intel/e100.c
1876
nic->cuc_cmd = cuc_start;
drivers/net/ethernet/intel/e100.c
1877
nic->cb_to_use = nic->cb_to_send = nic->cb_to_clean = NULL;
drivers/net/ethernet/intel/e100.c
1878
nic->cbs_avail = 0;
drivers/net/ethernet/intel/e100.c
1880
nic->cbs = dma_pool_zalloc(nic->cbs_pool, GFP_KERNEL,
drivers/net/ethernet/intel/e100.c
1881
&nic->cbs_dma_addr);
drivers/net/ethernet/intel/e100.c
1882
if (!nic->cbs)
drivers/net/ethernet/intel/e100.c
1885
for (cb = nic->cbs, i = 0; i < count; cb++, i++) {
drivers/net/ethernet/intel/e100.c
1886
cb->next = (i + 1 < count) ? cb + 1 : nic->cbs;
drivers/net/ethernet/intel/e100.c
1887
cb->prev = (i == 0) ? nic->cbs + count - 1 : cb - 1;
drivers/net/ethernet/intel/e100.c
1889
cb->dma_addr = nic->cbs_dma_addr + i * sizeof(struct cb);
drivers/net/ethernet/intel/e100.c
1890
cb->link = cpu_to_le32(nic->cbs_dma_addr +
drivers/net/ethernet/intel/e100.c
1894
nic->cb_to_use = nic->cb_to_send = nic->cb_to_clean = nic->cbs;
drivers/net/ethernet/intel/e100.c
1895
nic->cbs_avail = count;
drivers/net/ethernet/intel/e100.c
1900
static inline void e100_start_receiver(struct nic *nic, struct rx *rx)
drivers/net/ethernet/intel/e100.c
1902
if (!nic->rxs) return;
drivers/net/ethernet/intel/e100.c
1903
if (RU_SUSPENDED != nic->ru_running) return;
drivers/net/ethernet/intel/e100.c
1906
if (!rx) rx = nic->rxs;
drivers/net/ethernet/intel/e100.c
1910
e100_exec_cmd(nic, ruc_start, rx->dma_addr);
drivers/net/ethernet/intel/e100.c
1911
nic->ru_running = RU_RUNNING;
drivers/net/ethernet/intel/e100.c
1916
static int e100_rx_alloc_skb(struct nic *nic, struct rx *rx)
drivers/net/ethernet/intel/e100.c
1918
if (!(rx->skb = netdev_alloc_skb_ip_align(nic->netdev, RFD_BUF_LEN)))
drivers/net/ethernet/intel/e100.c
1922
skb_copy_to_linear_data(rx->skb, &nic->blank_rfd, sizeof(struct rfd));
drivers/net/ethernet/intel/e100.c
1923
rx->dma_addr = dma_map_single(&nic->pdev->dev, rx->skb->data,
drivers/net/ethernet/intel/e100.c
1926
if (dma_mapping_error(&nic->pdev->dev, rx->dma_addr)) {
drivers/net/ethernet/intel/e100.c
1939
dma_sync_single_for_device(&nic->pdev->dev,
drivers/net/ethernet/intel/e100.c
1948
static int e100_rx_indicate(struct nic *nic, struct rx *rx,
drivers/net/ethernet/intel/e100.c
1951
struct net_device *dev = nic->netdev;
drivers/net/ethernet/intel/e100.c
1961
dma_sync_single_for_cpu(&nic->pdev->dev, rx->dma_addr,
drivers/net/ethernet/intel/e100.c
1965
netif_printk(nic, rx_status, KERN_DEBUG, nic->netdev,
drivers/net/ethernet/intel/e100.c
1977
(RU_RUNNING == nic->ru_running))
drivers/net/ethernet/intel/e100.c
1979
if (ioread8(&nic->csr->scb.status) & rus_no_res)
drivers/net/ethernet/intel/e100.c
1980
nic->ru_running = RU_SUSPENDED;
drivers/net/ethernet/intel/e100.c
1981
dma_sync_single_for_device(&nic->pdev->dev, rx->dma_addr,
drivers/net/ethernet/intel/e100.c
1995
dma_unmap_single(&nic->pdev->dev, rx->dma_addr, RFD_BUF_LEN,
drivers/net/ethernet/intel/e100.c
2005
(RU_RUNNING == nic->ru_running)) {
drivers/net/ethernet/intel/e100.c
2007
if (ioread8(&nic->csr->scb.status) & rus_no_res)
drivers/net/ethernet/intel/e100.c
2008
nic->ru_running = RU_SUSPENDED;
drivers/net/ethernet/intel/e100.c
2014
skb->protocol = eth_type_trans(skb, nic->netdev);
drivers/net/ethernet/intel/e100.c
2022
nic->rx_over_length_errors++;
drivers/net/ethernet/intel/e100.c
2031
nic->rx_over_length_errors++;
drivers/net/ethernet/intel/e100.c
2047
static void e100_rx_clean(struct nic *nic, unsigned int *work_done,
drivers/net/ethernet/intel/e100.c
2056
for (rx = nic->rx_to_clean; rx->skb; rx = nic->rx_to_clean = rx->next) {
drivers/net/ethernet/intel/e100.c
2057
err = e100_rx_indicate(nic, rx, work_done, work_to_do);
drivers/net/ethernet/intel/e100.c
2070
if (-EAGAIN != err && RU_SUSPENDED == nic->ru_running)
drivers/net/ethernet/intel/e100.c
2073
old_before_last_rx = nic->rx_to_use->prev->prev;
drivers/net/ethernet/intel/e100.c
2077
for (rx = nic->rx_to_use; !rx->skb; rx = nic->rx_to_use = rx->next) {
drivers/net/ethernet/intel/e100.c
2078
if (unlikely(e100_rx_alloc_skb(nic, rx)))
drivers/net/ethernet/intel/e100.c
2082
new_before_last_rx = nic->rx_to_use->prev->prev;
drivers/net/ethernet/intel/e100.c
2097
dma_sync_single_for_device(&nic->pdev->dev,
drivers/net/ethernet/intel/e100.c
2106
dma_sync_single_for_device(&nic->pdev->dev,
drivers/net/ethernet/intel/e100.c
2112
dma_sync_single_for_device(&nic->pdev->dev,
drivers/net/ethernet/intel/e100.c
2120
iowrite8(stat_ack_rnr, &nic->csr->scb.stat_ack);
drivers/net/ethernet/intel/e100.c
2121
e100_start_receiver(nic, nic->rx_to_clean);
drivers/net/ethernet/intel/e100.c
2127
static void e100_rx_clean_list(struct nic *nic)
drivers/net/ethernet/intel/e100.c
2130
unsigned int i, count = nic->params.rfds.count;
drivers/net/ethernet/intel/e100.c
2132
nic->ru_running = RU_UNINITIALIZED;
drivers/net/ethernet/intel/e100.c
2134
if (nic->rxs) {
drivers/net/ethernet/intel/e100.c
2135
for (rx = nic->rxs, i = 0; i < count; rx++, i++) {
drivers/net/ethernet/intel/e100.c
2137
dma_unmap_single(&nic->pdev->dev,
drivers/net/ethernet/intel/e100.c
2143
kfree(nic->rxs);
drivers/net/ethernet/intel/e100.c
2144
nic->rxs = NULL;
drivers/net/ethernet/intel/e100.c
2147
nic->rx_to_use = nic->rx_to_clean = NULL;
drivers/net/ethernet/intel/e100.c
2150
static int e100_rx_alloc_list(struct nic *nic)
drivers/net/ethernet/intel/e100.c
2153
unsigned int i, count = nic->params.rfds.count;
drivers/net/ethernet/intel/e100.c
2156
nic->rx_to_use = nic->rx_to_clean = NULL;
drivers/net/ethernet/intel/e100.c
2157
nic->ru_running = RU_UNINITIALIZED;
drivers/net/ethernet/intel/e100.c
2159
if (!(nic->rxs = kzalloc_objs(struct rx, count)))
drivers/net/ethernet/intel/e100.c
2162
for (rx = nic->rxs, i = 0; i < count; rx++, i++) {
drivers/net/ethernet/intel/e100.c
2163
rx->next = (i + 1 < count) ? rx + 1 : nic->rxs;
drivers/net/ethernet/intel/e100.c
2164
rx->prev = (i == 0) ? nic->rxs + count - 1 : rx - 1;
drivers/net/ethernet/intel/e100.c
2165
if (e100_rx_alloc_skb(nic, rx)) {
drivers/net/ethernet/intel/e100.c
2166
e100_rx_clean_list(nic);
drivers/net/ethernet/intel/e100.c
2177
rx = nic->rxs->prev->prev;
drivers/net/ethernet/intel/e100.c
2181
dma_sync_single_for_device(&nic->pdev->dev, rx->dma_addr,
drivers/net/ethernet/intel/e100.c
2184
nic->rx_to_use = nic->rx_to_clean = nic->rxs;
drivers/net/ethernet/intel/e100.c
2185
nic->ru_running = RU_SUSPENDED;
drivers/net/ethernet/intel/e100.c
2193
struct nic *nic = netdev_priv(netdev);
drivers/net/ethernet/intel/e100.c
2194
u8 stat_ack = ioread8(&nic->csr->scb.stat_ack);
drivers/net/ethernet/intel/e100.c
2196
netif_printk(nic, intr, KERN_DEBUG, nic->netdev,
drivers/net/ethernet/intel/e100.c
2204
iowrite8(stat_ack, &nic->csr->scb.stat_ack);
drivers/net/ethernet/intel/e100.c
2208
nic->ru_running = RU_SUSPENDED;
drivers/net/ethernet/intel/e100.c
2210
if (likely(napi_schedule_prep(&nic->napi))) {
drivers/net/ethernet/intel/e100.c
2211
e100_disable_irq(nic);
drivers/net/ethernet/intel/e100.c
2212
__napi_schedule(&nic->napi);
drivers/net/ethernet/intel/e100.c
2220
struct nic *nic = container_of(napi, struct nic, napi);
drivers/net/ethernet/intel/e100.c
2223
e100_rx_clean(nic, &work_done, budget);
drivers/net/ethernet/intel/e100.c
2224
e100_tx_clean(nic);
drivers/net/ethernet/intel/e100.c
2232
e100_enable_irq(nic);
drivers/net/ethernet/intel/e100.c
2240
struct nic *nic = netdev_priv(netdev);
drivers/net/ethernet/intel/e100.c
2242
e100_disable_irq(nic);
drivers/net/ethernet/intel/e100.c
2243
e100_intr(nic->pdev->irq, netdev);
drivers/net/ethernet/intel/e100.c
2244
e100_tx_clean(nic);
drivers/net/ethernet/intel/e100.c
2245
e100_enable_irq(nic);
drivers/net/ethernet/intel/e100.c
2251
struct nic *nic = netdev_priv(netdev);
drivers/net/ethernet/intel/e100.c
2258
e100_exec_cb(nic, NULL, e100_setup_iaaddr);
drivers/net/ethernet/intel/e100.c
2263
static int e100_asf(struct nic *nic)
drivers/net/ethernet/intel/e100.c
2266
return (nic->pdev->device >= 0x1050) && (nic->pdev->device <= 0x1057) &&
drivers/net/ethernet/intel/e100.c
2267
(le16_to_cpu(nic->eeprom[eeprom_config_asf]) & eeprom_asf) &&
drivers/net/ethernet/intel/e100.c
2268
!(le16_to_cpu(nic->eeprom[eeprom_config_asf]) & eeprom_gcl) &&
drivers/net/ethernet/intel/e100.c
2269
((le16_to_cpu(nic->eeprom[eeprom_smbus_addr]) & 0xFF) != 0xFE);
drivers/net/ethernet/intel/e100.c
2272
static int e100_up(struct nic *nic)
drivers/net/ethernet/intel/e100.c
2276
if ((err = e100_rx_alloc_list(nic)))
drivers/net/ethernet/intel/e100.c
2278
if ((err = e100_alloc_cbs(nic)))
drivers/net/ethernet/intel/e100.c
2280
if ((err = e100_hw_init(nic)))
drivers/net/ethernet/intel/e100.c
2282
e100_set_multicast_list(nic->netdev);
drivers/net/ethernet/intel/e100.c
2283
e100_start_receiver(nic, NULL);
drivers/net/ethernet/intel/e100.c
2284
mod_timer(&nic->watchdog, jiffies);
drivers/net/ethernet/intel/e100.c
2285
if ((err = request_irq(nic->pdev->irq, e100_intr, IRQF_SHARED,
drivers/net/ethernet/intel/e100.c
2286
nic->netdev->name, nic->netdev)))
drivers/net/ethernet/intel/e100.c
2288
netif_wake_queue(nic->netdev);
drivers/net/ethernet/intel/e100.c
2289
napi_enable(&nic->napi);
drivers/net/ethernet/intel/e100.c
2292
e100_enable_irq(nic);
drivers/net/ethernet/intel/e100.c
2296
timer_delete_sync(&nic->watchdog);
drivers/net/ethernet/intel/e100.c
2298
e100_clean_cbs(nic);
drivers/net/ethernet/intel/e100.c
2300
e100_rx_clean_list(nic);
drivers/net/ethernet/intel/e100.c
2304
static void e100_down(struct nic *nic)
drivers/net/ethernet/intel/e100.c
2307
napi_disable(&nic->napi);
drivers/net/ethernet/intel/e100.c
2308
netif_stop_queue(nic->netdev);
drivers/net/ethernet/intel/e100.c
2309
e100_hw_reset(nic);
drivers/net/ethernet/intel/e100.c
2310
free_irq(nic->pdev->irq, nic->netdev);
drivers/net/ethernet/intel/e100.c
2311
timer_delete_sync(&nic->watchdog);
drivers/net/ethernet/intel/e100.c
2312
netif_carrier_off(nic->netdev);
drivers/net/ethernet/intel/e100.c
2313
e100_clean_cbs(nic);
drivers/net/ethernet/intel/e100.c
2314
e100_rx_clean_list(nic);
drivers/net/ethernet/intel/e100.c
2319
struct nic *nic = netdev_priv(netdev);
drivers/net/ethernet/intel/e100.c
2323
schedule_work(&nic->tx_timeout_task);
drivers/net/ethernet/intel/e100.c
2328
struct nic *nic = container_of(work, struct nic, tx_timeout_task);
drivers/net/ethernet/intel/e100.c
2329
struct net_device *netdev = nic->netdev;
drivers/net/ethernet/intel/e100.c
2331
netif_printk(nic, tx_err, KERN_DEBUG, nic->netdev,
drivers/net/ethernet/intel/e100.c
2332
"scb.status=0x%02X\n", ioread8(&nic->csr->scb.status));
drivers/net/ethernet/intel/e100.c
2342
static int e100_loopback_test(struct nic *nic, enum loopback loopback_mode)
drivers/net/ethernet/intel/e100.c
2352
if ((err = e100_rx_alloc_list(nic)))
drivers/net/ethernet/intel/e100.c
2354
if ((err = e100_alloc_cbs(nic)))
drivers/net/ethernet/intel/e100.c
2358
if (nic->flags & ich && loopback_mode == lb_phy)
drivers/net/ethernet/intel/e100.c
2361
nic->loopback = loopback_mode;
drivers/net/ethernet/intel/e100.c
2362
if ((err = e100_hw_init(nic)))
drivers/net/ethernet/intel/e100.c
2366
mdio_write(nic->netdev, nic->mii.phy_id, MII_BMCR,
drivers/net/ethernet/intel/e100.c
2369
e100_start_receiver(nic, NULL);
drivers/net/ethernet/intel/e100.c
2371
if (!(skb = netdev_alloc_skb(nic->netdev, ETH_DATA_LEN))) {
drivers/net/ethernet/intel/e100.c
2377
e100_xmit_frame(skb, nic->netdev);
drivers/net/ethernet/intel/e100.c
2381
dma_sync_single_for_cpu(&nic->pdev->dev, nic->rx_to_clean->dma_addr,
drivers/net/ethernet/intel/e100.c
2384
if (memcmp(nic->rx_to_clean->skb->data + sizeof(struct rfd),
drivers/net/ethernet/intel/e100.c
2389
mdio_write(nic->netdev, nic->mii.phy_id, MII_BMCR, 0);
drivers/net/ethernet/intel/e100.c
2390
nic->loopback = lb_none;
drivers/net/ethernet/intel/e100.c
2391
e100_clean_cbs(nic);
drivers/net/ethernet/intel/e100.c
2392
e100_hw_reset(nic);
drivers/net/ethernet/intel/e100.c
2394
e100_rx_clean_list(nic);
drivers/net/ethernet/intel/e100.c
2406
struct nic *nic = netdev_priv(netdev);
drivers/net/ethernet/intel/e100.c
2408
mii_ethtool_get_link_ksettings(&nic->mii, cmd);
drivers/net/ethernet/intel/e100.c
2416
struct nic *nic = netdev_priv(netdev);
drivers/net/ethernet/intel/e100.c
2419
mdio_write(netdev, nic->mii.phy_id, MII_BMCR, BMCR_RESET);
drivers/net/ethernet/intel/e100.c
2420
err = mii_ethtool_set_link_ksettings(&nic->mii, cmd);
drivers/net/ethernet/intel/e100.c
2421
e100_exec_cb(nic, NULL, e100_configure);
drivers/net/ethernet/intel/e100.c
2429
struct nic *nic = netdev_priv(netdev);
drivers/net/ethernet/intel/e100.c
2431
strscpy(info->bus_info, pci_name(nic->pdev),
drivers/net/ethernet/intel/e100.c
2438
struct nic *nic = netdev_priv(netdev);
drivers/net/ethernet/intel/e100.c
2443
return (1 + E100_PHY_REGS) * sizeof(u32) + sizeof(nic->mem->dump_buf);
drivers/net/ethernet/intel/e100.c
2449
struct nic *nic = netdev_priv(netdev);
drivers/net/ethernet/intel/e100.c
2453
regs->version = (1 << 24) | nic->pdev->revision;
drivers/net/ethernet/intel/e100.c
2454
buff[0] = ioread8(&nic->csr->scb.cmd_hi) << 24 |
drivers/net/ethernet/intel/e100.c
2455
ioread8(&nic->csr->scb.cmd_lo) << 16 |
drivers/net/ethernet/intel/e100.c
2456
ioread16(&nic->csr->scb.status);
drivers/net/ethernet/intel/e100.c
2462
buff[1 + i] = mdio_read(netdev, nic->mii.phy_id,
drivers/net/ethernet/intel/e100.c
2464
memset(nic->mem->dump_buf, 0, sizeof(nic->mem->dump_buf));
drivers/net/ethernet/intel/e100.c
2465
e100_exec_cb(nic, NULL, e100_dump);
drivers/net/ethernet/intel/e100.c
2467
memcpy(&buff[1 + E100_PHY_REGS], nic->mem->dump_buf,
drivers/net/ethernet/intel/e100.c
2468
sizeof(nic->mem->dump_buf));
drivers/net/ethernet/intel/e100.c
2473
struct nic *nic = netdev_priv(netdev);
drivers/net/ethernet/intel/e100.c
2474
wol->supported = (nic->mac >= mac_82558_D101_A4) ? WAKE_MAGIC : 0;
drivers/net/ethernet/intel/e100.c
2475
wol->wolopts = (nic->flags & wol_magic) ? WAKE_MAGIC : 0;
drivers/net/ethernet/intel/e100.c
2480
struct nic *nic = netdev_priv(netdev);
drivers/net/ethernet/intel/e100.c
2483
!device_can_wakeup(&nic->pdev->dev))
drivers/net/ethernet/intel/e100.c
2487
nic->flags |= wol_magic;
drivers/net/ethernet/intel/e100.c
2489
nic->flags &= ~wol_magic;
drivers/net/ethernet/intel/e100.c
2491
device_set_wakeup_enable(&nic->pdev->dev, wol->wolopts);
drivers/net/ethernet/intel/e100.c
2493
e100_exec_cb(nic, NULL, e100_configure);
drivers/net/ethernet/intel/e100.c
2500
struct nic *nic = netdev_priv(netdev);
drivers/net/ethernet/intel/e100.c
2501
return nic->msg_enable;
drivers/net/ethernet/intel/e100.c
2506
struct nic *nic = netdev_priv(netdev);
drivers/net/ethernet/intel/e100.c
2507
nic->msg_enable = value;
drivers/net/ethernet/intel/e100.c
2512
struct nic *nic = netdev_priv(netdev);
drivers/net/ethernet/intel/e100.c
2513
return mii_nway_restart(&nic->mii);
drivers/net/ethernet/intel/e100.c
2518
struct nic *nic = netdev_priv(netdev);
drivers/net/ethernet/intel/e100.c
2519
return mii_link_ok(&nic->mii);
drivers/net/ethernet/intel/e100.c
2524
struct nic *nic = netdev_priv(netdev);
drivers/net/ethernet/intel/e100.c
2525
return nic->eeprom_wc << 1;
drivers/net/ethernet/intel/e100.c
2532
struct nic *nic = netdev_priv(netdev);
drivers/net/ethernet/intel/e100.c
2535
memcpy(bytes, &((u8 *)nic->eeprom)[eeprom->offset], eeprom->len);
drivers/net/ethernet/intel/e100.c
2543
struct nic *nic = netdev_priv(netdev);
drivers/net/ethernet/intel/e100.c
2548
memcpy(&((u8 *)nic->eeprom)[eeprom->offset], bytes, eeprom->len);
drivers/net/ethernet/intel/e100.c
2550
return e100_eeprom_save(nic, eeprom->offset >> 1,
drivers/net/ethernet/intel/e100.c
2559
struct nic *nic = netdev_priv(netdev);
drivers/net/ethernet/intel/e100.c
2560
struct param_range *rfds = &nic->params.rfds;
drivers/net/ethernet/intel/e100.c
2561
struct param_range *cbs = &nic->params.cbs;
drivers/net/ethernet/intel/e100.c
2574
struct nic *nic = netdev_priv(netdev);
drivers/net/ethernet/intel/e100.c
2575
struct param_range *rfds = &nic->params.rfds;
drivers/net/ethernet/intel/e100.c
2576
struct param_range *cbs = &nic->params.cbs;
drivers/net/ethernet/intel/e100.c
2582
e100_down(nic);
drivers/net/ethernet/intel/e100.c
2587
netif_info(nic, drv, nic->netdev, "Ring Param settings: rx: %d, tx %d\n",
drivers/net/ethernet/intel/e100.c
2590
e100_up(nic);
drivers/net/ethernet/intel/e100.c
2608
struct nic *nic = netdev_priv(netdev);
drivers/net/ethernet/intel/e100.c
2612
data[0] = !mii_link_ok(&nic->mii);
drivers/net/ethernet/intel/e100.c
2613
data[1] = e100_eeprom_load(nic);
drivers/net/ethernet/intel/e100.c
2617
mii_ethtool_gset(&nic->mii, &cmd);
drivers/net/ethernet/intel/e100.c
2620
e100_down(nic);
drivers/net/ethernet/intel/e100.c
2621
data[2] = e100_self_test(nic);
drivers/net/ethernet/intel/e100.c
2622
data[3] = e100_loopback_test(nic, lb_mac);
drivers/net/ethernet/intel/e100.c
2623
data[4] = e100_loopback_test(nic, lb_phy);
drivers/net/ethernet/intel/e100.c
2626
mii_ethtool_sset(&nic->mii, &cmd);
drivers/net/ethernet/intel/e100.c
2629
e100_up(nic);
drivers/net/ethernet/intel/e100.c
2640
struct nic *nic = netdev_priv(netdev);
drivers/net/ethernet/intel/e100.c
2647
u16 led_reg = (nic->phy == phy_82552_v) ? E100_82552_LED_OVERRIDE :
drivers/net/ethernet/intel/e100.c
2656
leds = (nic->phy == phy_82552_v) ? E100_82552_LED_ON :
drivers/net/ethernet/intel/e100.c
2657
(nic->mac < mac_82559_D101M) ? led_on_557 : led_on_559;
drivers/net/ethernet/intel/e100.c
2661
leds = (nic->phy == phy_82552_v) ? E100_82552_LED_OFF : led_off;
drivers/net/ethernet/intel/e100.c
2668
mdio_write(netdev, nic->mii.phy_id, led_reg, leds);
drivers/net/ethernet/intel/e100.c
2703
struct nic *nic = netdev_priv(netdev);
drivers/net/ethernet/intel/e100.c
2709
data[i++] = nic->tx_deferred;
drivers/net/ethernet/intel/e100.c
2710
data[i++] = nic->tx_single_collisions;
drivers/net/ethernet/intel/e100.c
2711
data[i++] = nic->tx_multiple_collisions;
drivers/net/ethernet/intel/e100.c
2712
data[i++] = nic->tx_fc_pause;
drivers/net/ethernet/intel/e100.c
2713
data[i++] = nic->rx_fc_pause;
drivers/net/ethernet/intel/e100.c
2714
data[i++] = nic->rx_fc_unsupported;
drivers/net/ethernet/intel/e100.c
2715
data[i++] = nic->tx_tco_frames;
drivers/net/ethernet/intel/e100.c
2716
data[i++] = nic->rx_tco_frames;
drivers/net/ethernet/intel/e100.c
2717
data[i++] = nic->rx_short_frame_errors;
drivers/net/ethernet/intel/e100.c
2718
data[i++] = nic->rx_over_length_errors;
drivers/net/ethernet/intel/e100.c
2760
struct nic *nic = netdev_priv(netdev);
drivers/net/ethernet/intel/e100.c
2762
return generic_mii_ioctl(&nic->mii, if_mii(ifr), cmd, NULL);
drivers/net/ethernet/intel/e100.c
2765
static int e100_alloc(struct nic *nic)
drivers/net/ethernet/intel/e100.c
2767
nic->mem = dma_alloc_coherent(&nic->pdev->dev, sizeof(struct mem),
drivers/net/ethernet/intel/e100.c
2768
&nic->dma_addr, GFP_KERNEL);
drivers/net/ethernet/intel/e100.c
2769
return nic->mem ? 0 : -ENOMEM;
drivers/net/ethernet/intel/e100.c
2772
static void e100_free(struct nic *nic)
drivers/net/ethernet/intel/e100.c
2774
if (nic->mem) {
drivers/net/ethernet/intel/e100.c
2775
dma_free_coherent(&nic->pdev->dev, sizeof(struct mem),
drivers/net/ethernet/intel/e100.c
2776
nic->mem, nic->dma_addr);
drivers/net/ethernet/intel/e100.c
2777
nic->mem = NULL;
drivers/net/ethernet/intel/e100.c
2783
struct nic *nic = netdev_priv(netdev);
drivers/net/ethernet/intel/e100.c
2787
if ((err = e100_up(nic)))
drivers/net/ethernet/intel/e100.c
2788
netif_err(nic, ifup, nic->netdev, "Cannot open interface, aborting\n");
drivers/net/ethernet/intel/e100.c
2801
struct nic *nic = netdev_priv(netdev);
drivers/net/ethernet/intel/e100.c
2808
e100_exec_cb(nic, NULL, e100_configure);
drivers/net/ethernet/intel/e100.c
2830
struct nic *nic;
drivers/net/ethernet/intel/e100.c
2833
if (!(netdev = alloc_etherdev(sizeof(struct nic))))
drivers/net/ethernet/intel/e100.c
2845
nic = netdev_priv(netdev);
drivers/net/ethernet/intel/e100.c
2846
netif_napi_add_weight(netdev, &nic->napi, e100_poll, E100_NAPI_WEIGHT);
drivers/net/ethernet/intel/e100.c
2847
nic->netdev = netdev;
drivers/net/ethernet/intel/e100.c
2848
nic->pdev = pdev;
drivers/net/ethernet/intel/e100.c
2849
nic->msg_enable = (1 << debug) - 1;
drivers/net/ethernet/intel/e100.c
2850
nic->mdio_ctrl = mdio_ctrl_hw;
drivers/net/ethernet/intel/e100.c
2854
netif_err(nic, probe, nic->netdev, "Cannot enable PCI device, aborting\n");
drivers/net/ethernet/intel/e100.c
2859
netif_err(nic, probe, nic->netdev, "Cannot find proper PCI device base address, aborting\n");
drivers/net/ethernet/intel/e100.c
2865
netif_err(nic, probe, nic->netdev, "Cannot obtain PCI resources, aborting\n");
drivers/net/ethernet/intel/e100.c
2870
netif_err(nic, probe, nic->netdev, "No usable DMA configuration, aborting\n");
drivers/net/ethernet/intel/e100.c
2877
netif_info(nic, probe, nic->netdev, "using i/o access mode\n");
drivers/net/ethernet/intel/e100.c
2879
nic->csr = pci_iomap(pdev, (use_io ? 1 : 0), sizeof(struct csr));
drivers/net/ethernet/intel/e100.c
2880
if (!nic->csr) {
drivers/net/ethernet/intel/e100.c
2881
netif_err(nic, probe, nic->netdev, "Cannot map device registers, aborting\n");
drivers/net/ethernet/intel/e100.c
2887
nic->flags |= ich;
drivers/net/ethernet/intel/e100.c
2889
nic->flags &= ~ich;
drivers/net/ethernet/intel/e100.c
2891
e100_get_defaults(nic);
drivers/net/ethernet/intel/e100.c
2894
if (nic->mac < mac_82558_D101_A4)
drivers/net/ethernet/intel/e100.c
2898
spin_lock_init(&nic->cb_lock);
drivers/net/ethernet/intel/e100.c
2899
spin_lock_init(&nic->cmd_lock);
drivers/net/ethernet/intel/e100.c
2900
spin_lock_init(&nic->mdio_lock);
drivers/net/ethernet/intel/e100.c
2905
e100_hw_reset(nic);
drivers/net/ethernet/intel/e100.c
2909
timer_setup(&nic->watchdog, e100_watchdog, 0);
drivers/net/ethernet/intel/e100.c
2911
INIT_WORK(&nic->tx_timeout_task, e100_tx_timeout_task);
drivers/net/ethernet/intel/e100.c
2913
if ((err = e100_alloc(nic))) {
drivers/net/ethernet/intel/e100.c
2914
netif_err(nic, probe, nic->netdev, "Cannot alloc driver memory, aborting\n");
drivers/net/ethernet/intel/e100.c
2918
if ((err = e100_eeprom_load(nic)))
drivers/net/ethernet/intel/e100.c
2921
e100_phy_init(nic);
drivers/net/ethernet/intel/e100.c
2923
eth_hw_addr_set(netdev, (u8 *)nic->eeprom);
drivers/net/ethernet/intel/e100.c
2926
netif_err(nic, probe, nic->netdev, "Invalid MAC address from EEPROM, aborting\n");
drivers/net/ethernet/intel/e100.c
2930
netif_err(nic, probe, nic->netdev, "Invalid MAC address from EEPROM, you MUST configure one.\n");
drivers/net/ethernet/intel/e100.c
2935
if ((nic->mac >= mac_82558_D101_A4) &&
drivers/net/ethernet/intel/e100.c
2936
(le16_to_cpu(nic->eeprom[eeprom_id]) & eeprom_id_wol)) {
drivers/net/ethernet/intel/e100.c
2937
nic->flags |= wol_magic;
drivers/net/ethernet/intel/e100.c
2946
netif_err(nic, probe, nic->netdev, "Cannot register net device, aborting\n");
drivers/net/ethernet/intel/e100.c
2949
nic->cbs_pool = dma_pool_create(netdev->name,
drivers/net/ethernet/intel/e100.c
2950
&nic->pdev->dev,
drivers/net/ethernet/intel/e100.c
2951
nic->params.cbs.max * sizeof(struct cb),
drivers/net/ethernet/intel/e100.c
2954
if (!nic->cbs_pool) {
drivers/net/ethernet/intel/e100.c
2955
netif_err(nic, probe, nic->netdev, "Cannot create DMA pool, aborting\n");
drivers/net/ethernet/intel/e100.c
2959
netif_info(nic, probe, nic->netdev,
drivers/net/ethernet/intel/e100.c
2969
e100_free(nic);
drivers/net/ethernet/intel/e100.c
2971
pci_iounmap(pdev, nic->csr);
drivers/net/ethernet/intel/e100.c
2986
struct nic *nic = netdev_priv(netdev);
drivers/net/ethernet/intel/e100.c
2988
e100_free(nic);
drivers/net/ethernet/intel/e100.c
2989
pci_iounmap(pdev, nic->csr);
drivers/net/ethernet/intel/e100.c
2990
dma_pool_destroy(nic->cbs_pool);
drivers/net/ethernet/intel/e100.c
3003
struct nic *nic = netdev_priv(netdev);
drivers/net/ethernet/intel/e100.c
3008
e100_down(nic);
drivers/net/ethernet/intel/e100.c
3010
if ((nic->flags & wol_magic) | e100_asf(nic)) {
drivers/net/ethernet/intel/e100.c
3012
if (nic->phy == phy_82552_v) {
drivers/net/ethernet/intel/e100.c
3013
u16 smartspeed = mdio_read(netdev, nic->mii.phy_id,
drivers/net/ethernet/intel/e100.c
3016
mdio_write(netdev, nic->mii.phy_id,
drivers/net/ethernet/intel/e100.c
3051
struct nic *nic = netdev_priv(netdev);
drivers/net/ethernet/intel/e100.c
3062
if (nic->phy == phy_82552_v) {
drivers/net/ethernet/intel/e100.c
3063
u16 smartspeed = mdio_read(netdev, nic->mii.phy_id,
drivers/net/ethernet/intel/e100.c
3066
mdio_write(netdev, nic->mii.phy_id,
drivers/net/ethernet/intel/e100.c
3072
e100_up(nic);
drivers/net/ethernet/intel/e100.c
3096
struct nic *nic = netdev_priv(netdev);
drivers/net/ethernet/intel/e100.c
3104
e100_down(nic);
drivers/net/ethernet/intel/e100.c
3120
struct nic *nic = netdev_priv(netdev);
drivers/net/ethernet/intel/e100.c
3131
e100_hw_reset(nic);
drivers/net/ethernet/intel/e100.c
3132
e100_phy_init(nic);
drivers/net/ethernet/intel/e100.c
3147
struct nic *nic = netdev_priv(netdev);
drivers/net/ethernet/intel/e100.c
3155
mod_timer(&nic->watchdog, jiffies);
drivers/net/ethernet/intel/e100.c
541
u16 (*mdio_ctrl)(struct nic *nic, u32 addr, u32 dir, u32 reg, u16 data);
drivers/net/ethernet/intel/e100.c
605
static inline void e100_write_flush(struct nic *nic)
drivers/net/ethernet/intel/e100.c
609
(void)ioread8(&nic->csr->scb.status);
drivers/net/ethernet/intel/e100.c
612
static void e100_enable_irq(struct nic *nic)
drivers/net/ethernet/intel/e100.c
616
spin_lock_irqsave(&nic->cmd_lock, flags);
drivers/net/ethernet/intel/e100.c
617
iowrite8(irq_mask_none, &nic->csr->scb.cmd_hi);
drivers/net/ethernet/intel/e100.c
618
e100_write_flush(nic);
drivers/net/ethernet/intel/e100.c
619
spin_unlock_irqrestore(&nic->cmd_lock, flags);
drivers/net/ethernet/intel/e100.c
622
static void e100_disable_irq(struct nic *nic)
drivers/net/ethernet/intel/e100.c
626
spin_lock_irqsave(&nic->cmd_lock, flags);
drivers/net/ethernet/intel/e100.c
627
iowrite8(irq_mask_all, &nic->csr->scb.cmd_hi);
drivers/net/ethernet/intel/e100.c
628
e100_write_flush(nic);
drivers/net/ethernet/intel/e100.c
629
spin_unlock_irqrestore(&nic->cmd_lock, flags);
drivers/net/ethernet/intel/e100.c
632
static void e100_hw_reset(struct nic *nic)
drivers/net/ethernet/intel/e100.c
636
iowrite32(selective_reset, &nic->csr->port);
drivers/net/ethernet/intel/e100.c
637
e100_write_flush(nic); udelay(20);
drivers/net/ethernet/intel/e100.c
640
iowrite32(software_reset, &nic->csr->port);
drivers/net/ethernet/intel/e100.c
641
e100_write_flush(nic); udelay(20);
drivers/net/ethernet/intel/e100.c
644
e100_disable_irq(nic);
drivers/net/ethernet/intel/e100.c
647
static int e100_self_test(struct nic *nic)
drivers/net/ethernet/intel/e100.c
649
u32 dma_addr = nic->dma_addr + offsetof(struct mem, selftest);
drivers/net/ethernet/intel/e100.c
654
nic->mem->selftest.signature = 0;
drivers/net/ethernet/intel/e100.c
655
nic->mem->selftest.result = 0xFFFFFFFF;
drivers/net/ethernet/intel/e100.c
657
iowrite32(selftest | dma_addr, &nic->csr->port);
drivers/net/ethernet/intel/e100.c
658
e100_write_flush(nic);
drivers/net/ethernet/intel/e100.c
663
e100_disable_irq(nic);
drivers/net/ethernet/intel/e100.c
666
if (nic->mem->selftest.result != 0) {
drivers/net/ethernet/intel/e100.c
667
netif_err(nic, hw, nic->netdev,
drivers/net/ethernet/intel/e100.c
669
nic->mem->selftest.result);
drivers/net/ethernet/intel/e100.c
672
if (nic->mem->selftest.signature == 0) {
drivers/net/ethernet/intel/e100.c
673
netif_err(nic, hw, nic->netdev, "Self-test failed: timed out\n");
drivers/net/ethernet/intel/e100.c
680
static void e100_eeprom_write(struct nic *nic, u16 addr_len, u16 addr, __le16 data)
drivers/net/ethernet/intel/e100.c
696
iowrite8(eecs | eesk, &nic->csr->eeprom_ctrl_lo);
drivers/net/ethernet/intel/e100.c
697
e100_write_flush(nic); udelay(4);
drivers/net/ethernet/intel/e100.c
702
iowrite8(ctrl, &nic->csr->eeprom_ctrl_lo);
drivers/net/ethernet/intel/e100.c
703
e100_write_flush(nic); udelay(4);
drivers/net/ethernet/intel/e100.c
705
iowrite8(ctrl | eesk, &nic->csr->eeprom_ctrl_lo);
drivers/net/ethernet/intel/e100.c
706
e100_write_flush(nic); udelay(4);
drivers/net/ethernet/intel/e100.c
712
iowrite8(0, &nic->csr->eeprom_ctrl_lo);
drivers/net/ethernet/intel/e100.c
713
e100_write_flush(nic); udelay(4);
drivers/net/ethernet/intel/e100.c
718
static __le16 e100_eeprom_read(struct nic *nic, u16 *addr_len, u16 addr)
drivers/net/ethernet/intel/e100.c
728
iowrite8(eecs | eesk, &nic->csr->eeprom_ctrl_lo);
drivers/net/ethernet/intel/e100.c
729
e100_write_flush(nic); udelay(4);
drivers/net/ethernet/intel/e100.c
734
iowrite8(ctrl, &nic->csr->eeprom_ctrl_lo);
drivers/net/ethernet/intel/e100.c
735
e100_write_flush(nic); udelay(4);
drivers/net/ethernet/intel/e100.c
737
iowrite8(ctrl | eesk, &nic->csr->eeprom_ctrl_lo);
drivers/net/ethernet/intel/e100.c
738
e100_write_flush(nic); udelay(4);
drivers/net/ethernet/intel/e100.c
742
ctrl = ioread8(&nic->csr->eeprom_ctrl_lo);
drivers/net/ethernet/intel/e100.c
752
iowrite8(0, &nic->csr->eeprom_ctrl_lo);
drivers/net/ethernet/intel/e100.c
753
e100_write_flush(nic); udelay(4);
drivers/net/ethernet/intel/e100.c
759
static int e100_eeprom_load(struct nic *nic)
drivers/net/ethernet/intel/e100.c
764
e100_eeprom_read(nic, &addr_len, 0);
drivers/net/ethernet/intel/e100.c
765
nic->eeprom_wc = 1 << addr_len;
drivers/net/ethernet/intel/e100.c
767
for (addr = 0; addr < nic->eeprom_wc; addr++) {
drivers/net/ethernet/intel/e100.c
768
nic->eeprom[addr] = e100_eeprom_read(nic, &addr_len, addr);
drivers/net/ethernet/intel/e100.c
769
if (addr < nic->eeprom_wc - 1)
drivers/net/ethernet/intel/e100.c
770
checksum += le16_to_cpu(nic->eeprom[addr]);
drivers/net/ethernet/intel/e100.c
775
if (cpu_to_le16(0xBABA - checksum) != nic->eeprom[nic->eeprom_wc - 1]) {
drivers/net/ethernet/intel/e100.c
776
netif_err(nic, probe, nic->netdev, "EEPROM corrupted\n");
drivers/net/ethernet/intel/e100.c
785
static int e100_eeprom_save(struct nic *nic, u16 start, u16 count)
drivers/net/ethernet/intel/e100.c
790
e100_eeprom_read(nic, &addr_len, 0);
drivers/net/ethernet/intel/e100.c
791
nic->eeprom_wc = 1 << addr_len;
drivers/net/ethernet/intel/e100.c
793
if (start + count >= nic->eeprom_wc)
drivers/net/ethernet/intel/e100.c
797
e100_eeprom_write(nic, addr_len, addr, nic->eeprom[addr]);
drivers/net/ethernet/intel/e100.c
801
for (addr = 0; addr < nic->eeprom_wc - 1; addr++)
drivers/net/ethernet/intel/e100.c
802
checksum += le16_to_cpu(nic->eeprom[addr]);
drivers/net/ethernet/intel/e100.c
803
nic->eeprom[nic->eeprom_wc - 1] = cpu_to_le16(0xBABA - checksum);
drivers/net/ethernet/intel/e100.c
804
e100_eeprom_write(nic, addr_len, nic->eeprom_wc - 1,
drivers/net/ethernet/intel/e100.c
805
nic->eeprom[nic->eeprom_wc - 1]);
drivers/net/ethernet/intel/e100.c
812
static int e100_exec_cmd(struct nic *nic, u8 cmd, dma_addr_t dma_addr)
drivers/net/ethernet/intel/e100.c
818
spin_lock_irqsave(&nic->cmd_lock, flags);
drivers/net/ethernet/intel/e100.c
822
if (likely(!ioread8(&nic->csr->scb.cmd_lo)))
drivers/net/ethernet/intel/e100.c
834
iowrite32(dma_addr, &nic->csr->scb.gen_ptr);
drivers/net/ethernet/intel/e100.c
835
iowrite8(cmd, &nic->csr->scb.cmd_lo);
drivers/net/ethernet/intel/e100.c
838
spin_unlock_irqrestore(&nic->cmd_lock, flags);
drivers/net/ethernet/intel/e100.c
843
static int e100_exec_cb(struct nic *nic, struct sk_buff *skb,
drivers/net/ethernet/intel/e100.c
844
int (*cb_prepare)(struct nic *, struct cb *, struct sk_buff *))
drivers/net/ethernet/intel/e100.c
850
spin_lock_irqsave(&nic->cb_lock, flags);
drivers/net/ethernet/intel/e100.c
852
if (unlikely(!nic->cbs_avail)) {
drivers/net/ethernet/intel/e100.c
857
cb = nic->cb_to_use;
drivers/net/ethernet/intel/e100.c
858
nic->cb_to_use = cb->next;
drivers/net/ethernet/intel/e100.c
859
nic->cbs_avail--;
drivers/net/ethernet/intel/e100.c
862
err = cb_prepare(nic, cb, skb);
drivers/net/ethernet/intel/e100.c
866
if (unlikely(!nic->cbs_avail))
drivers/net/ethernet/intel/e100.c
876
while (nic->cb_to_send != nic->cb_to_use) {
drivers/net/ethernet/intel/e100.c
877
if (unlikely(e100_exec_cmd(nic, nic->cuc_cmd,
drivers/net/ethernet/intel/e100.c
878
nic->cb_to_send->dma_addr))) {
drivers/net/ethernet/intel/e100.c
886
schedule_work(&nic->tx_timeout_task);
drivers/net/ethernet/intel/e100.c
890
nic->cuc_cmd = cuc_resume;
drivers/net/ethernet/intel/e100.c
891
nic->cb_to_send = nic->cb_to_send->next;
drivers/net/ethernet/intel/e100.c
896
spin_unlock_irqrestore(&nic->cb_lock, flags);
drivers/net/ethernet/intel/e100.c
903
struct nic *nic = netdev_priv(netdev);
drivers/net/ethernet/intel/e100.c
904
return nic->mdio_ctrl(nic, addr, mdi_read, reg, 0);
drivers/net/ethernet/intel/e100.c
909
struct nic *nic = netdev_priv(netdev);
drivers/net/ethernet/intel/e100.c
911
nic->mdio_ctrl(nic, addr, mdi_write, reg, data);
drivers/net/ethernet/intel/e100.c
915
static u16 mdio_ctrl_hw(struct nic *nic, u32 addr, u32 dir, u32 reg, u16 data)
drivers/net/ethernet/intel/e100.c
928
spin_lock_irqsave(&nic->mdio_lock, flags);
drivers/net/ethernet/intel/e100.c
930
if (ioread32(&nic->csr->mdi_ctrl) & mdi_ready)
drivers/net/ethernet/intel/e100.c
935
netdev_err(nic->netdev, "e100.mdio_ctrl won't go Ready\n");
drivers/net/ethernet/intel/e100.c
936
spin_unlock_irqrestore(&nic->mdio_lock, flags);
drivers/net/ethernet/intel/e100.c
939
iowrite32((reg << 16) | (addr << 21) | dir | data, &nic->csr->mdi_ctrl);
drivers/net/ethernet/intel/e100.c
943
if ((data_out = ioread32(&nic->csr->mdi_ctrl)) & mdi_ready)
drivers/net/ethernet/intel/e100.c
946
spin_unlock_irqrestore(&nic->mdio_lock, flags);
drivers/net/ethernet/intel/e100.c
947
netif_printk(nic, hw, KERN_DEBUG, nic->netdev,
drivers/net/ethernet/intel/e100.c
955
static u16 mdio_ctrl_phy_82552_v(struct nic *nic,
drivers/net/ethernet/intel/e100.c
963
u16 advert = mdio_read(nic->netdev, nic->mii.phy_id,
drivers/net/ethernet/intel/e100.c
976
return mdio_ctrl_hw(nic, addr, dir, reg, data);
drivers/net/ethernet/intel/e100.c
985
static u16 mdio_ctrl_phy_mii_emulated(struct nic *nic,
drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h
1152
int otx2_init_tc(struct otx2_nic *nic);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h
1153
void otx2_shutdown_tc(struct otx2_nic *nic);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h
1156
void otx2_tc_apply_ingress_police_rules(struct otx2_nic *nic);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h
1212
int otx2_setup_tc_cls_flower(struct otx2_nic *nic,
drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h
317
struct otx2_nic *nic;
drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h
664
static inline void __iomem *otx2_get_regaddr(struct otx2_nic *nic, u64 offset)
drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h
670
blkaddr = nic->nix_blkaddr;
drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h
686
return nic->reg_base + offset;
drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h
689
static inline void otx2_write64(struct otx2_nic *nic, u64 offset, u64 val)
drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h
691
void __iomem *addr = otx2_get_regaddr(nic, offset);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h
696
static inline u64 otx2_read64(struct otx2_nic *nic, u64 offset)
drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h
698
void __iomem *addr = otx2_get_regaddr(nic, offset);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c
2959
int otx2_check_pf_usable(struct otx2_nic *nic)
drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c
2963
rev = otx2_read64(nic, RVU_PF_BLOCK_ADDRX_DISC(BLKADDR_RVUM));
drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c
2970
dev_warn(nic->dev,
drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp.c
117
struct otx2_nic *pfvf = ptp->nic;
drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp.c
122
if (!ptp->nic)
drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp.c
128
req = otx2_mbox_alloc_msg_ptp_op(&ptp->nic->mbox);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp.c
136
rc = otx2_sync_mbox_msg(&ptp->nic->mbox);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp.c
148
if (!ptp->nic)
drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp.c
151
req = otx2_mbox_alloc_msg_ptp_op(&ptp->nic->mbox);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp.c
158
return otx2_sync_mbox_msg(&ptp->nic->mbox);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp.c
165
if (!ptp->nic)
drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp.c
168
req = otx2_mbox_alloc_msg_ptp_op(&ptp->nic->mbox);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp.c
175
return otx2_sync_mbox_msg(&ptp->nic->mbox);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp.c
182
if (!ptp->nic)
drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp.c
185
req = otx2_mbox_alloc_msg_ptp_op(&ptp->nic->mbox);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp.c
19
if (!ptp->nic)
drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp.c
193
return otx2_sync_mbox_msg(&ptp->nic->mbox);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp.c
209
if (!ptp->nic)
drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp.c
212
req = otx2_mbox_alloc_msg_ptp_op(&ptp->nic->mbox);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp.c
218
err = otx2_sync_mbox_msg(&ptp->nic->mbox);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp.c
22
mutex_lock(&ptp->nic->mbox.lock);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp.c
222
rsp = (struct ptp_rsp *)otx2_mbox_get_rsp(&ptp->nic->mbox.mbox, 0,
drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp.c
23
req = otx2_mbox_alloc_msg_ptp_get_cap(&ptp->nic->mbox);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp.c
234
struct otx2_nic *pfvf = ptp->nic;
drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp.c
25
mutex_unlock(&ptp->nic->mbox.lock);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp.c
250
mutex_lock(&ptp->nic->mbox.lock);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp.c
252
mutex_unlock(&ptp->nic->mbox.lock);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp.c
267
mutex_lock(&ptp->nic->mbox.lock);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp.c
269
mutex_unlock(&ptp->nic->mbox.lock);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp.c
29
err = otx2_sync_mbox_msg(&ptp->nic->mbox);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp.c
301
mutex_lock(&ptp->nic->mbox.lock);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp.c
303
mutex_unlock(&ptp->nic->mbox.lock);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp.c
31
mutex_unlock(&ptp->nic->mbox.lock);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp.c
312
mutex_lock(&ptp->nic->mbox.lock);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp.c
314
mutex_unlock(&ptp->nic->mbox.lock);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp.c
326
struct otx2_nic *pfvf = ptp->nic;
drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp.c
34
rsp = (struct ptp_get_cap_rsp *)otx2_mbox_get_rsp(&ptp->nic->mbox.mbox, 0,
drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp.c
347
if (!ptp->nic)
drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp.c
36
mutex_unlock(&ptp->nic->mbox.lock);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp.c
417
ptp_ptr->nic = pfvf;
drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp.c
51
struct otx2_nic *pfvf = ptp->nic;
drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp.c
55
if (!ptp->nic)
drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp.c
59
req = otx2_mbox_alloc_msg_ptp_op(&ptp->nic->mbox);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp.c
66
rc = otx2_sync_mbox_msg(&ptp->nic->mbox);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp.c
78
if (!ptp->nic)
drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp.c
81
req = otx2_mbox_alloc_msg_ptp_op(&ptp->nic->mbox);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp.c
87
err = otx2_sync_mbox_msg(&ptp->nic->mbox);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp.c
91
rsp = (struct ptp_rsp *)otx2_mbox_get_rsp(&ptp->nic->mbox.mbox, 0,
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1041
static int otx2_add_mcam_flow_entry(struct otx2_nic *nic, struct npc_install_flow_req *req)
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1046
mutex_lock(&nic->mbox.lock);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1047
tmp_req = otx2_mbox_alloc_msg_npc_install_flow(&nic->mbox);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1049
mutex_unlock(&nic->mbox.lock);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1055
err = otx2_sync_mbox_msg(&nic->mbox);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1057
netdev_err(nic->netdev, "Failed to install MCAM flow entry %d\n",
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1059
mutex_unlock(&nic->mbox.lock);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1063
mutex_unlock(&nic->mbox.lock);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1067
static int otx2_del_mcam_flow_entry(struct otx2_nic *nic, u16 entry, u16 *cntr_val)
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1073
mutex_lock(&nic->mbox.lock);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1074
req = otx2_mbox_alloc_msg_npc_delete_flow(&nic->mbox);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1076
mutex_unlock(&nic->mbox.lock);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1083
err = otx2_sync_mbox_msg(&nic->mbox);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1085
netdev_err(nic->netdev, "Failed to delete MCAM flow entry %d\n",
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1087
mutex_unlock(&nic->mbox.lock);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1092
rsp = (struct npc_delete_flow_rsp *)otx2_mbox_get_rsp(&nic->mbox.mbox,
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1095
netdev_err(nic->netdev, "Failed to get MCAM delete response for entry %d\n",
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1097
mutex_unlock(&nic->mbox.lock);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1104
mutex_unlock(&nic->mbox.lock);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1108
static int otx2_tc_update_mcam_table_del_req(struct otx2_nic *nic,
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1128
otx2_del_mcam_flow_entry(nic, tmp->entry, &cntr_val);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1140
otx2_add_mcam_flow_entry(nic, &tmp->req);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1147
static int otx2_tc_update_mcam_table_add_req(struct otx2_nic *nic,
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1167
otx2_del_mcam_flow_entry(nic, tmp->entry, &cntr_val);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1171
otx2_add_mcam_flow_entry(nic, &tmp->req);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1178
static int otx2_tc_update_mcam_table(struct otx2_nic *nic,
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1184
return otx2_tc_update_mcam_table_add_req(nic, flow_cfg, node);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1186
return otx2_tc_update_mcam_table_del_req(nic, flow_cfg, node);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1189
static int otx2_tc_del_flow(struct otx2_nic *nic,
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1192
struct otx2_flow_config *flow_cfg = nic->flow_cfg;
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1199
netdev_err(nic->netdev, "tc flow not found for cookie 0x%lx\n",
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1207
nic->flags &= ~OTX2_FLAG_TC_MARK_ENABLED;
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1210
__clear_bit(flow_node->rq, &nic->rq_bmap);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1212
if (nic->flags & OTX2_FLAG_INTF_DOWN)
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1215
mutex_lock(&nic->mbox.lock);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1217
err = cn10k_map_unmap_rq_policer(nic, flow_node->rq,
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
122
u64 otx2_get_txschq_rate_regval(struct otx2_nic *nic,
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1220
netdev_err(nic->netdev,
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1224
err = cn10k_free_leaf_profile(nic, flow_node->leaf_profile);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1226
netdev_err(nic->netdev,
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1230
mutex_unlock(&nic->mbox.lock);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1234
mutex_lock(&nic->mbox.lock);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1235
grp_destroy_req = otx2_mbox_alloc_msg_nix_mcast_grp_destroy(&nic->mbox);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1237
otx2_sync_mbox_msg(&nic->mbox);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1238
mutex_unlock(&nic->mbox.lock);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1243
otx2_del_mcam_flow_entry(nic, flow_node->entry, NULL);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1244
otx2_tc_update_mcam_table(nic, flow_cfg, flow_node, false);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1250
static int otx2_tc_add_flow(struct otx2_nic *nic,
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1254
struct otx2_flow_config *flow_cfg = nic->flow_cfg;
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1259
if (!(nic->flags & OTX2_FLAG_TC_FLOWER_SUPPORT))
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1262
if (nic->flags & OTX2_FLAG_INTF_DOWN) {
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1284
rc = otx2_tc_prepare_flow(nic, new_node, tc_flow_cmd, &dummy);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1293
otx2_tc_del_flow(nic, tc_flow_cmd);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1295
mcam_idx = otx2_tc_update_mcam_table(nic, flow_cfg, new_node, true);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1296
mutex_lock(&nic->mbox.lock);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1297
req = otx2_mbox_alloc_msg_npc_install_flow(&nic->mbox);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1299
mutex_unlock(&nic->mbox.lock);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
130
otx2_get_egress_burst_cfg(nic, burst, &burst_exp, &burst_mantissa);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1306
req->channel = nic->hw.rx_chan_base;
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1309
req->vf = nic->pcifunc;
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1314
rc = otx2_sync_mbox_msg(&nic->mbox);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1317
mutex_unlock(&nic->mbox.lock);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1321
mutex_unlock(&nic->mbox.lock);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
133
if (is_dev_otx2(nic->pdev)) {
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1330
mutex_lock(&nic->mbox.lock);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1332
err = cn10k_map_unmap_rq_policer(nic, new_node->rq,
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1335
netdev_err(nic->netdev,
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1338
err = cn10k_free_leaf_profile(nic, new_node->leaf_profile);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1340
netdev_err(nic->netdev,
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1344
__clear_bit(new_node->rq, &nic->rq_bmap);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1346
mutex_unlock(&nic->mbox.lock);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1353
static int otx2_tc_get_flow_stats(struct otx2_nic *nic,
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1362
flow_node = otx2_tc_get_entry_by_cookie(nic->flow_cfg, tc_flow_cmd->cookie);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1364
netdev_info(nic->netdev, "tc flow not found for cookie %lx",
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1369
mutex_lock(&nic->mbox.lock);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1371
req = otx2_mbox_alloc_msg_npc_mcam_entry_stats(&nic->mbox);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1373
mutex_unlock(&nic->mbox.lock);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1379
err = otx2_sync_mbox_msg(&nic->mbox);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1381
netdev_err(nic->netdev, "Failed to get stats for MCAM flow entry %d\n",
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1383
mutex_unlock(&nic->mbox.lock);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1388
(&nic->mbox.mbox, 0, &req->hdr);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1390
mutex_unlock(&nic->mbox.lock);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1394
mutex_unlock(&nic->mbox.lock);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1410
int otx2_setup_tc_cls_flower(struct otx2_nic *nic,
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1415
return otx2_tc_add_flow(nic, cls_flower);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1417
return otx2_tc_del_flow(nic, cls_flower);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1419
return otx2_tc_get_flow_stats(nic, cls_flower);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1426
static int otx2_tc_ingress_matchall_install(struct otx2_nic *nic,
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1435
err = otx2_tc_validate_flow(nic, actions, extack);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1439
if (nic->flags & OTX2_FLAG_TC_MATCHALL_INGRESS_ENABLED) {
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1449
if (is_dev_otx2(nic->pdev)) {
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1455
err = cn10k_alloc_matchall_ipolicer(nic);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1461
err = cn10k_set_matchall_ipolicer_rate(nic, entry->police.burst, rate);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1464
nic->flags |= OTX2_FLAG_TC_MATCHALL_INGRESS_ENABLED;
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1475
static int otx2_tc_ingress_matchall_delete(struct otx2_nic *nic,
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1481
if (nic->flags & OTX2_FLAG_INTF_DOWN) {
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1486
err = cn10k_free_matchall_ipolicer(nic);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1487
nic->flags &= ~OTX2_FLAG_TC_MATCHALL_INGRESS_ENABLED;
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1491
static int otx2_setup_tc_ingress_matchall(struct otx2_nic *nic,
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1496
return otx2_tc_ingress_matchall_install(nic, cls_matchall);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1498
return otx2_tc_ingress_matchall_delete(nic, cls_matchall);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
150
static int otx2_set_matchall_egress_rate(struct otx2_nic *nic,
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1510
struct otx2_nic *nic = cb_priv;
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1513
if (!tc_cls_can_offload_and_chain0(nic->netdev, type_data))
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1516
ntuple = nic->netdev->features & NETIF_F_NTUPLE;
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1520
netdev_warn(nic->netdev,
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1525
return otx2_setup_tc_cls_flower(nic, type_data);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1527
return otx2_setup_tc_ingress_matchall(nic, type_data);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
153
struct otx2_hw *hw = &nic->hw;
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1535
static int otx2_setup_tc_egress_matchall(struct otx2_nic *nic,
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1540
return otx2_tc_egress_matchall_install(nic, cls_matchall);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1542
return otx2_tc_egress_matchall_delete(nic, cls_matchall);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1554
struct otx2_nic *nic = cb_priv;
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1556
if (!tc_cls_can_offload_and_chain0(nic->netdev, type_data))
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1561
return otx2_setup_tc_egress_matchall(nic, type_data);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1574
struct otx2_nic *nic = netdev_priv(netdev);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1592
nic, nic, ingress);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
160
mutex_lock(&nic->mbox.lock);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1609
int otx2_init_tc(struct otx2_nic *nic)
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
161
req = otx2_mbox_alloc_msg_nix_txschq_cfg(&nic->mbox);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1612
set_bit(0, &nic->rq_bmap);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1614
if (!nic->flow_cfg) {
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1615
netdev_err(nic->netdev,
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1624
void otx2_shutdown_tc(struct otx2_nic *nic)
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1626
otx2_destroy_tc_flow_list(nic);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
163
mutex_unlock(&nic->mbox.lock);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1630
static void otx2_tc_config_ingress_rule(struct otx2_nic *nic,
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1635
if (otx2_tc_act_set_hw_police(nic, node))
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1638
mutex_lock(&nic->mbox.lock);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1640
req = otx2_mbox_alloc_msg_npc_install_flow(&nic->mbox);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1646
if (otx2_sync_mbox_msg(&nic->mbox))
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1647
netdev_err(nic->netdev,
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1650
mutex_unlock(&nic->mbox.lock);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1653
void otx2_tc_apply_ingress_police_rules(struct otx2_nic *nic)
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1655
struct otx2_flow_config *flow_cfg = nic->flow_cfg;
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
1667
otx2_tc_config_ingress_rule(nic, node);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
170
req->regval[0] = otx2_get_txschq_rate_regval(nic, maxrate, burst);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
172
err = otx2_sync_mbox_msg(&nic->mbox);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
173
mutex_unlock(&nic->mbox.lock);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
177
static int otx2_tc_validate_flow(struct otx2_nic *nic,
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
181
if (nic->flags & OTX2_FLAG_INTF_DOWN) {
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
233
static int otx2_tc_egress_matchall_install(struct otx2_nic *nic,
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
241
err = otx2_tc_validate_flow(nic, actions, extack);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
245
if (nic->flags & OTX2_FLAG_TC_MATCHALL_EGRESS_ENABLED) {
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
262
err = otx2_set_matchall_egress_rate(nic, entry->police.burst,
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
266
nic->flags |= OTX2_FLAG_TC_MATCHALL_EGRESS_ENABLED;
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
277
static int otx2_tc_egress_matchall_delete(struct otx2_nic *nic,
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
283
if (nic->flags & OTX2_FLAG_INTF_DOWN) {
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
288
err = otx2_set_matchall_egress_rate(nic, 0, 0);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
289
nic->flags &= ~OTX2_FLAG_TC_MATCHALL_EGRESS_ENABLED;
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
293
static int otx2_tc_act_set_hw_police(struct otx2_nic *nic,
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
298
mutex_lock(&nic->mbox.lock);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
300
rc = cn10k_alloc_leaf_profile(nic, &node->leaf_profile);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
302
mutex_unlock(&nic->mbox.lock);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
306
rc = cn10k_set_ipolicer_rate(nic, node->leaf_profile,
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
311
rc = cn10k_map_unmap_rq_policer(nic, node->rq, node->leaf_profile, true);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
315
mutex_unlock(&nic->mbox.lock);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
320
if (cn10k_free_leaf_profile(nic, node->leaf_profile))
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
321
netdev_err(nic->netdev,
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
324
mutex_unlock(&nic->mbox.lock);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
328
static int otx2_tc_act_set_police(struct otx2_nic *nic,
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
335
struct otx2_hw *hw = &nic->hw;
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
338
rq_idx = find_first_zero_bit(&nic->rq_bmap, hw->rx_queues);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
354
rc = otx2_tc_act_set_hw_police(nic, node);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
356
set_bit(rq_idx, &nic->rq_bmap);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
361
static int otx2_tc_update_mcast(struct otx2_nic *nic,
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
374
mutex_lock(&nic->mbox.lock);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
375
creq = otx2_mbox_alloc_msg_nix_mcast_grp_create(&nic->mbox);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
383
rc = otx2_sync_mbox_msg(&nic->mbox);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
389
crsp = (struct nix_mcast_grp_create_rsp *)otx2_mbox_get_rsp(&nic->mbox.mbox,
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
398
grp_update_req = otx2_mbox_alloc_msg_nix_mcast_grp_update(&nic->mbox);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
408
ureq->pcifunc[0] = nic->pcifunc;
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
409
ureq->channel[0] = nic->hw.tx_chan_base;
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
417
rc = otx2_sync_mbox_msg(&nic->mbox);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
423
mutex_unlock(&nic->mbox.lock);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
430
mutex_unlock(&nic->mbox.lock);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
434
static int otx2_tc_parse_actions(struct otx2_nic *nic,
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
470
if (rvu_get_pf(nic->pdev, nic->pcifunc) !=
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
471
rvu_get_pf(nic->pdev, priv->pcifunc)) {
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
494
if (is_dev_otx2(nic->pdev)) {
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
527
nic->flags |= OTX2_FLAG_TC_MARK_ENABLED;
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
528
refcount_inc(&nic->flow_cfg->mark_flows);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
553
err = otx2_tc_update_mcast(nic, req, extack, node,
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
567
return otx2_tc_act_set_police(nic, node, f, rate, burst,
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
573
static int otx2_tc_process_vlan(struct otx2_nic *nic, struct flow_msg *flow_spec,
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
58
static void otx2_get_egress_burst_cfg(struct otx2_nic *nic, u32 burst,
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
586
netdev_err(nic->netdev, "vlan tpid 0x%x not supported\n",
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
597
netdev_err(nic->netdev,
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
629
static int otx2_tc_prepare_flow(struct otx2_nic *nic, struct otx2_tc_flow *node,
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
64
if (is_dev_otx2(nic->pdev)) {
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
657
netdev_info(nic->netdev, "unsupported flow used key 0x%llx",
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
680
netdev_info(nic->netdev,
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
790
ret = otx2_tc_process_vlan(nic, flow_spec, flow_mask, rule, req, false);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
798
ret = otx2_tc_process_vlan(nic, flow_spec, flow_mask, rule, req, true);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
956
return otx2_tc_parse_actions(nic, &rule->action, req, f, node);
drivers/net/ethernet/marvell/octeontx2/nic/qos.h
23
u64 otx2_get_txschq_rate_regval(struct otx2_nic *nic, u64 maxrate, u32 burst);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c
2378
struct qlcnic_info *nic)
drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c
2394
cmd.req.arg[1] = (nic->pci_func << 16);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c
2396
cmd.req.arg[3] = nic->phys_port | (nic->switch_mode << 16);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c
2397
cmd.req.arg[4] = nic->capabilities;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c
2398
cmd.req.arg[5] = (nic->max_mac_filters & 0xFF) | ((nic->max_mtu) << 16);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c
2399
cmd.req.arg[6] = (nic->max_tx_ques) | ((nic->max_rx_ques) << 16);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c
2400
cmd.req.arg[7] = (nic->min_tx_bw) | ((nic->max_tx_bw) << 16);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c
2471
u16 *nic, u16 *fcoe, u16 *iscsi)
drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c
2478
(*nic)++;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c
2500
u16 nic = 0, fcoe = 0, iscsi = 0;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c
2524
&nic, &fcoe, &iscsi);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c
2542
ahw->total_nic_func = nic;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c
2543
ahw->total_pci_func = nic + fcoe + iscsi;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c
1011
ahw->total_nic_func = nic;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c
1012
ahw->total_pci_func = nic + fcoe + iscsi;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c
905
struct qlcnic_info *nic)
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c
924
nic_info->pci_func = cpu_to_le16(nic->pci_func);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c
925
nic_info->op_mode = cpu_to_le16(nic->op_mode);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c
926
nic_info->phys_port = cpu_to_le16(nic->phys_port);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c
927
nic_info->switch_mode = cpu_to_le16(nic->switch_mode);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c
928
nic_info->capabilities = cpu_to_le32(nic->capabilities);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c
929
nic_info->max_mac_filters = nic->max_mac_filters;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c
930
nic_info->max_tx_ques = cpu_to_le16(nic->max_tx_ques);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c
931
nic_info->max_rx_ques = cpu_to_le16(nic->max_rx_ques);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c
932
nic_info->min_tx_bw = cpu_to_le16(nic->min_tx_bw);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c
933
nic_info->max_tx_bw = cpu_to_le16(nic->max_tx_bw);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c
941
cmd.req.arg[3] = ((nic->pci_func << 16) | nic_size);
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c
965
u16 nic = 0, fcoe = 0, iscsi = 0;
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c
996
&nic, &fcoe, &iscsi);
drivers/net/ethernet/sfc/ethtool_common.c
54
EFX_ETHTOOL_STAT(field, nic, field, \
drivers/net/ethernet/sfc/falcon/ethtool.c
53
EF4_ETHTOOL_STAT(field, nic, field, \
drivers/net/ethernet/sfc/falcon/nic.h
155
int (*init) (struct ef4_nic *nic);
drivers/net/ethernet/sfc/falcon/nic.h
157
void (*fini) (struct ef4_nic *nic);
drivers/net/ethernet/sfc/falcon/nic.h
159
int (*monitor) (struct ef4_nic *nic);
drivers/net/ethernet/sfc/siena/ethtool_common.c
54
EFX_ETHTOOL_STAT(field, nic, field, \
drivers/net/ethernet/tehuti/tehuti.c
107
nic->port_num == 1 ? "" : ", 2-Port");
drivers/net/ethernet/tehuti/tehuti.c
109
readl(nic->regs + SROM_VER), readl(nic->regs + FPGA_VER) & 0xFFF,
drivers/net/ethernet/tehuti/tehuti.c
110
readl(nic->regs + FPGA_SEED),
drivers/net/ethernet/tehuti/tehuti.c
115
static void print_fw_id(struct pci_nic *nic)
drivers/net/ethernet/tehuti/tehuti.c
117
pr_info("fw 0x%x\n", readl(nic->regs + FW_VER));
drivers/net/ethernet/tehuti/tehuti.c
1889
struct pci_nic *nic;
drivers/net/ethernet/tehuti/tehuti.c
1894
nic = vmalloc(sizeof(*nic));
drivers/net/ethernet/tehuti/tehuti.c
1895
if (!nic)
drivers/net/ethernet/tehuti/tehuti.c
1928
nic->regs = ioremap(pciaddr, regionSize);
drivers/net/ethernet/tehuti/tehuti.c
1929
if (!nic->regs) {
drivers/net/ethernet/tehuti/tehuti.c
1940
pci_set_drvdata(pdev, nic);
drivers/net/ethernet/tehuti/tehuti.c
1943
nic->port_num = 2;
drivers/net/ethernet/tehuti/tehuti.c
1945
nic->port_num = 1;
drivers/net/ethernet/tehuti/tehuti.c
1949
bdx_hw_reset_direct(nic->regs);
drivers/net/ethernet/tehuti/tehuti.c
1951
nic->irq_type = IRQ_INTX;
drivers/net/ethernet/tehuti/tehuti.c
1953
if ((readl(nic->regs + FPGA_VER) & 0xFFF) >= 378) {
drivers/net/ethernet/tehuti/tehuti.c
1958
nic->irq_type = IRQ_MSI;
drivers/net/ethernet/tehuti/tehuti.c
1964
for (port = 0; port < nic->port_num; port++) {
drivers/net/ethernet/tehuti/tehuti.c
1988
priv = nic->priv[port] = netdev_priv(ndev);
drivers/net/ethernet/tehuti/tehuti.c
1990
priv->pBdxRegs = nic->regs + port * 0x8000;
drivers/net/ethernet/tehuti/tehuti.c
1994
priv->nic = nic;
drivers/net/ethernet/tehuti/tehuti.c
1999
if ((readl(nic->regs + FPGA_VER) & 0xFFF) == 308) {
drivers/net/ethernet/tehuti/tehuti.c
2052
iounmap(nic->regs);
drivers/net/ethernet/tehuti/tehuti.c
2058
vfree(nic);
drivers/net/ethernet/tehuti/tehuti.c
2395
struct pci_nic *nic = pci_get_drvdata(pdev);
drivers/net/ethernet/tehuti/tehuti.c
2399
for (port = 0; port < nic->port_num; port++) {
drivers/net/ethernet/tehuti/tehuti.c
2400
ndev = nic->priv[port]->ndev;
drivers/net/ethernet/tehuti/tehuti.c
2407
if (nic->irq_type == IRQ_MSI)
drivers/net/ethernet/tehuti/tehuti.c
2411
iounmap(nic->regs);
drivers/net/ethernet/tehuti/tehuti.c
2414
vfree(nic);
drivers/net/ethernet/tehuti/tehuti.c
426
#define BDX_IRQ_TYPE ((priv->nic->irq_type == IRQ_MSI) ? 0 : IRQF_SHARED)
drivers/net/ethernet/tehuti/tehuti.c
625
print_fw_id(priv->nic);
drivers/net/ethernet/tehuti/tehuti.c
636
return (offset > (u32) (BDX_REGS_SIZE / priv->nic->port_num)) ?
drivers/net/ethernet/tehuti/tehuti.c
99
struct pci_nic *nic = pci_get_drvdata(pdev);
drivers/net/ethernet/tehuti/tehuti.h
272
struct pci_nic *nic;
drivers/net/wireless/intel/ipw2x00/ipw2100.c
2876
(u32) (txq->nic + i * sizeof(struct ipw2100_bd)),
drivers/net/wireless/intel/ipw2x00/ipw2100.c
2884
(u32) (txq->nic + i *
drivers/net/wireless/intel/ipw2x00/ipw2100.c
3006
(u32) (txq->nic + txq->next *
drivers/net/wireless/intel/ipw2x00/ipw2100.c
4301
q->drv = dma_alloc_coherent(&priv->pci_dev->dev, q->size, &q->nic,
drivers/net/wireless/intel/ipw2x00/ipw2100.c
4321
priv->status_queue.nic);
drivers/net/wireless/intel/ipw2x00/ipw2100.c
4337
q->drv = dma_alloc_coherent(&priv->pci_dev->dev, q->size, &q->nic,
drivers/net/wireless/intel/ipw2x00/ipw2100.c
4359
q->nic);
drivers/net/wireless/intel/ipw2x00/ipw2100.c
4373
(u32) q->nic);
drivers/net/wireless/intel/ipw2x00/ipw2100.c
4375
write_register(priv->net_dev, base, q->nic);
drivers/net/wireless/intel/ipw2x00/ipw2100.c
4621
priv->status_queue.nic);
drivers/net/wireless/intel/ipw2x00/ipw2100.h
170
dma_addr_t nic;
drivers/net/wireless/intel/ipw2x00/ipw2100.h
219
dma_addr_t nic;
drivers/net/wireless/microchip/wilc1000/wlan.h
402
int (*enable_interrupt)(struct wilc *nic);
drivers/net/wireless/microchip/wilc1000/wlan.h
403
void (*disable_interrupt)(struct wilc *nic);
drivers/net/wireless/ti/wlcore/main.c
6058
static void wl12xx_derive_mac_addresses(struct wl1271 *wl, u32 oui, u32 nic)
drivers/net/wireless/ti/wlcore/main.c
6063
oui, nic);
drivers/net/wireless/ti/wlcore/main.c
6065
if (nic + WLCORE_NUM_MAC_ADDRESSES - wl->num_mac_addr > 0xffffff)
drivers/net/wireless/ti/wlcore/main.c
6072
wl->addresses[i].addr[3] = (u8)(nic >> 16);
drivers/net/wireless/ti/wlcore/main.c
6073
wl->addresses[i].addr[4] = (u8)(nic >> 8);
drivers/net/wireless/ti/wlcore/main.c
6074
wl->addresses[i].addr[5] = (u8) nic;
drivers/net/wireless/ti/wlcore/main.c
6075
nic++;
drivers/scsi/be2iscsi/be_mgmt.c
803
struct be_cmd_get_nic_conf_resp *nic)
drivers/scsi/be2iscsi/be_mgmt.c
810
sizeof(*nic));
drivers/scsi/be2iscsi/be_mgmt.c
814
rc = beiscsi_exec_nemb_cmd(phba, &nonemb_cmd, NULL, nic, sizeof(*nic));
drivers/scsi/csiostor/csio_hw.c
2233
if (hdr1->chip == hdr2->chip && SAME_INTF(nic) && SAME_INTF(vnic) &&
drivers/scsi/iscsi_boot_sysfs.c
82
iscsi_boot_rd_attr(tgt_nic, nic-assoc, ISCSI_BOOT_TGT_NIC_ASSOC);