Lines Matching refs:net_dev
202 static int dpaa_netdev_init(struct net_device *net_dev, in dpaa_netdev_init() argument
206 struct dpaa_priv *priv = netdev_priv(net_dev); in dpaa_netdev_init()
207 struct device *dev = net_dev->dev.parent; in dpaa_netdev_init()
218 percpu_priv->net_dev = net_dev; in dpaa_netdev_init()
221 net_dev->netdev_ops = dpaa_ops; in dpaa_netdev_init()
224 net_dev->mem_start = (unsigned long)priv->mac_dev->res->start; in dpaa_netdev_init()
225 net_dev->mem_end = (unsigned long)priv->mac_dev->res->end; in dpaa_netdev_init()
227 net_dev->min_mtu = ETH_MIN_MTU; in dpaa_netdev_init()
228 net_dev->max_mtu = dpaa_get_max_mtu(); in dpaa_netdev_init()
230 net_dev->hw_features |= (NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM | in dpaa_netdev_init()
233 net_dev->hw_features |= NETIF_F_SG | NETIF_F_HIGHDMA; in dpaa_netdev_init()
237 net_dev->features |= NETIF_F_GSO; in dpaa_netdev_init()
238 net_dev->features |= NETIF_F_RXCSUM; in dpaa_netdev_init()
240 net_dev->priv_flags |= IFF_LIVE_ADDR_CHANGE; in dpaa_netdev_init()
241 net_dev->lltx = true; in dpaa_netdev_init()
243 net_dev->priv_flags &= ~IFF_TX_SKB_SHARING; in dpaa_netdev_init()
245 net_dev->features |= net_dev->hw_features; in dpaa_netdev_init()
246 net_dev->vlan_features = net_dev->features; in dpaa_netdev_init()
248 net_dev->xdp_features = NETDEV_XDP_ACT_BASIC | in dpaa_netdev_init()
253 memcpy(net_dev->perm_addr, mac_addr, net_dev->addr_len); in dpaa_netdev_init()
254 eth_hw_addr_set(net_dev, mac_addr); in dpaa_netdev_init()
256 eth_hw_addr_random(net_dev); in dpaa_netdev_init()
258 (const enet_addr_t *)net_dev->dev_addr); in dpaa_netdev_init()
264 net_dev->dev_addr); in dpaa_netdev_init()
267 net_dev->ethtool_ops = &dpaa_ethtool_ops; in dpaa_netdev_init()
269 net_dev->needed_headroom = priv->tx_headroom; in dpaa_netdev_init()
270 net_dev->watchdog_timeo = msecs_to_jiffies(tx_timeout); in dpaa_netdev_init()
273 mac_dev->phylink_config.dev = &net_dev->dev; in dpaa_netdev_init()
287 netif_carrier_off(net_dev); in dpaa_netdev_init()
289 err = register_netdev(net_dev); in dpaa_netdev_init()
299 static int dpaa_stop(struct net_device *net_dev) in dpaa_stop() argument
306 priv = netdev_priv(net_dev); in dpaa_stop()
309 netif_tx_stop_all_queues(net_dev); in dpaa_stop()
325 net_dev->phydev = NULL; in dpaa_stop()
332 static void dpaa_tx_timeout(struct net_device *net_dev, unsigned int txqueue) in dpaa_tx_timeout() argument
337 priv = netdev_priv(net_dev); in dpaa_tx_timeout()
340 netif_crit(priv, timer, net_dev, "Transmit timeout latency: %u ms\n", in dpaa_tx_timeout()
341 jiffies_to_msecs(jiffies - dev_trans_start(net_dev))); in dpaa_tx_timeout()
349 static void dpaa_get_stats64(struct net_device *net_dev, in dpaa_get_stats64() argument
353 struct dpaa_priv *priv = netdev_priv(net_dev); in dpaa_get_stats64()
370 static int dpaa_setup_tc(struct net_device *net_dev, enum tc_setup_type type, in dpaa_setup_tc() argument
373 struct dpaa_priv *priv = netdev_priv(net_dev); in dpaa_setup_tc()
389 netdev_reset_tc(net_dev); in dpaa_setup_tc()
394 netdev_err(net_dev, "Too many traffic classes: max %d supported.\n", in dpaa_setup_tc()
399 netdev_set_num_tc(net_dev, num_tc); in dpaa_setup_tc()
402 netdev_set_tc_queue(net_dev, i, num_txqs_per_tc, in dpaa_setup_tc()
407 netif_set_real_num_tx_queues(net_dev, priv->num_tc * num_txqs_per_tc); in dpaa_setup_tc()
432 static int dpaa_set_mac_address(struct net_device *net_dev, void *addr) in dpaa_set_mac_address() argument
439 priv = netdev_priv(net_dev); in dpaa_set_mac_address()
441 memcpy(old_addr.sa_data, net_dev->dev_addr, ETH_ALEN); in dpaa_set_mac_address()
443 err = eth_mac_addr(net_dev, addr); in dpaa_set_mac_address()
445 netif_err(priv, drv, net_dev, "eth_mac_addr() = %d\n", err); in dpaa_set_mac_address()
452 (const enet_addr_t *)net_dev->dev_addr); in dpaa_set_mac_address()
454 netif_err(priv, drv, net_dev, "mac_dev->change_addr() = %d\n", in dpaa_set_mac_address()
457 eth_mac_addr(net_dev, &old_addr); in dpaa_set_mac_address()
465 static int dpaa_addr_sync(struct net_device *net_dev, const u8 *addr) in dpaa_addr_sync() argument
467 const struct dpaa_priv *priv = netdev_priv(net_dev); in dpaa_addr_sync()
473 static int dpaa_addr_unsync(struct net_device *net_dev, const u8 *addr) in dpaa_addr_unsync() argument
475 const struct dpaa_priv *priv = netdev_priv(net_dev); in dpaa_addr_unsync()
481 static void dpaa_set_rx_mode(struct net_device *net_dev) in dpaa_set_rx_mode() argument
486 priv = netdev_priv(net_dev); in dpaa_set_rx_mode()
488 if (!!(net_dev->flags & IFF_PROMISC) != priv->mac_dev->promisc) { in dpaa_set_rx_mode()
493 netif_err(priv, drv, net_dev, in dpaa_set_rx_mode()
498 if (!!(net_dev->flags & IFF_ALLMULTI) != priv->mac_dev->allmulti) { in dpaa_set_rx_mode()
503 netif_err(priv, drv, net_dev, in dpaa_set_rx_mode()
508 err = __dev_mc_sync(net_dev, dpaa_addr_sync, dpaa_addr_unsync); in dpaa_set_rx_mode()
510 netif_err(priv, drv, net_dev, "dpaa_addr_sync() = %d\n", in dpaa_set_rx_mode()
839 netif_tx_stop_all_queues(priv->net_dev); in dpaa_eth_cgscn()
844 netif_tx_wake_all_queues(priv->net_dev); in dpaa_eth_cgscn()
902 struct net_device *net_dev = to_net_dev(mac_dev->phylink_config.dev); in dpaa_eth_cgr_set_speed() local
903 struct dpaa_priv *priv = netdev_priv(net_dev); in dpaa_eth_cgr_set_speed()
922 netdev_err(net_dev, "could not update speed: %d\n", err); in dpaa_eth_cgr_set_speed()
930 fq->net_dev = priv->net_dev; in dpaa_setup_ingress()
942 fq->net_dev = priv->net_dev; in dpaa_setup_egress()
969 dev_err(priv->net_dev->dev.parent, in dpaa_fq_setup()
1002 dev_warn(priv->net_dev->dev.parent, in dpaa_fq_setup()
1035 priv = netdev_priv(dpaa_fq->net_dev); in dpaa_fq_init()
1036 dev = dpaa_fq->net_dev->dev.parent; in dpaa_fq_init()
1167 err = xdp_rxq_info_reg(&dpaa_fq->xdp_rxq, dpaa_fq->net_dev, in dpaa_fq_init()
1196 priv = netdev_priv(dpaa_fq->net_dev); in dpaa_fq_free_entry()
1394 static void dpaa_fd_release(const struct net_device *net_dev, in dpaa_fd_release() argument
1423 netdev_err(net_dev, "DMA mapping failed\n"); in dpaa_fd_release()
1520 netif_alert(priv, tx_err, priv->net_dev, in dpaa_enable_tx_csum()
1537 netif_alert(priv, tx_err, priv->net_dev, in dpaa_enable_tx_csum()
1563 struct net_device *net_dev = dpaa_bp->priv->net_dev; in dpaa_bp_add_8_bufs() local
1572 netdev_err(net_dev, "dev_alloc_pages() failed\n"); in dpaa_bp_add_8_bufs()
1580 netdev_err(net_dev, "DMA map failed\n"); in dpaa_bp_add_8_bufs()
1683 struct device *dev = priv->net_dev->dev.parent; in dpaa_cleanup_tx_fd()
1759 if ((priv->net_dev->features & NETIF_F_RXCSUM) && in rx_csum_offload()
1947 struct net_device *net_dev = priv->net_dev; in skb_to_contig_fd() local
1973 netif_err(priv, tx_err, net_dev, "HW csum error: %d\n", in skb_to_contig_fd()
1987 netif_err(priv, tx_err, net_dev, "dma_map_single() failed\n"); in skb_to_contig_fd()
2000 struct net_device *net_dev = priv->net_dev; in skb_to_sg_fd() local
2013 netdev_err(net_dev, "dev_alloc_pages() failed\n"); in skb_to_sg_fd()
2027 netif_err(priv, tx_err, net_dev, "HW csum error: %d\n", in skb_to_sg_fd()
2041 netdev_err(priv->net_dev, "DMA mapping failed\n"); in skb_to_sg_fd()
2055 netdev_err(priv->net_dev, "DMA mapping failed\n"); in skb_to_sg_fd()
2081 netdev_err(priv->net_dev, "DMA mapping failed\n"); in skb_to_sg_fd()
2117 trace_dpaa_tx_fd(priv->net_dev, egress_fq, fd); in dpaa_xmit()
2137 static int dpaa_a050385_wa_skb(struct net_device *net_dev, struct sk_buff **s) in dpaa_a050385_wa_skb() argument
2139 struct dpaa_priv *priv = netdev_priv(net_dev); in dpaa_a050385_wa_skb()
2172 new_skb = netdev_alloc_skb(net_dev, skb->len + DPAA_A050385_ALIGN - 1 + in dpaa_a050385_wa_skb()
2294 dpaa_start_xmit(struct sk_buff *skb, struct net_device *net_dev) in dpaa_start_xmit() argument
2306 priv = netdev_priv(net_dev); in dpaa_start_xmit()
2348 if (dpaa_a050385_wa_skb(net_dev, &skb)) in dpaa_start_xmit()
2365 txq = netdev_get_tx_queue(net_dev, queue_mapping); in dpaa_start_xmit()
2386 static void dpaa_rx_error(struct net_device *net_dev, in dpaa_rx_error() argument
2393 netif_err(priv, hw, net_dev, "Err FD status = 0x%08x\n", in dpaa_rx_error()
2407 dpaa_fd_release(net_dev, fd); in dpaa_rx_error()
2410 static void dpaa_tx_error(struct net_device *net_dev, in dpaa_tx_error() argument
2419 netif_warn(priv, hw, net_dev, "FD status = 0x%08x\n", in dpaa_tx_error()
2451 static void dpaa_tx_conf(struct net_device *net_dev, in dpaa_tx_conf() argument
2461 netif_warn(priv, hw, net_dev, "FD status = 0x%08x\n", in dpaa_tx_conf()
2497 struct net_device *net_dev; in rx_error_dqrr() local
2501 net_dev = dpaa_fq->net_dev; in rx_error_dqrr()
2502 priv = netdev_priv(net_dev); in rx_error_dqrr()
2513 dpaa_rx_error(net_dev, priv, percpu_priv, &dq->fd, fq->fqid); in rx_error_dqrr()
2518 static int dpaa_xdp_xmit_frame(struct net_device *net_dev, in dpaa_xdp_xmit_frame() argument
2521 struct dpaa_priv *priv = netdev_priv(net_dev); in dpaa_xdp_xmit_frame()
2573 txq = netdev_get_tx_queue(net_dev, smp_processor_id()); in dpaa_xdp_xmit_frame()
2650 if (dpaa_xdp_xmit_frame(priv->net_dev, xdpf)) in dpaa_run_xdp()
2659 err = xdp_do_redirect(priv->net_dev, &xdp, xdp_prog); in dpaa_run_xdp()
2661 trace_xdp_exception(priv->net_dev, xdp_prog, xdp_act); in dpaa_run_xdp()
2666 bpf_warn_invalid_xdp_action(priv->net_dev, xdp_prog, xdp_act); in dpaa_run_xdp()
2669 trace_xdp_exception(priv->net_dev, xdp_prog, xdp_act); in dpaa_run_xdp()
2694 struct net_device *net_dev; in rx_default_dqrr() local
2710 net_dev = dpaa_fq->net_dev; in rx_default_dqrr()
2711 priv = netdev_priv(net_dev); in rx_default_dqrr()
2717 trace_dpaa_rx_fd(net_dev, fq, &dq->fd); in rx_default_dqrr()
2732 dpaa_fd_release(net_dev, &dq->fd); in rx_default_dqrr()
2738 netif_warn(priv, hw, net_dev, "FD status = 0x%08x\n", in rx_default_dqrr()
2742 dpaa_fd_release(net_dev, fd); in rx_default_dqrr()
2771 if (net_dev->features & NETIF_F_RXHASH && priv->keygen_in_use && in rx_default_dqrr()
2814 skb->protocol = eth_type_trans(skb, net_dev); in rx_default_dqrr()
2845 struct net_device *net_dev; in conf_error_dqrr() local
2848 net_dev = ((struct dpaa_fq *)fq)->net_dev; in conf_error_dqrr()
2849 priv = netdev_priv(net_dev); in conf_error_dqrr()
2856 dpaa_tx_error(net_dev, priv, percpu_priv, &dq->fd, fq->fqid); in conf_error_dqrr()
2867 struct net_device *net_dev; in conf_dflt_dqrr() local
2870 net_dev = ((struct dpaa_fq *)fq)->net_dev; in conf_dflt_dqrr()
2871 priv = netdev_priv(net_dev); in conf_dflt_dqrr()
2874 trace_dpaa_tx_conf_fd(net_dev, fq, &dq->fd); in conf_dflt_dqrr()
2881 dpaa_tx_conf(net_dev, priv, percpu_priv, &dq->fd, fq->fqid); in conf_dflt_dqrr()
2893 struct net_device *net_dev; in egress_ern() local
2896 net_dev = ((struct dpaa_fq *)fq)->net_dev; in egress_ern()
2897 priv = netdev_priv(net_dev); in egress_ern()
2942 static int dpaa_open(struct net_device *net_dev) in dpaa_open() argument
2948 priv = netdev_priv(net_dev); in dpaa_open()
2965 netif_err(priv, ifup, net_dev, "mac_dev->enable() = %d\n", err); in dpaa_open()
2970 netif_tx_start_all_queues(net_dev); in dpaa_open()
2985 static int dpaa_eth_stop(struct net_device *net_dev) in dpaa_eth_stop() argument
2990 err = dpaa_stop(net_dev); in dpaa_eth_stop()
2992 priv = netdev_priv(net_dev); in dpaa_eth_stop()
3006 dev_warn(priv->net_dev->dev.parent, in xdp_validate_mtu()
3015 static int dpaa_change_mtu(struct net_device *net_dev, int new_mtu) in dpaa_change_mtu() argument
3017 struct dpaa_priv *priv = netdev_priv(net_dev); in dpaa_change_mtu()
3022 WRITE_ONCE(net_dev->mtu, new_mtu); in dpaa_change_mtu()
3026 static int dpaa_setup_xdp(struct net_device *net_dev, struct netdev_bpf *bpf) in dpaa_setup_xdp() argument
3028 struct dpaa_priv *priv = netdev_priv(net_dev); in dpaa_setup_xdp()
3034 if (bpf->prog && !xdp_validate_mtu(priv, net_dev->mtu)) { in dpaa_setup_xdp()
3039 up = netif_running(net_dev); in dpaa_setup_xdp()
3042 dpaa_eth_stop(net_dev); in dpaa_setup_xdp()
3049 err = dpaa_open(net_dev); in dpaa_setup_xdp()
3059 static int dpaa_xdp(struct net_device *net_dev, struct netdev_bpf *xdp) in dpaa_xdp() argument
3063 return dpaa_setup_xdp(net_dev, xdp); in dpaa_xdp()
3069 static int dpaa_xdp_xmit(struct net_device *net_dev, int n, in dpaa_xdp_xmit() argument
3078 if (!netif_running(net_dev)) in dpaa_xdp_xmit()
3083 if (dpaa_xdp_xmit_frame(net_dev, xdpf)) in dpaa_xdp_xmit()
3139 static int dpaa_ioctl(struct net_device *net_dev, struct ifreq *rq, int cmd) in dpaa_ioctl() argument
3141 struct dpaa_priv *priv = netdev_priv(net_dev); in dpaa_ioctl()
3164 static int dpaa_napi_add(struct net_device *net_dev) in dpaa_napi_add() argument
3166 struct dpaa_priv *priv = netdev_priv(net_dev); in dpaa_napi_add()
3173 netif_napi_add(net_dev, &percpu_priv->np.napi, dpaa_eth_poll); in dpaa_napi_add()
3179 static void dpaa_napi_del(struct net_device *net_dev) in dpaa_napi_del() argument
3181 struct dpaa_priv *priv = netdev_priv(net_dev); in dpaa_napi_del()
3307 struct net_device *net_dev = NULL; in dpaa_eth_probe() local
3352 net_dev = alloc_etherdev_mq(sizeof(*priv), dpaa_max_num_txqs()); in dpaa_eth_probe()
3353 if (!net_dev) { in dpaa_eth_probe()
3359 SET_NETDEV_DEV(net_dev, dev->parent); in dpaa_eth_probe()
3360 dev_set_drvdata(dev, net_dev); in dpaa_eth_probe()
3362 priv = netdev_priv(net_dev); in dpaa_eth_probe()
3363 priv->net_dev = net_dev; in dpaa_eth_probe()
3385 netdev_err(net_dev, "dpaa_mac_dev_get() failed\n"); in dpaa_eth_probe()
3398 netdev_err(net_dev, "dma_coerce_mask_and_coherent() failed\n"); in dpaa_eth_probe()
3409 net_dev->mtu = min(dpaa_get_max_mtu(), ETH_DATA_LEN); in dpaa_eth_probe()
3411 netdev_dbg(net_dev, "Setting initial MTU on net device: %d\n", in dpaa_eth_probe()
3412 net_dev->mtu); in dpaa_eth_probe()
3508 netif_set_real_num_tx_queues(net_dev, in dpaa_eth_probe()
3512 err = dpaa_napi_add(net_dev); in dpaa_eth_probe()
3516 err = dpaa_netdev_init(net_dev, &dpaa_ops, tx_timeout); in dpaa_eth_probe()
3520 dpaa_eth_sysfs_init(&net_dev->dev); in dpaa_eth_probe()
3522 netif_info(priv, probe, net_dev, "Probed interface %s\n", in dpaa_eth_probe()
3523 net_dev->name); in dpaa_eth_probe()
3528 dpaa_napi_del(net_dev); in dpaa_eth_probe()
3540 free_netdev(net_dev); in dpaa_eth_probe()
3547 struct net_device *net_dev; in dpaa_remove() local
3553 net_dev = dev_get_drvdata(dev); in dpaa_remove()
3555 priv = netdev_priv(net_dev); in dpaa_remove()
3560 unregister_netdev(net_dev); in dpaa_remove()
3573 dpaa_napi_del(net_dev); in dpaa_remove()
3577 free_netdev(net_dev); in dpaa_remove()