Lines Matching refs:interface
640 struct fm10k_intfc *interface = netdev_priv(skb->dev); in fm10k_port_is_vxlan() local
644 vxlan_port = list_first_entry_or_null(&interface->vxlan_port, in fm10k_port_is_vxlan()
1125 struct fm10k_intfc *interface = ring->q_vector->interface; in fm10k_get_tx_pending() local
1126 struct fm10k_hw *hw = &interface->hw; in fm10k_get_tx_pending()
1173 void fm10k_tx_timeout_reset(struct fm10k_intfc *interface) in fm10k_tx_timeout_reset() argument
1176 if (!test_bit(__FM10K_DOWN, interface->state)) { in fm10k_tx_timeout_reset()
1177 interface->tx_timeout_count++; in fm10k_tx_timeout_reset()
1178 set_bit(FM10K_FLAG_RESET_REQUESTED, interface->flags); in fm10k_tx_timeout_reset()
1179 fm10k_service_event_schedule(interface); in fm10k_tx_timeout_reset()
1192 struct fm10k_intfc *interface = q_vector->interface; in fm10k_clean_tx_irq() local
1199 if (test_bit(__FM10K_DOWN, interface->state)) in fm10k_clean_tx_irq()
1289 struct fm10k_hw *hw = &interface->hw; in fm10k_clean_tx_irq()
1291 netif_err(interface, drv, tx_ring->netdev, in fm10k_clean_tx_irq()
1305 netif_info(interface, probe, tx_ring->netdev, in fm10k_clean_tx_irq()
1307 interface->tx_timeout_count + 1, in fm10k_clean_tx_irq()
1310 fm10k_tx_timeout_reset(interface); in fm10k_clean_tx_irq()
1329 !test_bit(__FM10K_DOWN, interface->state)) { in fm10k_clean_tx_irq()
1488 static bool fm10k_set_qos_queues(struct fm10k_intfc *interface) in fm10k_set_qos_queues() argument
1490 struct net_device *dev = interface->netdev; in fm10k_set_qos_queues()
1502 f = &interface->ring_feature[RING_F_QOS]; in fm10k_set_qos_queues()
1507 rss_i = interface->hw.mac.max_queues / pcs; in fm10k_set_qos_queues()
1511 f = &interface->ring_feature[RING_F_RSS]; in fm10k_set_qos_queues()
1520 interface->num_rx_queues = rss_i * pcs; in fm10k_set_qos_queues()
1521 interface->num_tx_queues = rss_i * pcs; in fm10k_set_qos_queues()
1534 static bool fm10k_set_rss_queues(struct fm10k_intfc *interface) in fm10k_set_rss_queues() argument
1539 f = &interface->ring_feature[RING_F_RSS]; in fm10k_set_rss_queues()
1540 rss_i = min_t(u16, interface->hw.mac.max_queues, f->limit); in fm10k_set_rss_queues()
1546 interface->num_rx_queues = rss_i; in fm10k_set_rss_queues()
1547 interface->num_tx_queues = rss_i; in fm10k_set_rss_queues()
1563 static void fm10k_set_num_queues(struct fm10k_intfc *interface) in fm10k_set_num_queues() argument
1566 if (fm10k_set_qos_queues(interface)) in fm10k_set_num_queues()
1570 fm10k_set_rss_queues(interface); in fm10k_set_num_queues()
1580 static void fm10k_reset_num_queues(struct fm10k_intfc *interface) in fm10k_reset_num_queues() argument
1582 interface->num_tx_queues = 0; in fm10k_reset_num_queues()
1583 interface->num_rx_queues = 0; in fm10k_reset_num_queues()
1584 interface->num_q_vectors = 0; in fm10k_reset_num_queues()
1599 static int fm10k_alloc_q_vector(struct fm10k_intfc *interface, in fm10k_alloc_q_vector() argument
1616 netif_napi_add(interface->netdev, &q_vector->napi, in fm10k_alloc_q_vector()
1620 interface->q_vector[v_idx] = q_vector; in fm10k_alloc_q_vector()
1621 q_vector->interface = interface; in fm10k_alloc_q_vector()
1630 q_vector->tx.itr = interface->tx_itr; in fm10k_alloc_q_vector()
1631 q_vector->tx.itr_scale = interface->hw.mac.itr_scale; in fm10k_alloc_q_vector()
1636 ring->dev = &interface->pdev->dev; in fm10k_alloc_q_vector()
1637 ring->netdev = interface->netdev; in fm10k_alloc_q_vector()
1643 ring->count = interface->tx_ring_count; in fm10k_alloc_q_vector()
1647 interface->tx_ring[txr_idx] = ring; in fm10k_alloc_q_vector()
1659 q_vector->rx.itr = interface->rx_itr; in fm10k_alloc_q_vector()
1660 q_vector->rx.itr_scale = interface->hw.mac.itr_scale; in fm10k_alloc_q_vector()
1665 ring->dev = &interface->pdev->dev; in fm10k_alloc_q_vector()
1666 ring->netdev = interface->netdev; in fm10k_alloc_q_vector()
1667 rcu_assign_pointer(ring->l2_accel, interface->l2_accel); in fm10k_alloc_q_vector()
1673 ring->count = interface->rx_ring_count; in fm10k_alloc_q_vector()
1677 interface->rx_ring[rxr_idx] = ring; in fm10k_alloc_q_vector()
1701 static void fm10k_free_q_vector(struct fm10k_intfc *interface, int v_idx) in fm10k_free_q_vector() argument
1703 struct fm10k_q_vector *q_vector = interface->q_vector[v_idx]; in fm10k_free_q_vector()
1709 interface->tx_ring[ring->queue_index] = NULL; in fm10k_free_q_vector()
1712 interface->rx_ring[ring->queue_index] = NULL; in fm10k_free_q_vector()
1714 interface->q_vector[v_idx] = NULL; in fm10k_free_q_vector()
1726 static int fm10k_alloc_q_vectors(struct fm10k_intfc *interface) in fm10k_alloc_q_vectors() argument
1728 unsigned int q_vectors = interface->num_q_vectors; in fm10k_alloc_q_vectors()
1729 unsigned int rxr_remaining = interface->num_rx_queues; in fm10k_alloc_q_vectors()
1730 unsigned int txr_remaining = interface->num_tx_queues; in fm10k_alloc_q_vectors()
1736 err = fm10k_alloc_q_vector(interface, q_vectors, v_idx, in fm10k_alloc_q_vectors()
1751 err = fm10k_alloc_q_vector(interface, q_vectors, v_idx, in fm10k_alloc_q_vectors()
1768 fm10k_reset_num_queues(interface); in fm10k_alloc_q_vectors()
1771 fm10k_free_q_vector(interface, v_idx); in fm10k_alloc_q_vectors()
1784 static void fm10k_free_q_vectors(struct fm10k_intfc *interface) in fm10k_free_q_vectors() argument
1786 int v_idx = interface->num_q_vectors; in fm10k_free_q_vectors()
1788 fm10k_reset_num_queues(interface); in fm10k_free_q_vectors()
1791 fm10k_free_q_vector(interface, v_idx); in fm10k_free_q_vectors()
1800 static void fm10k_reset_msix_capability(struct fm10k_intfc *interface) in fm10k_reset_msix_capability() argument
1802 pci_disable_msix(interface->pdev); in fm10k_reset_msix_capability()
1803 kfree(interface->msix_entries); in fm10k_reset_msix_capability()
1804 interface->msix_entries = NULL; in fm10k_reset_msix_capability()
1814 static int fm10k_init_msix_capability(struct fm10k_intfc *interface) in fm10k_init_msix_capability() argument
1816 struct fm10k_hw *hw = &interface->hw; in fm10k_init_msix_capability()
1825 v_budget = max(interface->num_rx_queues, interface->num_tx_queues); in fm10k_init_msix_capability()
1840 interface->msix_entries = kcalloc(v_budget, sizeof(struct msix_entry), in fm10k_init_msix_capability()
1842 if (!interface->msix_entries) in fm10k_init_msix_capability()
1847 interface->msix_entries[vector].entry = vector; in fm10k_init_msix_capability()
1850 v_budget = pci_enable_msix_range(interface->pdev, in fm10k_init_msix_capability()
1851 interface->msix_entries, in fm10k_init_msix_capability()
1855 kfree(interface->msix_entries); in fm10k_init_msix_capability()
1856 interface->msix_entries = NULL; in fm10k_init_msix_capability()
1861 interface->num_q_vectors = v_budget - NON_Q_VECTORS; in fm10k_init_msix_capability()
1872 static bool fm10k_cache_ring_qos(struct fm10k_intfc *interface) in fm10k_cache_ring_qos() argument
1874 struct net_device *dev = interface->netdev; in fm10k_cache_ring_qos()
1876 u16 pc_stride = interface->ring_feature[RING_F_QOS].mask + 1; in fm10k_cache_ring_qos()
1882 rss_i = interface->ring_feature[RING_F_RSS].indices; in fm10k_cache_ring_qos()
1888 interface->tx_ring[offset + i]->reg_idx = q_idx; in fm10k_cache_ring_qos()
1889 interface->tx_ring[offset + i]->qos_pc = pc; in fm10k_cache_ring_qos()
1890 interface->rx_ring[offset + i]->reg_idx = q_idx; in fm10k_cache_ring_qos()
1891 interface->rx_ring[offset + i]->qos_pc = pc; in fm10k_cache_ring_qos()
1905 static void fm10k_cache_ring_rss(struct fm10k_intfc *interface) in fm10k_cache_ring_rss() argument
1909 for (i = 0; i < interface->num_rx_queues; i++) in fm10k_cache_ring_rss()
1910 interface->rx_ring[i]->reg_idx = i; in fm10k_cache_ring_rss()
1912 for (i = 0; i < interface->num_tx_queues; i++) in fm10k_cache_ring_rss()
1913 interface->tx_ring[i]->reg_idx = i; in fm10k_cache_ring_rss()
1924 static void fm10k_assign_rings(struct fm10k_intfc *interface) in fm10k_assign_rings() argument
1926 if (fm10k_cache_ring_qos(interface)) in fm10k_assign_rings()
1929 fm10k_cache_ring_rss(interface); in fm10k_assign_rings()
1932 static void fm10k_init_reta(struct fm10k_intfc *interface) in fm10k_init_reta() argument
1934 u16 i, rss_i = interface->ring_feature[RING_F_RSS].indices; in fm10k_init_reta()
1940 if (netif_is_rxfh_configured(interface->netdev)) { in fm10k_init_reta()
1942 reta = interface->reta[i]; in fm10k_init_reta()
1950 dev_err(&interface->pdev->dev, in fm10k_init_reta()
1960 fm10k_write_reta(interface, NULL); in fm10k_init_reta()
1971 int fm10k_init_queueing_scheme(struct fm10k_intfc *interface) in fm10k_init_queueing_scheme() argument
1976 fm10k_set_num_queues(interface); in fm10k_init_queueing_scheme()
1979 err = fm10k_init_msix_capability(interface); in fm10k_init_queueing_scheme()
1981 dev_err(&interface->pdev->dev, in fm10k_init_queueing_scheme()
1987 err = fm10k_alloc_q_vectors(interface); in fm10k_init_queueing_scheme()
1989 dev_err(&interface->pdev->dev, in fm10k_init_queueing_scheme()
1995 fm10k_assign_rings(interface); in fm10k_init_queueing_scheme()
1998 fm10k_init_reta(interface); in fm10k_init_queueing_scheme()
2003 fm10k_reset_msix_capability(interface); in fm10k_init_queueing_scheme()
2005 fm10k_reset_num_queues(interface); in fm10k_init_queueing_scheme()
2016 void fm10k_clear_queueing_scheme(struct fm10k_intfc *interface) in fm10k_clear_queueing_scheme() argument
2018 fm10k_free_q_vectors(interface); in fm10k_clear_queueing_scheme()
2019 fm10k_reset_msix_capability(interface); in fm10k_clear_queueing_scheme()