Lines Matching full:interface

14 #define DRV_SUMMARY	"Intel(R) Ethernet Switch Host Interface Driver"
173 * Synchronizes page for reuse by the interface
241 * true if the buffer can be reused by the interface.
629 struct fm10k_intfc *interface = netdev_priv(skb->dev); in fm10k_port_is_vxlan() local
631 if (interface->vxlan_port != udp_hdr(skb)->dest) in fm10k_port_is_vxlan()
1107 struct fm10k_intfc *interface = ring->q_vector->interface; in fm10k_get_tx_pending() local
1108 struct fm10k_hw *hw = &interface->hw; in fm10k_get_tx_pending()
1153 * @interface: driver private struct
1155 void fm10k_tx_timeout_reset(struct fm10k_intfc *interface) in fm10k_tx_timeout_reset() argument
1158 if (!test_bit(__FM10K_DOWN, interface->state)) { in fm10k_tx_timeout_reset()
1159 interface->tx_timeout_count++; in fm10k_tx_timeout_reset()
1160 set_bit(FM10K_FLAG_RESET_REQUESTED, interface->flags); in fm10k_tx_timeout_reset()
1161 fm10k_service_event_schedule(interface); in fm10k_tx_timeout_reset()
1174 struct fm10k_intfc *interface = q_vector->interface; in fm10k_clean_tx_irq() local
1181 if (test_bit(__FM10K_DOWN, interface->state)) in fm10k_clean_tx_irq()
1271 struct fm10k_hw *hw = &interface->hw; in fm10k_clean_tx_irq()
1273 netif_err(interface, drv, tx_ring->netdev, in fm10k_clean_tx_irq()
1287 netif_info(interface, probe, tx_ring->netdev, in fm10k_clean_tx_irq()
1288 "tx hang %d detected on queue %d, resetting interface\n", in fm10k_clean_tx_irq()
1289 interface->tx_timeout_count + 1, in fm10k_clean_tx_irq()
1292 fm10k_tx_timeout_reset(interface); in fm10k_clean_tx_irq()
1311 !test_bit(__FM10K_DOWN, interface->state)) { in fm10k_clean_tx_irq()
1461 * @interface: board private structure to initialize
1470 static bool fm10k_set_qos_queues(struct fm10k_intfc *interface) in fm10k_set_qos_queues() argument
1472 struct net_device *dev = interface->netdev; in fm10k_set_qos_queues()
1484 f = &interface->ring_feature[RING_F_QOS]; in fm10k_set_qos_queues()
1489 rss_i = interface->hw.mac.max_queues / pcs; in fm10k_set_qos_queues()
1493 f = &interface->ring_feature[RING_F_RSS]; in fm10k_set_qos_queues()
1502 interface->num_rx_queues = rss_i * pcs; in fm10k_set_qos_queues()
1503 interface->num_tx_queues = rss_i * pcs; in fm10k_set_qos_queues()
1510 * @interface: board private structure to initialize
1516 static bool fm10k_set_rss_queues(struct fm10k_intfc *interface) in fm10k_set_rss_queues() argument
1521 f = &interface->ring_feature[RING_F_RSS]; in fm10k_set_rss_queues()
1522 rss_i = min_t(u16, interface->hw.mac.max_queues, f->limit); in fm10k_set_rss_queues()
1528 interface->num_rx_queues = rss_i; in fm10k_set_rss_queues()
1529 interface->num_tx_queues = rss_i; in fm10k_set_rss_queues()
1536 * @interface: board private structure to initialize
1545 static void fm10k_set_num_queues(struct fm10k_intfc *interface) in fm10k_set_num_queues() argument
1548 if (fm10k_set_qos_queues(interface)) in fm10k_set_num_queues()
1552 fm10k_set_rss_queues(interface); in fm10k_set_num_queues()
1557 * @interface: board private structure
1562 static void fm10k_reset_num_queues(struct fm10k_intfc *interface) in fm10k_reset_num_queues() argument
1564 interface->num_tx_queues = 0; in fm10k_reset_num_queues()
1565 interface->num_rx_queues = 0; in fm10k_reset_num_queues()
1566 interface->num_q_vectors = 0; in fm10k_reset_num_queues()
1571 * @interface: board private structure to initialize
1572 * @v_count: q_vectors allocated on interface, used for ring interleaving
1573 * @v_idx: index of vector in interface struct
1581 static int fm10k_alloc_q_vector(struct fm10k_intfc *interface, in fm10k_alloc_q_vector() argument
1598 netif_napi_add(interface->netdev, &q_vector->napi, in fm10k_alloc_q_vector()
1601 /* tie q_vector and interface together */ in fm10k_alloc_q_vector()
1602 interface->q_vector[v_idx] = q_vector; in fm10k_alloc_q_vector()
1603 q_vector->interface = interface; in fm10k_alloc_q_vector()
1612 q_vector->tx.itr = interface->tx_itr; in fm10k_alloc_q_vector()
1613 q_vector->tx.itr_scale = interface->hw.mac.itr_scale; in fm10k_alloc_q_vector()
1618 ring->dev = &interface->pdev->dev; in fm10k_alloc_q_vector()
1619 ring->netdev = interface->netdev; in fm10k_alloc_q_vector()
1625 ring->count = interface->tx_ring_count; in fm10k_alloc_q_vector()
1628 /* assign ring to interface */ in fm10k_alloc_q_vector()
1629 interface->tx_ring[txr_idx] = ring; in fm10k_alloc_q_vector()
1641 q_vector->rx.itr = interface->rx_itr; in fm10k_alloc_q_vector()
1642 q_vector->rx.itr_scale = interface->hw.mac.itr_scale; in fm10k_alloc_q_vector()
1647 ring->dev = &interface->pdev->dev; in fm10k_alloc_q_vector()
1648 ring->netdev = interface->netdev; in fm10k_alloc_q_vector()
1649 rcu_assign_pointer(ring->l2_accel, interface->l2_accel); in fm10k_alloc_q_vector()
1655 ring->count = interface->rx_ring_count; in fm10k_alloc_q_vector()
1658 /* assign ring to interface */ in fm10k_alloc_q_vector()
1659 interface->rx_ring[rxr_idx] = ring; in fm10k_alloc_q_vector()
1676 * @interface: board private structure to initialize
1683 static void fm10k_free_q_vector(struct fm10k_intfc *interface, int v_idx) in fm10k_free_q_vector() argument
1685 struct fm10k_q_vector *q_vector = interface->q_vector[v_idx]; in fm10k_free_q_vector()
1691 interface->tx_ring[ring->queue_index] = NULL; in fm10k_free_q_vector()
1694 interface->rx_ring[ring->queue_index] = NULL; in fm10k_free_q_vector()
1696 interface->q_vector[v_idx] = NULL; in fm10k_free_q_vector()
1703 * @interface: board private structure to initialize
1708 static int fm10k_alloc_q_vectors(struct fm10k_intfc *interface) in fm10k_alloc_q_vectors() argument
1710 unsigned int q_vectors = interface->num_q_vectors; in fm10k_alloc_q_vectors()
1711 unsigned int rxr_remaining = interface->num_rx_queues; in fm10k_alloc_q_vectors()
1712 unsigned int txr_remaining = interface->num_tx_queues; in fm10k_alloc_q_vectors()
1718 err = fm10k_alloc_q_vector(interface, q_vectors, v_idx, in fm10k_alloc_q_vectors()
1733 err = fm10k_alloc_q_vector(interface, q_vectors, v_idx, in fm10k_alloc_q_vectors()
1750 fm10k_reset_num_queues(interface); in fm10k_alloc_q_vectors()
1753 fm10k_free_q_vector(interface, v_idx); in fm10k_alloc_q_vectors()
1760 * @interface: board private structure to initialize
1766 static void fm10k_free_q_vectors(struct fm10k_intfc *interface) in fm10k_free_q_vectors() argument
1768 int v_idx = interface->num_q_vectors; in fm10k_free_q_vectors()
1770 fm10k_reset_num_queues(interface); in fm10k_free_q_vectors()
1773 fm10k_free_q_vector(interface, v_idx); in fm10k_free_q_vectors()
1778 * @interface: board private structure to initialize
1782 static void fm10k_reset_msix_capability(struct fm10k_intfc *interface) in fm10k_reset_msix_capability() argument
1784 pci_disable_msix(interface->pdev); in fm10k_reset_msix_capability()
1785 kfree(interface->msix_entries); in fm10k_reset_msix_capability()
1786 interface->msix_entries = NULL; in fm10k_reset_msix_capability()
1791 * @interface: board private structure to initialize
1796 static int fm10k_init_msix_capability(struct fm10k_intfc *interface) in fm10k_init_msix_capability() argument
1798 struct fm10k_hw *hw = &interface->hw; in fm10k_init_msix_capability()
1807 v_budget = max(interface->num_rx_queues, interface->num_tx_queues); in fm10k_init_msix_capability()
1822 interface->msix_entries = kcalloc(v_budget, sizeof(struct msix_entry), in fm10k_init_msix_capability()
1824 if (!interface->msix_entries) in fm10k_init_msix_capability()
1829 interface->msix_entries[vector].entry = vector; in fm10k_init_msix_capability()
1832 v_budget = pci_enable_msix_range(interface->pdev, in fm10k_init_msix_capability()
1833 interface->msix_entries, in fm10k_init_msix_capability()
1837 kfree(interface->msix_entries); in fm10k_init_msix_capability()
1838 interface->msix_entries = NULL; in fm10k_init_msix_capability()
1843 interface->num_q_vectors = v_budget - NON_Q_VECTORS; in fm10k_init_msix_capability()
1850 * @interface: Interface structure continaining rings and devices
1854 static bool fm10k_cache_ring_qos(struct fm10k_intfc *interface) in fm10k_cache_ring_qos() argument
1856 struct net_device *dev = interface->netdev; in fm10k_cache_ring_qos()
1858 u16 pc_stride = interface->ring_feature[RING_F_QOS].mask + 1; in fm10k_cache_ring_qos()
1864 rss_i = interface->ring_feature[RING_F_RSS].indices; in fm10k_cache_ring_qos()
1870 interface->tx_ring[offset + i]->reg_idx = q_idx; in fm10k_cache_ring_qos()
1871 interface->tx_ring[offset + i]->qos_pc = pc; in fm10k_cache_ring_qos()
1872 interface->rx_ring[offset + i]->reg_idx = q_idx; in fm10k_cache_ring_qos()
1873 interface->rx_ring[offset + i]->qos_pc = pc; in fm10k_cache_ring_qos()
1883 * @interface: Interface structure continaining rings and devices
1887 static void fm10k_cache_ring_rss(struct fm10k_intfc *interface) in fm10k_cache_ring_rss() argument
1891 for (i = 0; i < interface->num_rx_queues; i++) in fm10k_cache_ring_rss()
1892 interface->rx_ring[i]->reg_idx = i; in fm10k_cache_ring_rss()
1894 for (i = 0; i < interface->num_tx_queues; i++) in fm10k_cache_ring_rss()
1895 interface->tx_ring[i]->reg_idx = i; in fm10k_cache_ring_rss()
1900 * @interface: Interface structure containing rings and devices
1906 static void fm10k_assign_rings(struct fm10k_intfc *interface) in fm10k_assign_rings() argument
1908 if (fm10k_cache_ring_qos(interface)) in fm10k_assign_rings()
1911 fm10k_cache_ring_rss(interface); in fm10k_assign_rings()
1914 static void fm10k_init_reta(struct fm10k_intfc *interface) in fm10k_init_reta() argument
1916 u16 i, rss_i = interface->ring_feature[RING_F_RSS].indices; in fm10k_init_reta()
1922 if (netif_is_rxfh_configured(interface->netdev)) { in fm10k_init_reta()
1924 reta = interface->reta[i]; in fm10k_init_reta()
1932 dev_err(&interface->pdev->dev, in fm10k_init_reta()
1942 fm10k_write_reta(interface, NULL); in fm10k_init_reta()
1947 * @interface: board private structure to initialize
1953 int fm10k_init_queueing_scheme(struct fm10k_intfc *interface) in fm10k_init_queueing_scheme() argument
1958 fm10k_set_num_queues(interface); in fm10k_init_queueing_scheme()
1961 err = fm10k_init_msix_capability(interface); in fm10k_init_queueing_scheme()
1963 dev_err(&interface->pdev->dev, in fm10k_init_queueing_scheme()
1969 err = fm10k_alloc_q_vectors(interface); in fm10k_init_queueing_scheme()
1971 dev_err(&interface->pdev->dev, in fm10k_init_queueing_scheme()
1977 fm10k_assign_rings(interface); in fm10k_init_queueing_scheme()
1980 fm10k_init_reta(interface); in fm10k_init_queueing_scheme()
1985 fm10k_reset_msix_capability(interface); in fm10k_init_queueing_scheme()
1987 fm10k_reset_num_queues(interface); in fm10k_init_queueing_scheme()
1993 * @interface: board private structure to clear queueing scheme on
1998 void fm10k_clear_queueing_scheme(struct fm10k_intfc *interface) in fm10k_clear_queueing_scheme() argument
2000 fm10k_free_q_vectors(interface); in fm10k_clear_queueing_scheme()
2001 fm10k_reset_msix_capability(interface); in fm10k_clear_queueing_scheme()