Lines Matching refs:net_dev

214 static int dpaa_netdev_init(struct net_device *net_dev,  in dpaa_netdev_init()  argument
218 struct dpaa_priv *priv = netdev_priv(net_dev); in dpaa_netdev_init()
219 struct device *dev = net_dev->dev.parent; in dpaa_netdev_init()
229 percpu_priv->net_dev = net_dev; in dpaa_netdev_init()
232 net_dev->netdev_ops = dpaa_ops; in dpaa_netdev_init()
235 net_dev->mem_start = priv->mac_dev->res->start; in dpaa_netdev_init()
236 net_dev->mem_end = priv->mac_dev->res->end; in dpaa_netdev_init()
238 net_dev->min_mtu = ETH_MIN_MTU; in dpaa_netdev_init()
239 net_dev->max_mtu = dpaa_get_max_mtu(); in dpaa_netdev_init()
241 net_dev->hw_features |= (NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM | in dpaa_netdev_init()
244 net_dev->hw_features |= NETIF_F_SG | NETIF_F_HIGHDMA; in dpaa_netdev_init()
248 net_dev->features |= NETIF_F_GSO; in dpaa_netdev_init()
249 net_dev->features |= NETIF_F_RXCSUM; in dpaa_netdev_init()
251 net_dev->priv_flags |= IFF_LIVE_ADDR_CHANGE; in dpaa_netdev_init()
253 net_dev->priv_flags &= ~IFF_TX_SKB_SHARING; in dpaa_netdev_init()
255 net_dev->features |= net_dev->hw_features; in dpaa_netdev_init()
256 net_dev->vlan_features = net_dev->features; in dpaa_netdev_init()
258 memcpy(net_dev->perm_addr, mac_addr, net_dev->addr_len); in dpaa_netdev_init()
259 memcpy(net_dev->dev_addr, mac_addr, net_dev->addr_len); in dpaa_netdev_init()
261 net_dev->ethtool_ops = &dpaa_ethtool_ops; in dpaa_netdev_init()
263 net_dev->needed_headroom = priv->tx_headroom; in dpaa_netdev_init()
264 net_dev->watchdog_timeo = msecs_to_jiffies(tx_timeout); in dpaa_netdev_init()
267 netif_carrier_off(net_dev); in dpaa_netdev_init()
269 err = register_netdev(net_dev); in dpaa_netdev_init()
278 static int dpaa_stop(struct net_device *net_dev) in dpaa_stop() argument
284 priv = netdev_priv(net_dev); in dpaa_stop()
287 netif_tx_stop_all_queues(net_dev); in dpaa_stop()
295 netif_err(priv, ifdown, net_dev, "mac_dev->stop() = %d\n", in dpaa_stop()
304 if (net_dev->phydev) in dpaa_stop()
305 phy_disconnect(net_dev->phydev); in dpaa_stop()
306 net_dev->phydev = NULL; in dpaa_stop()
311 static void dpaa_tx_timeout(struct net_device *net_dev) in dpaa_tx_timeout() argument
316 priv = netdev_priv(net_dev); in dpaa_tx_timeout()
319 netif_crit(priv, timer, net_dev, "Transmit timeout latency: %u ms\n", in dpaa_tx_timeout()
320 jiffies_to_msecs(jiffies - dev_trans_start(net_dev))); in dpaa_tx_timeout()
328 static void dpaa_get_stats64(struct net_device *net_dev, in dpaa_get_stats64() argument
332 struct dpaa_priv *priv = netdev_priv(net_dev); in dpaa_get_stats64()
349 static int dpaa_setup_tc(struct net_device *net_dev, enum tc_setup_type type, in dpaa_setup_tc() argument
352 struct dpaa_priv *priv = netdev_priv(net_dev); in dpaa_setup_tc()
367 netdev_reset_tc(net_dev); in dpaa_setup_tc()
372 netdev_err(net_dev, "Too many traffic classes: max %d supported.\n", in dpaa_setup_tc()
377 netdev_set_num_tc(net_dev, num_tc); in dpaa_setup_tc()
380 netdev_set_tc_queue(net_dev, i, DPAA_TC_TXQ_NUM, in dpaa_setup_tc()
385 netif_set_real_num_tx_queues(net_dev, priv->num_tc * DPAA_TC_TXQ_NUM); in dpaa_setup_tc()
410 static int dpaa_set_mac_address(struct net_device *net_dev, void *addr) in dpaa_set_mac_address() argument
417 priv = netdev_priv(net_dev); in dpaa_set_mac_address()
419 memcpy(old_addr.sa_data, net_dev->dev_addr, ETH_ALEN); in dpaa_set_mac_address()
421 err = eth_mac_addr(net_dev, addr); in dpaa_set_mac_address()
423 netif_err(priv, drv, net_dev, "eth_mac_addr() = %d\n", err); in dpaa_set_mac_address()
430 (enet_addr_t *)net_dev->dev_addr); in dpaa_set_mac_address()
432 netif_err(priv, drv, net_dev, "mac_dev->change_addr() = %d\n", in dpaa_set_mac_address()
435 eth_mac_addr(net_dev, &old_addr); in dpaa_set_mac_address()
443 static void dpaa_set_rx_mode(struct net_device *net_dev) in dpaa_set_rx_mode() argument
448 priv = netdev_priv(net_dev); in dpaa_set_rx_mode()
450 if (!!(net_dev->flags & IFF_PROMISC) != priv->mac_dev->promisc) { in dpaa_set_rx_mode()
455 netif_err(priv, drv, net_dev, in dpaa_set_rx_mode()
460 if (!!(net_dev->flags & IFF_ALLMULTI) != priv->mac_dev->allmulti) { in dpaa_set_rx_mode()
465 netif_err(priv, drv, net_dev, in dpaa_set_rx_mode()
470 err = priv->mac_dev->set_multi(net_dev, priv->mac_dev); in dpaa_set_rx_mode()
472 netif_err(priv, drv, net_dev, "mac_dev->set_multi() = %d\n", in dpaa_set_rx_mode()
802 netif_tx_stop_all_queues(priv->net_dev); in dpaa_eth_cgscn()
807 netif_tx_wake_all_queues(priv->net_dev); in dpaa_eth_cgscn()
868 fq->net_dev = priv->net_dev; in dpaa_setup_ingress()
880 fq->net_dev = priv->net_dev; in dpaa_setup_egress()
903 dev_err(priv->net_dev->dev.parent, in dpaa_fq_setup()
940 dev_warn(priv->net_dev->dev.parent, in dpaa_fq_setup()
980 priv = netdev_priv(dpaa_fq->net_dev); in dpaa_fq_init()
981 dev = dpaa_fq->net_dev->dev.parent; in dpaa_fq_init()
1122 priv = netdev_priv(dpaa_fq->net_dev); in dpaa_fq_free_entry()
1318 static void dpaa_fd_release(const struct net_device *net_dev, in dpaa_fd_release() argument
1448 netif_alert(priv, tx_err, priv->net_dev, in dpaa_enable_tx_csum()
1465 netif_alert(priv, tx_err, priv->net_dev, in dpaa_enable_tx_csum()
1612 struct device *dev = priv->net_dev->dev.parent; in dpaa_cleanup_tx_fd()
1674 if ((priv->net_dev->features & NETIF_F_RXCSUM) && in rx_csum_offload()
1855 struct net_device *net_dev = priv->net_dev; in skb_to_contig_fd() local
1856 struct device *dev = net_dev->dev.parent; in skb_to_contig_fd()
1882 netif_err(priv, tx_err, net_dev, "HW csum error: %d\n", in skb_to_contig_fd()
1896 netif_err(priv, tx_err, net_dev, "dma_map_single() failed\n"); in skb_to_contig_fd()
1909 struct net_device *net_dev = priv->net_dev; in skb_to_sg_fd() local
1910 struct device *dev = net_dev->dev.parent; in skb_to_sg_fd()
1924 netdev_err(net_dev, "netdev_alloc_frag() failed for size %d\n", in skb_to_sg_fd()
1938 netif_err(priv, tx_err, net_dev, "HW csum error: %d\n", in skb_to_sg_fd()
2028 trace_dpaa_tx_fd(priv->net_dev, egress_fq, fd); in dpaa_xmit()
2048 dpaa_start_xmit(struct sk_buff *skb, struct net_device *net_dev) in dpaa_start_xmit() argument
2060 priv = netdev_priv(net_dev); in dpaa_start_xmit()
2104 txq = netdev_get_tx_queue(net_dev, queue_mapping); in dpaa_start_xmit()
2125 static void dpaa_rx_error(struct net_device *net_dev, in dpaa_rx_error() argument
2132 netif_err(priv, hw, net_dev, "Err FD status = 0x%08x\n", in dpaa_rx_error()
2146 dpaa_fd_release(net_dev, fd); in dpaa_rx_error()
2149 static void dpaa_tx_error(struct net_device *net_dev, in dpaa_tx_error() argument
2158 netif_warn(priv, hw, net_dev, "FD status = 0x%08x\n", in dpaa_tx_error()
2184 static void dpaa_tx_conf(struct net_device *net_dev, in dpaa_tx_conf() argument
2194 netif_warn(priv, hw, net_dev, "FD status = 0x%08x\n", in dpaa_tx_conf()
2229 struct net_device *net_dev; in rx_error_dqrr() local
2233 net_dev = dpaa_fq->net_dev; in rx_error_dqrr()
2234 priv = netdev_priv(net_dev); in rx_error_dqrr()
2245 dpaa_rx_error(net_dev, priv, percpu_priv, &dq->fd, fq->fqid); in rx_error_dqrr()
2260 struct net_device *net_dev; in rx_default_dqrr() local
2272 net_dev = ((struct dpaa_fq *)fq)->net_dev; in rx_default_dqrr()
2273 priv = netdev_priv(net_dev); in rx_default_dqrr()
2279 trace_dpaa_rx_fd(net_dev, fq, &dq->fd); in rx_default_dqrr()
2293 dpaa_fd_release(net_dev, &dq->fd); in rx_default_dqrr()
2299 netif_warn(priv, hw, net_dev, "FD status = 0x%08x\n", in rx_default_dqrr()
2303 dpaa_fd_release(net_dev, fd); in rx_default_dqrr()
2340 dev_warn(net_dev->dev.parent, "fman_port_get_tstamp failed!\n"); in rx_default_dqrr()
2343 skb->protocol = eth_type_trans(skb, net_dev); in rx_default_dqrr()
2345 if (net_dev->features & NETIF_F_RXHASH && priv->keygen_in_use && in rx_default_dqrr()
2375 struct net_device *net_dev; in conf_error_dqrr() local
2378 net_dev = ((struct dpaa_fq *)fq)->net_dev; in conf_error_dqrr()
2379 priv = netdev_priv(net_dev); in conf_error_dqrr()
2386 dpaa_tx_error(net_dev, priv, percpu_priv, &dq->fd, fq->fqid); in conf_error_dqrr()
2396 struct net_device *net_dev; in conf_dflt_dqrr() local
2399 net_dev = ((struct dpaa_fq *)fq)->net_dev; in conf_dflt_dqrr()
2400 priv = netdev_priv(net_dev); in conf_dflt_dqrr()
2403 trace_dpaa_tx_conf_fd(net_dev, fq, &dq->fd); in conf_dflt_dqrr()
2410 dpaa_tx_conf(net_dev, priv, percpu_priv, &dq->fd, fq->fqid); in conf_dflt_dqrr()
2422 struct net_device *net_dev; in egress_ern() local
2425 net_dev = ((struct dpaa_fq *)fq)->net_dev; in egress_ern()
2426 priv = netdev_priv(net_dev); in egress_ern()
2471 static void dpaa_adjust_link(struct net_device *net_dev) in dpaa_adjust_link() argument
2476 priv = netdev_priv(net_dev); in dpaa_adjust_link()
2481 static int dpaa_phy_init(struct net_device *net_dev) in dpaa_phy_init() argument
2488 priv = netdev_priv(net_dev); in dpaa_phy_init()
2491 phy_dev = of_phy_connect(net_dev, mac_dev->phy_node, in dpaa_phy_init()
2495 netif_err(priv, ifup, net_dev, "init_phy() failed\n"); in dpaa_phy_init()
2506 net_dev->phydev = phy_dev; in dpaa_phy_init()
2511 static int dpaa_open(struct net_device *net_dev) in dpaa_open() argument
2517 priv = netdev_priv(net_dev); in dpaa_open()
2521 err = dpaa_phy_init(net_dev); in dpaa_open()
2533 netif_err(priv, ifup, net_dev, "mac_dev->start() = %d\n", err); in dpaa_open()
2537 netif_tx_start_all_queues(net_dev); in dpaa_open()
2551 static int dpaa_eth_stop(struct net_device *net_dev) in dpaa_eth_stop() argument
2556 err = dpaa_stop(net_dev); in dpaa_eth_stop()
2558 priv = netdev_priv(net_dev); in dpaa_eth_stop()
2603 static int dpaa_ioctl(struct net_device *net_dev, struct ifreq *rq, int cmd) in dpaa_ioctl() argument
2608 if (net_dev->phydev) in dpaa_ioctl()
2609 return phy_mii_ioctl(net_dev->phydev, rq, cmd); in dpaa_ioctl()
2613 return dpaa_ts_ioctl(net_dev, rq, cmd); in dpaa_ioctl()
2632 static int dpaa_napi_add(struct net_device *net_dev) in dpaa_napi_add() argument
2634 struct dpaa_priv *priv = netdev_priv(net_dev); in dpaa_napi_add()
2641 netif_napi_add(net_dev, &percpu_priv->np.napi, in dpaa_napi_add()
2648 static void dpaa_napi_del(struct net_device *net_dev) in dpaa_napi_del() argument
2650 struct dpaa_priv *priv = netdev_priv(net_dev); in dpaa_napi_del()
2768 struct net_device *net_dev = NULL; in dpaa_eth_probe() local
2787 net_dev = alloc_etherdev_mq(sizeof(*priv), DPAA_ETH_TXQ_NUM); in dpaa_eth_probe()
2788 if (!net_dev) { in dpaa_eth_probe()
2794 SET_NETDEV_DEV(net_dev, dev); in dpaa_eth_probe()
2795 dev_set_drvdata(dev, net_dev); in dpaa_eth_probe()
2797 priv = netdev_priv(net_dev); in dpaa_eth_probe()
2798 priv->net_dev = net_dev; in dpaa_eth_probe()
2816 net_dev->mtu = min(dpaa_get_max_mtu(), ETH_DATA_LEN); in dpaa_eth_probe()
2818 netdev_dbg(net_dev, "Setting initial MTU on net device: %d\n", in dpaa_eth_probe()
2819 net_dev->mtu); in dpaa_eth_probe()
2915 netif_set_real_num_tx_queues(net_dev, priv->num_tc * DPAA_TC_TXQ_NUM); in dpaa_eth_probe()
2918 err = dpaa_napi_add(net_dev); in dpaa_eth_probe()
2922 err = dpaa_netdev_init(net_dev, &dpaa_ops, tx_timeout); in dpaa_eth_probe()
2926 dpaa_eth_sysfs_init(&net_dev->dev); in dpaa_eth_probe()
2928 netif_info(priv, probe, net_dev, "Probed interface %s\n", in dpaa_eth_probe()
2929 net_dev->name); in dpaa_eth_probe()
2934 dpaa_napi_del(net_dev); in dpaa_eth_probe()
2946 free_netdev(net_dev); in dpaa_eth_probe()
2953 struct net_device *net_dev; in dpaa_remove() local
2959 net_dev = dev_get_drvdata(dev); in dpaa_remove()
2961 priv = netdev_priv(net_dev); in dpaa_remove()
2966 unregister_netdev(net_dev); in dpaa_remove()
2975 dpaa_napi_del(net_dev); in dpaa_remove()
2979 free_netdev(net_dev); in dpaa_remove()