Lines Matching refs:enic
118 static void enic_intr_coal_set_rx(struct enic *enic, u32 timer) in enic_intr_coal_set_rx() argument
123 for (i = 0; i < enic->rq_count; i++) { in enic_intr_coal_set_rx()
124 intr = enic_msix_rq_intr(enic, i); in enic_intr_coal_set_rx()
125 vnic_intr_coalescing_timer_set(&enic->intr[intr], timer); in enic_intr_coal_set_rx()
132 struct enic *enic = netdev_priv(netdev); in enic_get_ksettings() local
144 base->speed = vnic_dev_port_speed(enic->vdev); in enic_get_ksettings()
159 struct enic *enic = netdev_priv(netdev); in enic_get_drvinfo() local
163 err = enic_dev_fw_info(enic, &fw_info); in enic_get_drvinfo()
174 strscpy(drvinfo->bus_info, pci_name(enic->pdev), in enic_get_drvinfo()
181 struct enic *enic = netdev_priv(netdev); in enic_get_strings() local
199 for (i = 0; i < enic->rq_count; i++) { in enic_get_strings()
206 for (i = 0; i < enic->wq_count; i++) { in enic_get_strings()
222 struct enic *enic = netdev_priv(netdev); in enic_get_ringparam() local
223 struct vnic_enet_config *c = &enic->config; in enic_get_ringparam()
236 struct enic *enic = netdev_priv(netdev); in enic_set_ringparam() local
237 struct vnic_enet_config *c = &enic->config; in enic_set_ringparam()
275 enic_free_vnic_resources(enic); in enic_set_ringparam()
276 err = enic_alloc_vnic_resources(enic); in enic_set_ringparam()
280 enic_free_vnic_resources(enic); in enic_set_ringparam()
283 enic_init_vnic_resources(enic); in enic_set_ringparam()
298 struct enic *enic = netdev_priv(netdev); in enic_get_sset_count() local
305 n_per_rq_stats = NUM_ENIC_PER_RQ_STATS * enic->rq_count; in enic_get_sset_count()
306 n_per_wq_stats = NUM_ENIC_PER_WQ_STATS * enic->wq_count; in enic_get_sset_count()
319 struct enic *enic = netdev_priv(netdev); in enic_get_ethtool_stats() local
325 err = enic_dev_stats_dump(enic, &vstats); in enic_get_ethtool_stats()
338 *(data++) = ((u64 *)&enic->gen_stats)[enic_gen_stats[i].index]; in enic_get_ethtool_stats()
339 for (i = 0; i < enic->rq_count; i++) { in enic_get_ethtool_stats()
340 struct enic_rq_stats *rqstats = &enic->rq_stats[i]; in enic_get_ethtool_stats()
348 for (i = 0; i < enic->wq_count; i++) { in enic_get_ethtool_stats()
349 struct enic_wq_stats *wqstats = &enic->wq_stats[i]; in enic_get_ethtool_stats()
361 struct enic *enic = netdev_priv(netdev); in enic_get_msglevel() local
362 return enic->msg_enable; in enic_get_msglevel()
367 struct enic *enic = netdev_priv(netdev); in enic_set_msglevel() local
368 enic->msg_enable = value; in enic_set_msglevel()
376 struct enic *enic = netdev_priv(netdev); in enic_get_coalesce() local
377 struct enic_rx_coal *rxcoal = &enic->rx_coalesce_setting; in enic_get_coalesce()
379 if (vnic_dev_get_intr_mode(enic->vdev) == VNIC_DEV_INTR_MODE_MSIX) in enic_get_coalesce()
380 ecmd->tx_coalesce_usecs = enic->tx_coalesce_usecs; in enic_get_coalesce()
381 ecmd->rx_coalesce_usecs = enic->rx_coalesce_usecs; in enic_get_coalesce()
390 static int enic_coalesce_valid(struct enic *enic, in enic_coalesce_valid() argument
393 u32 coalesce_usecs_max = vnic_dev_get_intr_coal_timer_max(enic->vdev); in enic_coalesce_valid()
399 if ((vnic_dev_get_intr_mode(enic->vdev) != VNIC_DEV_INTR_MODE_MSIX) && in enic_coalesce_valid()
407 …netdev_info(enic->netdev, "ethtool_set_coalesce: adaptor supports max coalesce value of %d. Settin… in enic_coalesce_valid()
423 struct enic *enic = netdev_priv(netdev); in enic_set_coalesce() local
431 struct enic_rx_coal *rxcoal = &enic->rx_coalesce_setting; in enic_set_coalesce()
433 ret = enic_coalesce_valid(enic, ecmd); in enic_set_coalesce()
436 coalesce_usecs_max = vnic_dev_get_intr_coal_timer_max(enic->vdev); in enic_set_coalesce()
447 if (vnic_dev_get_intr_mode(enic->vdev) == VNIC_DEV_INTR_MODE_MSIX) { in enic_set_coalesce()
448 for (i = 0; i < enic->wq_count; i++) { in enic_set_coalesce()
449 intr = enic_msix_wq_intr(enic, i); in enic_set_coalesce()
450 vnic_intr_coalescing_timer_set(&enic->intr[intr], in enic_set_coalesce()
453 enic->tx_coalesce_usecs = tx_coalesce_usecs; in enic_set_coalesce()
457 enic_intr_coal_set_rx(enic, rx_coalesce_usecs); in enic_set_coalesce()
465 enic->rx_coalesce_usecs = rx_coalesce_usecs; in enic_set_coalesce()
470 static int enic_grxclsrlall(struct enic *enic, struct ethtool_rxnfc *cmd, in enic_grxclsrlall() argument
475 cmd->data = enic->rfs_h.max - enic->rfs_h.free; in enic_grxclsrlall()
481 hhead = &enic->rfs_h.ht_head[j]; in enic_grxclsrlall()
494 static int enic_grxclsrule(struct enic *enic, struct ethtool_rxnfc *cmd) in enic_grxclsrule() argument
500 n = htbl_fltr_search(enic, (u16)fsp->location); in enic_grxclsrule()
531 static int enic_get_rx_flow_hash(struct enic *enic, struct ethtool_rxnfc *cmd) in enic_get_rx_flow_hash() argument
536 spin_lock_bh(&enic->devcmd_lock); in enic_get_rx_flow_hash()
537 (void)vnic_dev_capable_rss_hash_type(enic->vdev, &rss_hash_type); in enic_get_rx_flow_hash()
538 spin_unlock_bh(&enic->devcmd_lock); in enic_get_rx_flow_hash()
577 struct enic *enic = netdev_priv(dev); in enic_get_rxnfc() local
582 cmd->data = enic->rq_count; in enic_get_rxnfc()
585 spin_lock_bh(&enic->rfs_h.lock); in enic_get_rxnfc()
586 cmd->rule_cnt = enic->rfs_h.max - enic->rfs_h.free; in enic_get_rxnfc()
587 cmd->data = enic->rfs_h.max; in enic_get_rxnfc()
588 spin_unlock_bh(&enic->rfs_h.lock); in enic_get_rxnfc()
591 spin_lock_bh(&enic->rfs_h.lock); in enic_get_rxnfc()
592 ret = enic_grxclsrlall(enic, cmd, rule_locs); in enic_get_rxnfc()
593 spin_unlock_bh(&enic->rfs_h.lock); in enic_get_rxnfc()
596 spin_lock_bh(&enic->rfs_h.lock); in enic_get_rxnfc()
597 ret = enic_grxclsrule(enic, cmd); in enic_get_rxnfc()
598 spin_unlock_bh(&enic->rfs_h.lock); in enic_get_rxnfc()
601 ret = enic_get_rx_flow_hash(enic, cmd); in enic_get_rxnfc()
614 struct enic *enic = netdev_priv(dev); in enic_get_tunable() local
619 *(u32 *)data = enic->rx_copybreak; in enic_get_tunable()
633 struct enic *enic = netdev_priv(dev); in enic_set_tunable() local
638 enic->rx_copybreak = *(u32 *)data; in enic_set_tunable()
656 struct enic *enic = netdev_priv(netdev); in enic_get_rxfh() local
659 memcpy(rxfh->key, enic->rss_key, ENIC_RSS_LEN); in enic_get_rxfh()
670 struct enic *enic = netdev_priv(netdev); in enic_set_rxfh() local
678 memcpy(enic->rss_key, rxfh->key, ENIC_RSS_LEN); in enic_set_rxfh()
680 return __enic_set_rsskey(enic); in enic_set_rxfh()
694 struct enic *enic = netdev_priv(netdev); in enic_get_channels() local
696 switch (vnic_dev_get_intr_mode(enic->vdev)) { in enic_get_channels()
700 channels->rx_count = enic->rq_count; in enic_get_channels()
701 channels->tx_count = enic->wq_count; in enic_get_channels()