Lines Matching refs:netdev

42 	struct net_device *netdev;  member
57 static int liteeth_rx(struct net_device *netdev) in liteeth_rx() argument
59 struct liteeth *priv = netdev_priv(netdev); in liteeth_rx()
71 skb = netdev_alloc_skb_ip_align(netdev, len); in liteeth_rx()
73 netdev_err(netdev, "couldn't get memory\n"); in liteeth_rx()
79 skb->protocol = eth_type_trans(skb, netdev); in liteeth_rx()
81 dev_sw_netstats_rx_add(netdev, len); in liteeth_rx()
86 netdev->stats.rx_dropped++; in liteeth_rx()
87 netdev->stats.rx_errors++; in liteeth_rx()
94 struct net_device *netdev = dev_id; in liteeth_interrupt() local
95 struct liteeth *priv = netdev_priv(netdev); in liteeth_interrupt()
100 if (netif_queue_stopped(netdev)) in liteeth_interrupt()
101 netif_wake_queue(netdev); in liteeth_interrupt()
107 liteeth_rx(netdev); in liteeth_interrupt()
114 static int liteeth_open(struct net_device *netdev) in liteeth_open() argument
116 struct liteeth *priv = netdev_priv(netdev); in liteeth_open()
123 err = request_irq(netdev->irq, liteeth_interrupt, 0, netdev->name, netdev); in liteeth_open()
125 netdev_err(netdev, "failed to request irq %d\n", netdev->irq); in liteeth_open()
133 netif_carrier_on(netdev); in liteeth_open()
134 netif_start_queue(netdev); in liteeth_open()
139 static int liteeth_stop(struct net_device *netdev) in liteeth_stop() argument
141 struct liteeth *priv = netdev_priv(netdev); in liteeth_stop()
143 netif_stop_queue(netdev); in liteeth_stop()
144 netif_carrier_off(netdev); in liteeth_stop()
149 free_irq(netdev->irq, netdev); in liteeth_stop()
155 struct net_device *netdev) in liteeth_start_xmit() argument
157 struct liteeth *priv = netdev_priv(netdev); in liteeth_start_xmit()
162 netdev_err(netdev, "LITEETH_READER_READY not ready\n"); in liteeth_start_xmit()
164 netif_stop_queue(netdev); in liteeth_start_xmit()
172 netdev_err(netdev, "tx packet too big\n"); in liteeth_start_xmit()
175 netdev->stats.tx_dropped++; in liteeth_start_xmit()
176 netdev->stats.tx_errors++; in liteeth_start_xmit()
187 dev_sw_netstats_tx_add(netdev, 1, skb->len); in liteeth_start_xmit()
196 liteeth_get_stats64(struct net_device *netdev, struct rtnl_link_stats64 *stats) in liteeth_get_stats64() argument
198 netdev_stats_to_stats64(stats, &netdev->stats); in liteeth_get_stats64()
199 dev_fetch_sw_netstats(stats, netdev->tstats); in liteeth_get_stats64()
235 struct net_device *netdev; in liteeth_probe() local
240 netdev = devm_alloc_etherdev(&pdev->dev, sizeof(*priv)); in liteeth_probe()
241 if (!netdev) in liteeth_probe()
244 SET_NETDEV_DEV(netdev, &pdev->dev); in liteeth_probe()
245 platform_set_drvdata(pdev, netdev); in liteeth_probe()
247 priv = netdev_priv(netdev); in liteeth_probe()
248 priv->netdev = netdev; in liteeth_probe()
251 netdev->tstats = devm_netdev_alloc_pcpu_stats(&pdev->dev, in liteeth_probe()
253 if (!netdev->tstats) in liteeth_probe()
259 netdev->irq = irq; in liteeth_probe()
279 err = of_get_ethdev_address(pdev->dev.of_node, netdev); in liteeth_probe()
281 eth_hw_addr_random(netdev); in liteeth_probe()
283 netdev->netdev_ops = &liteeth_netdev_ops; in liteeth_probe()
285 err = register_netdev(netdev); in liteeth_probe()
291 netdev_info(netdev, "irq %d slots: tx %d rx %d size %d\n", in liteeth_probe()
292 netdev->irq, priv->num_tx_slots, priv->num_rx_slots, priv->slot_size); in liteeth_probe()
299 struct net_device *netdev = platform_get_drvdata(pdev); in liteeth_remove() local
301 unregister_netdev(netdev); in liteeth_remove()