Lines Matching refs:bnad

299 	struct bnad *bnad = netdev_priv(netdev);  in bnad_get_drvinfo()  local
308 spin_lock_irqsave(&bnad->bna_lock, flags); in bnad_get_drvinfo()
309 bfa_nw_ioc_get_attr(&bnad->bna.ioceth.ioc, ioc_attr); in bnad_get_drvinfo()
310 spin_unlock_irqrestore(&bnad->bna_lock, flags); in bnad_get_drvinfo()
317 strlcpy(drvinfo->bus_info, pci_name(bnad->pcidev), in bnad_get_drvinfo()
331 struct bnad *bnad = netdev_priv(netdev); in bnad_get_coalesce() local
335 spin_lock_irqsave(&bnad->bna_lock, flags); in bnad_get_coalesce()
337 (bnad->cfg_flags & BNAD_CF_DIM_ENABLED) ? true : false; in bnad_get_coalesce()
338 spin_unlock_irqrestore(&bnad->bna_lock, flags); in bnad_get_coalesce()
340 coalesce->rx_coalesce_usecs = bnad->rx_coalescing_timeo * in bnad_get_coalesce()
342 coalesce->tx_coalesce_usecs = bnad->tx_coalescing_timeo * in bnad_get_coalesce()
352 struct bnad *bnad = netdev_priv(netdev); in bnad_set_coalesce() local
366 mutex_lock(&bnad->conf_mutex); in bnad_set_coalesce()
372 spin_lock_irqsave(&bnad->bna_lock, flags); in bnad_set_coalesce()
374 if (!(bnad->cfg_flags & BNAD_CF_DIM_ENABLED)) { in bnad_set_coalesce()
375 bnad->cfg_flags |= BNAD_CF_DIM_ENABLED; in bnad_set_coalesce()
376 bnad_dim_timer_start(bnad); in bnad_set_coalesce()
379 if (bnad->cfg_flags & BNAD_CF_DIM_ENABLED) { in bnad_set_coalesce()
380 bnad->cfg_flags &= ~BNAD_CF_DIM_ENABLED; in bnad_set_coalesce()
381 if (bnad->cfg_flags & BNAD_CF_DIM_ENABLED && in bnad_set_coalesce()
383 &bnad->run_flags)) { in bnad_set_coalesce()
385 &bnad->run_flags); in bnad_set_coalesce()
388 spin_unlock_irqrestore(&bnad->bna_lock, flags); in bnad_set_coalesce()
390 del_timer_sync(&bnad->dim_timer); in bnad_set_coalesce()
391 spin_lock_irqsave(&bnad->bna_lock, flags); in bnad_set_coalesce()
392 bnad_rx_coalescing_timeo_set(bnad); in bnad_set_coalesce()
395 if (bnad->tx_coalescing_timeo != coalesce->tx_coalesce_usecs / in bnad_set_coalesce()
397 bnad->tx_coalescing_timeo = coalesce->tx_coalesce_usecs / in bnad_set_coalesce()
399 bnad_tx_coalescing_timeo_set(bnad); in bnad_set_coalesce()
402 if (bnad->rx_coalescing_timeo != coalesce->rx_coalesce_usecs / in bnad_set_coalesce()
404 bnad->rx_coalescing_timeo = coalesce->rx_coalesce_usecs / in bnad_set_coalesce()
407 if (!(bnad->cfg_flags & BNAD_CF_DIM_ENABLED)) in bnad_set_coalesce()
408 bnad_rx_coalescing_timeo_set(bnad); in bnad_set_coalesce()
414 spin_unlock_irqrestore(&bnad->bna_lock, flags); in bnad_set_coalesce()
416 mutex_unlock(&bnad->conf_mutex); in bnad_set_coalesce()
424 struct bnad *bnad = netdev_priv(netdev); in bnad_get_ringparam() local
429 ringparam->rx_pending = bnad->rxq_depth; in bnad_get_ringparam()
430 ringparam->tx_pending = bnad->txq_depth; in bnad_get_ringparam()
438 struct bnad *bnad = netdev_priv(netdev); in bnad_set_ringparam() local
441 mutex_lock(&bnad->conf_mutex); in bnad_set_ringparam()
442 if (ringparam->rx_pending == bnad->rxq_depth && in bnad_set_ringparam()
443 ringparam->tx_pending == bnad->txq_depth) { in bnad_set_ringparam()
444 mutex_unlock(&bnad->conf_mutex); in bnad_set_ringparam()
451 mutex_unlock(&bnad->conf_mutex); in bnad_set_ringparam()
457 mutex_unlock(&bnad->conf_mutex); in bnad_set_ringparam()
461 if (ringparam->rx_pending != bnad->rxq_depth) { in bnad_set_ringparam()
462 bnad->rxq_depth = ringparam->rx_pending; in bnad_set_ringparam()
464 mutex_unlock(&bnad->conf_mutex); in bnad_set_ringparam()
468 for (i = 0; i < bnad->num_rx; i++) { in bnad_set_ringparam()
469 if (!bnad->rx_info[i].rx) in bnad_set_ringparam()
471 bnad_destroy_rx(bnad, i); in bnad_set_ringparam()
472 current_err = bnad_setup_rx(bnad, i); in bnad_set_ringparam()
477 if (!err && bnad->rx_info[0].rx) { in bnad_set_ringparam()
479 bnad_restore_vlans(bnad, 0); in bnad_set_ringparam()
480 bnad_enable_default_bcast(bnad); in bnad_set_ringparam()
481 spin_lock_irqsave(&bnad->bna_lock, flags); in bnad_set_ringparam()
482 bnad_mac_addr_set_locked(bnad, netdev->dev_addr); in bnad_set_ringparam()
483 spin_unlock_irqrestore(&bnad->bna_lock, flags); in bnad_set_ringparam()
484 bnad->cfg_flags &= ~(BNAD_CF_ALLMULTI | in bnad_set_ringparam()
489 if (ringparam->tx_pending != bnad->txq_depth) { in bnad_set_ringparam()
490 bnad->txq_depth = ringparam->tx_pending; in bnad_set_ringparam()
492 mutex_unlock(&bnad->conf_mutex); in bnad_set_ringparam()
496 for (i = 0; i < bnad->num_tx; i++) { in bnad_set_ringparam()
497 if (!bnad->tx_info[i].tx) in bnad_set_ringparam()
499 bnad_destroy_tx(bnad, i); in bnad_set_ringparam()
500 current_err = bnad_setup_tx(bnad, i); in bnad_set_ringparam()
506 mutex_unlock(&bnad->conf_mutex); in bnad_set_ringparam()
514 struct bnad *bnad = netdev_priv(netdev); in bnad_get_pauseparam() local
517 pauseparam->rx_pause = bnad->bna.enet.pause_config.rx_pause; in bnad_get_pauseparam()
518 pauseparam->tx_pause = bnad->bna.enet.pause_config.tx_pause; in bnad_get_pauseparam()
525 struct bnad *bnad = netdev_priv(netdev); in bnad_set_pauseparam() local
532 mutex_lock(&bnad->conf_mutex); in bnad_set_pauseparam()
533 if (pauseparam->rx_pause != bnad->bna.enet.pause_config.rx_pause || in bnad_set_pauseparam()
534 pauseparam->tx_pause != bnad->bna.enet.pause_config.tx_pause) { in bnad_set_pauseparam()
537 spin_lock_irqsave(&bnad->bna_lock, flags); in bnad_set_pauseparam()
538 bna_enet_pause_config(&bnad->bna.enet, &pause_config); in bnad_set_pauseparam()
539 spin_unlock_irqrestore(&bnad->bna_lock, flags); in bnad_set_pauseparam()
541 mutex_unlock(&bnad->conf_mutex); in bnad_set_pauseparam()
548 struct bnad *bnad = netdev_priv(netdev); in bnad_get_strings() local
552 mutex_lock(&bnad->conf_mutex); in bnad_get_strings()
563 bmap = bna_tx_rid_mask(&bnad->bna); in bnad_get_strings()
594 bmap = bna_rx_rid_mask(&bnad->bna); in bnad_get_strings()
622 for (i = 0; i < bnad->num_rx; i++) { in bnad_get_strings()
623 if (!bnad->rx_info[i].rx) in bnad_get_strings()
625 for (j = 0; j < bnad->num_rxp_per_rx; j++) { in bnad_get_strings()
648 for (i = 0; i < bnad->num_rx; i++) { in bnad_get_strings()
649 if (!bnad->rx_info[i].rx) in bnad_get_strings()
651 for (j = 0; j < bnad->num_rxp_per_rx; j++) { in bnad_get_strings()
666 if (bnad->rx_info[i].rx_ctrl[j].ccb && in bnad_get_strings()
667 bnad->rx_info[i].rx_ctrl[j].ccb-> in bnad_get_strings()
669 bnad->rx_info[i].rx_ctrl[j].ccb-> in bnad_get_strings()
693 for (i = 0; i < bnad->num_tx; i++) { in bnad_get_strings()
694 if (!bnad->tx_info[i].tx) in bnad_get_strings()
696 for (j = 0; j < bnad->num_txq_per_tx; j++) { in bnad_get_strings()
718 mutex_unlock(&bnad->conf_mutex); in bnad_get_strings()
724 struct bnad *bnad = netdev_priv(netdev); in bnad_get_stats_count_locked() local
728 bmap = bna_tx_rid_mask(&bnad->bna); in bnad_get_stats_count_locked()
734 bmap = bna_rx_rid_mask(&bnad->bna); in bnad_get_stats_count_locked()
744 for (i = 0; i < bnad->num_rx; i++) { in bnad_get_stats_count_locked()
745 if (!bnad->rx_info[i].rx) in bnad_get_stats_count_locked()
747 count += bnad->num_rxp_per_rx * BNAD_NUM_CQ_COUNTERS; in bnad_get_stats_count_locked()
748 count += bnad->num_rxp_per_rx * BNAD_NUM_RXQ_COUNTERS; in bnad_get_stats_count_locked()
749 for (j = 0; j < bnad->num_rxp_per_rx; j++) in bnad_get_stats_count_locked()
750 if (bnad->rx_info[i].rx_ctrl[j].ccb && in bnad_get_stats_count_locked()
751 bnad->rx_info[i].rx_ctrl[j].ccb->rcb[1] && in bnad_get_stats_count_locked()
752 bnad->rx_info[i].rx_ctrl[j].ccb->rcb[1]->rxq) in bnad_get_stats_count_locked()
756 for (i = 0; i < bnad->num_tx; i++) { in bnad_get_stats_count_locked()
757 if (!bnad->tx_info[i].tx) in bnad_get_stats_count_locked()
759 count += bnad->num_txq_per_tx * BNAD_NUM_TXQ_COUNTERS; in bnad_get_stats_count_locked()
765 bnad_per_q_stats_fill(struct bnad *bnad, u64 *buf, int bi) in bnad_per_q_stats_fill() argument
771 for (i = 0; i < bnad->num_rx; i++) { in bnad_per_q_stats_fill()
772 if (!bnad->rx_info[i].rx) in bnad_per_q_stats_fill()
774 for (j = 0; j < bnad->num_rxp_per_rx; j++) in bnad_per_q_stats_fill()
775 if (bnad->rx_info[i].rx_ctrl[j].ccb && in bnad_per_q_stats_fill()
776 bnad->rx_info[i].rx_ctrl[j].ccb->rcb[0] && in bnad_per_q_stats_fill()
777 bnad->rx_info[i].rx_ctrl[j].ccb->rcb[0]->rxq) { in bnad_per_q_stats_fill()
778 buf[bi++] = bnad->rx_info[i].rx_ctrl[j]. in bnad_per_q_stats_fill()
781 buf[bi++] = *(bnad->rx_info[i].rx_ctrl[j]. in bnad_per_q_stats_fill()
784 buf[bi++] = bnad->rx_info[i]. in bnad_per_q_stats_fill()
786 buf[bi++] = bnad->rx_info[i]. in bnad_per_q_stats_fill()
788 buf[bi++] = bnad->rx_info[i]. in bnad_per_q_stats_fill()
790 buf[bi++] = bnad->rx_info[i]. in bnad_per_q_stats_fill()
792 buf[bi++] = bnad->rx_info[i]. in bnad_per_q_stats_fill()
796 for (i = 0; i < bnad->num_rx; i++) { in bnad_per_q_stats_fill()
797 if (!bnad->rx_info[i].rx) in bnad_per_q_stats_fill()
799 for (j = 0; j < bnad->num_rxp_per_rx; j++) in bnad_per_q_stats_fill()
800 if (bnad->rx_info[i].rx_ctrl[j].ccb) { in bnad_per_q_stats_fill()
801 if (bnad->rx_info[i].rx_ctrl[j].ccb->rcb[0] && in bnad_per_q_stats_fill()
802 bnad->rx_info[i].rx_ctrl[j].ccb-> in bnad_per_q_stats_fill()
804 rcb = bnad->rx_info[i].rx_ctrl[j]. in bnad_per_q_stats_fill()
816 if (bnad->rx_info[i].rx_ctrl[j].ccb->rcb[1] && in bnad_per_q_stats_fill()
817 bnad->rx_info[i].rx_ctrl[j].ccb-> in bnad_per_q_stats_fill()
819 rcb = bnad->rx_info[i].rx_ctrl[j]. in bnad_per_q_stats_fill()
834 for (i = 0; i < bnad->num_tx; i++) { in bnad_per_q_stats_fill()
835 if (!bnad->tx_info[i].tx) in bnad_per_q_stats_fill()
837 for (j = 0; j < bnad->num_txq_per_tx; j++) in bnad_per_q_stats_fill()
838 if (bnad->tx_info[i].tcb[j] && in bnad_per_q_stats_fill()
839 bnad->tx_info[i].tcb[j]->txq) { in bnad_per_q_stats_fill()
840 tcb = bnad->tx_info[i].tcb[j]; in bnad_per_q_stats_fill()
856 struct bnad *bnad = netdev_priv(netdev); in bnad_get_ethtool_stats() local
863 mutex_lock(&bnad->conf_mutex); in bnad_get_ethtool_stats()
865 mutex_unlock(&bnad->conf_mutex); in bnad_get_ethtool_stats()
873 spin_lock_irqsave(&bnad->bna_lock, flags); in bnad_get_ethtool_stats()
878 bnad_netdev_qstats_fill(bnad, net_stats64); in bnad_get_ethtool_stats()
879 bnad_netdev_hwstats_fill(bnad, net_stats64); in bnad_get_ethtool_stats()
884 bnad->stats.drv_stats.netif_queue_stopped = netif_queue_stopped(netdev); in bnad_get_ethtool_stats()
887 stats64 = (u64 *)&bnad->stats.drv_stats; in bnad_get_ethtool_stats()
892 stats64 = (u64 *) &bnad->stats.bna_stats->hw_stats; in bnad_get_ethtool_stats()
900 bmap = bna_tx_rid_mask(&bnad->bna); in bnad_get_ethtool_stats()
903 stats64 = (u64 *)&bnad->stats.bna_stats-> in bnad_get_ethtool_stats()
913 bmap = bna_rx_rid_mask(&bnad->bna); in bnad_get_ethtool_stats()
916 stats64 = (u64 *)&bnad->stats.bna_stats-> in bnad_get_ethtool_stats()
926 bi = bnad_per_q_stats_fill(bnad, buf, bi); in bnad_get_ethtool_stats()
928 spin_unlock_irqrestore(&bnad->bna_lock, flags); in bnad_get_ethtool_stats()
930 mutex_unlock(&bnad->conf_mutex); in bnad_get_ethtool_stats()
945 bnad_get_flash_partition_by_offset(struct bnad *bnad, u32 offset, in bnad_get_flash_partition_by_offset() argument
957 fcomp.bnad = bnad; in bnad_get_flash_partition_by_offset()
961 spin_lock_irqsave(&bnad->bna_lock, flags); in bnad_get_flash_partition_by_offset()
962 ret = bfa_nw_flash_get_attr(&bnad->bna.flash, flash_attr, in bnad_get_flash_partition_by_offset()
965 spin_unlock_irqrestore(&bnad->bna_lock, flags); in bnad_get_flash_partition_by_offset()
969 spin_unlock_irqrestore(&bnad->bna_lock, flags); in bnad_get_flash_partition_by_offset()
999 struct bnad *bnad = netdev_priv(netdev); in bnad_get_eeprom() local
1006 eeprom->magic = bnad->pcidev->vendor | (bnad->pcidev->device << 16); in bnad_get_eeprom()
1009 flash_part = bnad_get_flash_partition_by_offset(bnad, in bnad_get_eeprom()
1014 fcomp.bnad = bnad; in bnad_get_eeprom()
1018 spin_lock_irqsave(&bnad->bna_lock, flags); in bnad_get_eeprom()
1019 ret = bfa_nw_flash_read_part(&bnad->bna.flash, flash_part, in bnad_get_eeprom()
1020 bnad->id, bytes, eeprom->len, in bnad_get_eeprom()
1024 spin_unlock_irqrestore(&bnad->bna_lock, flags); in bnad_get_eeprom()
1028 spin_unlock_irqrestore(&bnad->bna_lock, flags); in bnad_get_eeprom()
1039 struct bnad *bnad = netdev_priv(netdev); in bnad_set_eeprom() local
1046 if (eeprom->magic != (bnad->pcidev->vendor | in bnad_set_eeprom()
1047 (bnad->pcidev->device << 16))) in bnad_set_eeprom()
1051 flash_part = bnad_get_flash_partition_by_offset(bnad, in bnad_set_eeprom()
1056 fcomp.bnad = bnad; in bnad_set_eeprom()
1060 spin_lock_irqsave(&bnad->bna_lock, flags); in bnad_set_eeprom()
1061 ret = bfa_nw_flash_update_part(&bnad->bna.flash, flash_part, in bnad_set_eeprom()
1062 bnad->id, bytes, eeprom->len, in bnad_set_eeprom()
1066 spin_unlock_irqrestore(&bnad->bna_lock, flags); in bnad_set_eeprom()
1070 spin_unlock_irqrestore(&bnad->bna_lock, flags); in bnad_set_eeprom()
1080 struct bnad *bnad = netdev_priv(netdev); in bnad_flash_device() local
1085 ret = request_firmware(&fw, eflash->data, &bnad->pcidev->dev); in bnad_flash_device()
1091 fcomp.bnad = bnad; in bnad_flash_device()
1095 spin_lock_irq(&bnad->bna_lock); in bnad_flash_device()
1096 ret = bfa_nw_flash_update_part(&bnad->bna.flash, BFA_FLASH_PART_FWIMG, in bnad_flash_device()
1097 bnad->id, (u8 *)fw->data, fw->size, 0, in bnad_flash_device()
1102 spin_unlock_irq(&bnad->bna_lock); in bnad_flash_device()
1106 spin_unlock_irq(&bnad->bna_lock); in bnad_flash_device()