Lines Matching refs:efx
26 static void ef100_update_name(struct efx_nic *efx) in ef100_update_name() argument
28 strcpy(efx->name, efx->net_dev->name); in ef100_update_name()
31 static int ef100_alloc_vis(struct efx_nic *efx, unsigned int *allocated_vis) in ef100_alloc_vis() argument
37 unsigned int tx_vis = efx->n_tx_channels + efx->n_extra_tx_channels; in ef100_alloc_vis()
38 unsigned int rx_vis = efx->n_rx_channels; in ef100_alloc_vis()
41 EFX_WARN_ON_PARANOID(efx->tx_queues_per_channel != 1); in ef100_alloc_vis()
43 tx_vis += efx->n_xdp_channels * efx->xdp_tx_per_channel; in ef100_alloc_vis()
51 return efx_mcdi_alloc_vis(efx, min_vis, max_vis, in ef100_alloc_vis()
55 static int ef100_remap_bar(struct efx_nic *efx, int max_vis) in ef100_remap_bar() argument
60 efx->max_vis = max_vis; in ef100_remap_bar()
61 uc_mem_map_size = PAGE_ALIGN(max_vis * efx->vi_stride); in ef100_remap_bar()
64 membase = ioremap(efx->membase_phys, uc_mem_map_size); in ef100_remap_bar()
66 netif_err(efx, probe, efx->net_dev, in ef100_remap_bar()
71 iounmap(efx->membase); in ef100_remap_bar()
72 efx->membase = membase; in ef100_remap_bar()
82 struct efx_nic *efx = netdev_priv(net_dev); in ef100_net_stop() local
84 netif_dbg(efx, ifdown, efx->net_dev, "closing on CPU %d\n", in ef100_net_stop()
88 efx_stop_all(efx); in ef100_net_stop()
89 efx_mcdi_mac_fini_stats(efx); in ef100_net_stop()
90 efx_disable_interrupts(efx); in ef100_net_stop()
91 efx_clear_interrupt_affinity(efx); in ef100_net_stop()
92 efx_nic_fini_interrupt(efx); in ef100_net_stop()
93 efx_remove_filters(efx); in ef100_net_stop()
94 efx_fini_napi(efx); in ef100_net_stop()
95 efx_remove_channels(efx); in ef100_net_stop()
96 efx_mcdi_free_vis(efx); in ef100_net_stop()
97 efx_remove_interrupts(efx); in ef100_net_stop()
105 struct efx_nic *efx = netdev_priv(net_dev); in ef100_net_open() local
109 ef100_update_name(efx); in ef100_net_open()
110 netif_dbg(efx, ifup, net_dev, "opening device on CPU %d\n", in ef100_net_open()
113 rc = efx_check_disabled(efx); in ef100_net_open()
117 rc = efx_probe_interrupts(efx); in ef100_net_open()
121 rc = efx_set_channels(efx); in ef100_net_open()
125 rc = efx_mcdi_free_vis(efx); in ef100_net_open()
129 rc = ef100_alloc_vis(efx, &allocated_vis); in ef100_net_open()
133 rc = efx_probe_channels(efx); in ef100_net_open()
137 rc = ef100_remap_bar(efx, allocated_vis); in ef100_net_open()
141 efx_init_napi(efx); in ef100_net_open()
143 rc = efx_probe_filters(efx); in ef100_net_open()
147 rc = efx_nic_init_interrupt(efx); in ef100_net_open()
150 efx_set_interrupt_affinity(efx); in ef100_net_open()
152 rc = efx_enable_interrupts(efx); in ef100_net_open()
159 (void) efx_mcdi_poll_reboot(efx); in ef100_net_open()
161 rc = efx_mcdi_mac_init_stats(efx); in ef100_net_open()
165 efx_start_all(efx); in ef100_net_open()
170 mutex_lock(&efx->mac_lock); in ef100_net_open()
171 if (efx_mcdi_phy_poll(efx)) in ef100_net_open()
172 efx_link_status_changed(efx); in ef100_net_open()
173 mutex_unlock(&efx->mac_lock); in ef100_net_open()
192 struct efx_nic *efx = netdev_priv(net_dev); in ef100_hard_start_xmit() local
197 channel = efx_get_tx_channel(efx, skb_get_queue_mapping(skb)); in ef100_hard_start_xmit()
198 netif_vdbg(efx, tx_queued, efx->net_dev, in ef100_hard_start_xmit()
201 if (!efx->n_channels || !efx->n_tx_channels || !channel) { in ef100_hard_start_xmit()
239 struct efx_nic *efx = container_of(this, struct efx_nic, netdev_notifier); in ef100_netdev_event() local
242 if (netdev_priv(net_dev) == efx && event == NETDEV_CHANGENAME) in ef100_netdev_event()
243 ef100_update_name(efx); in ef100_netdev_event()
248 int ef100_register_netdev(struct efx_nic *efx) in ef100_register_netdev() argument
250 struct net_device *net_dev = efx->net_dev; in ef100_register_netdev()
254 net_dev->irq = efx->pci_dev->irq; in ef100_register_netdev()
265 ef100_update_name(efx); in ef100_register_netdev()
274 efx->state = STATE_READY; in ef100_register_netdev()
276 efx_init_mcdi_logging(efx); in ef100_register_netdev()
282 netif_err(efx, drv, efx->net_dev, "could not register net dev\n"); in ef100_register_netdev()
286 void ef100_unregister_netdev(struct efx_nic *efx) in ef100_unregister_netdev() argument
288 if (efx_dev_registered(efx)) { in ef100_unregister_netdev()
289 efx_fini_mcdi_logging(efx); in ef100_unregister_netdev()
290 efx->state = STATE_UNINIT; in ef100_unregister_netdev()
291 unregister_netdev(efx->net_dev); in ef100_unregister_netdev()