Lines Matching refs:ndev

87 	struct net_device *ndev;  member
210 static void tx_failure_cleanup(struct net_device *ndev) in tx_failure_cleanup() argument
215 can_free_echo_skb(ndev, i); in tx_failure_cleanup()
218 static void rcar_can_error(struct net_device *ndev) in rcar_can_error() argument
220 struct rcar_can_priv *priv = netdev_priv(ndev); in rcar_can_error()
221 struct net_device_stats *stats = &ndev->stats; in rcar_can_error()
227 skb = alloc_can_err_skb(ndev, &cf); in rcar_can_error()
243 netdev_dbg(priv->ndev, "Bus error interrupt:\n"); in rcar_can_error()
249 netdev_dbg(priv->ndev, "ACK Delimiter Error\n"); in rcar_can_error()
256 netdev_dbg(priv->ndev, "Bit Error (dominant)\n"); in rcar_can_error()
263 netdev_dbg(priv->ndev, "Bit Error (recessive)\n"); in rcar_can_error()
270 netdev_dbg(priv->ndev, "CRC Error\n"); in rcar_can_error()
277 netdev_dbg(priv->ndev, "ACK Error\n"); in rcar_can_error()
286 netdev_dbg(priv->ndev, "Form Error\n"); in rcar_can_error()
293 netdev_dbg(priv->ndev, "Stuff Error\n"); in rcar_can_error()
301 ndev->stats.rx_errors += rx_errors; in rcar_can_error()
302 ndev->stats.tx_errors += tx_errors; in rcar_can_error()
306 netdev_dbg(priv->ndev, "Error warning interrupt\n"); in rcar_can_error()
316 netdev_dbg(priv->ndev, "Error passive interrupt\n"); in rcar_can_error()
326 netdev_dbg(priv->ndev, "Bus-off entry interrupt\n"); in rcar_can_error()
327 tx_failure_cleanup(ndev); in rcar_can_error()
334 can_bus_off(ndev); in rcar_can_error()
339 netdev_dbg(priv->ndev, "Receive overrun error interrupt\n"); in rcar_can_error()
340 ndev->stats.rx_over_errors++; in rcar_can_error()
341 ndev->stats.rx_errors++; in rcar_can_error()
349 netdev_dbg(priv->ndev, in rcar_can_error()
351 ndev->stats.rx_over_errors++; in rcar_can_error()
352 ndev->stats.rx_errors++; in rcar_can_error()
367 static void rcar_can_tx_done(struct net_device *ndev) in rcar_can_tx_done() argument
369 struct rcar_can_priv *priv = netdev_priv(ndev); in rcar_can_tx_done()
370 struct net_device_stats *stats = &ndev->stats; in rcar_can_tx_done()
384 can_get_echo_skb(ndev, priv->tx_tail % RCAR_CAN_FIFO_DEPTH); in rcar_can_tx_done()
386 netif_wake_queue(ndev); in rcar_can_tx_done()
391 can_led_event(ndev, CAN_LED_EVENT_TX); in rcar_can_tx_done()
396 struct net_device *ndev = dev_id; in rcar_can_interrupt() local
397 struct rcar_can_priv *priv = netdev_priv(ndev); in rcar_can_interrupt()
405 rcar_can_error(ndev); in rcar_can_interrupt()
408 rcar_can_tx_done(ndev); in rcar_can_interrupt()
438 static void rcar_can_start(struct net_device *ndev) in rcar_can_start() argument
440 struct rcar_can_priv *priv = netdev_priv(ndev); in rcar_can_start()
460 rcar_can_set_bittiming(ndev); in rcar_can_start()
503 static int rcar_can_open(struct net_device *ndev) in rcar_can_open() argument
505 struct rcar_can_priv *priv = netdev_priv(ndev); in rcar_can_open()
510 netdev_err(ndev, in rcar_can_open()
517 netdev_err(ndev, "failed to enable CAN clock, error %d\n", in rcar_can_open()
521 err = open_candev(ndev); in rcar_can_open()
523 netdev_err(ndev, "open_candev() failed, error %d\n", err); in rcar_can_open()
527 err = request_irq(ndev->irq, rcar_can_interrupt, 0, ndev->name, ndev); in rcar_can_open()
529 netdev_err(ndev, "request_irq(%d) failed, error %d\n", in rcar_can_open()
530 ndev->irq, err); in rcar_can_open()
533 can_led_event(ndev, CAN_LED_EVENT_OPEN); in rcar_can_open()
534 rcar_can_start(ndev); in rcar_can_open()
535 netif_start_queue(ndev); in rcar_can_open()
539 close_candev(ndev); in rcar_can_open()
548 static void rcar_can_stop(struct net_device *ndev) in rcar_can_stop() argument
550 struct rcar_can_priv *priv = netdev_priv(ndev); in rcar_can_stop()
572 static int rcar_can_close(struct net_device *ndev) in rcar_can_close() argument
574 struct rcar_can_priv *priv = netdev_priv(ndev); in rcar_can_close()
576 netif_stop_queue(ndev); in rcar_can_close()
577 rcar_can_stop(ndev); in rcar_can_close()
578 free_irq(ndev->irq, ndev); in rcar_can_close()
582 close_candev(ndev); in rcar_can_close()
583 can_led_event(ndev, CAN_LED_EVENT_STOP); in rcar_can_close()
588 struct net_device *ndev) in rcar_can_start_xmit() argument
590 struct rcar_can_priv *priv = netdev_priv(ndev); in rcar_can_start_xmit()
594 if (can_dropped_invalid_skb(ndev, skb)) in rcar_can_start_xmit()
615 can_put_echo_skb(skb, ndev, priv->tx_head % RCAR_CAN_FIFO_DEPTH); in rcar_can_start_xmit()
624 netif_stop_queue(ndev); in rcar_can_start_xmit()
638 struct net_device_stats *stats = &priv->ndev->stats; in rcar_can_rx_pkt()
644 skb = alloc_can_skb(priv->ndev, &cf); in rcar_can_rx_pkt()
666 can_led_event(priv->ndev, CAN_LED_EVENT_RX); in rcar_can_rx_pkt()
705 static int rcar_can_do_set_mode(struct net_device *ndev, enum can_mode mode) in rcar_can_do_set_mode() argument
709 rcar_can_start(ndev); in rcar_can_do_set_mode()
710 netif_wake_queue(ndev); in rcar_can_do_set_mode()
742 struct net_device *ndev; in rcar_can_probe() local
775 ndev = alloc_candev(sizeof(struct rcar_can_priv), RCAR_CAN_FIFO_DEPTH); in rcar_can_probe()
776 if (!ndev) { in rcar_can_probe()
782 priv = netdev_priv(ndev); in rcar_can_probe()
804 ndev->netdev_ops = &rcar_can_netdev_ops; in rcar_can_probe()
805 ndev->irq = irq; in rcar_can_probe()
806 ndev->flags |= IFF_ECHO; in rcar_can_probe()
807 priv->ndev = ndev; in rcar_can_probe()
815 platform_set_drvdata(pdev, ndev); in rcar_can_probe()
816 SET_NETDEV_DEV(ndev, &pdev->dev); in rcar_can_probe()
818 netif_napi_add(ndev, &priv->napi, rcar_can_rx_poll, in rcar_can_probe()
820 err = register_candev(ndev); in rcar_can_probe()
827 devm_can_led_init(ndev); in rcar_can_probe()
830 priv->regs, ndev->irq); in rcar_can_probe()
836 free_candev(ndev); in rcar_can_probe()
843 struct net_device *ndev = platform_get_drvdata(pdev); in rcar_can_remove() local
844 struct rcar_can_priv *priv = netdev_priv(ndev); in rcar_can_remove()
846 unregister_candev(ndev); in rcar_can_remove()
848 free_candev(ndev); in rcar_can_remove()
854 struct net_device *ndev = dev_get_drvdata(dev); in rcar_can_suspend() local
855 struct rcar_can_priv *priv = netdev_priv(ndev); in rcar_can_suspend()
858 if (netif_running(ndev)) { in rcar_can_suspend()
859 netif_stop_queue(ndev); in rcar_can_suspend()
860 netif_device_detach(ndev); in rcar_can_suspend()
875 struct net_device *ndev = dev_get_drvdata(dev); in rcar_can_resume() local
876 struct rcar_can_priv *priv = netdev_priv(ndev); in rcar_can_resume()
882 netdev_err(ndev, "clk_enable() failed, error %d\n", err); in rcar_can_resume()
893 if (netif_running(ndev)) { in rcar_can_resume()
894 netif_device_attach(ndev); in rcar_can_resume()
895 netif_start_queue(ndev); in rcar_can_resume()