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()
250 netdev_dbg(priv->ndev, "ACK Delimiter Error\n"); in rcar_can_error()
257 netdev_dbg(priv->ndev, "Bit Error (dominant)\n"); in rcar_can_error()
264 netdev_dbg(priv->ndev, "Bit Error (recessive)\n"); in rcar_can_error()
271 netdev_dbg(priv->ndev, "CRC Error\n"); in rcar_can_error()
278 netdev_dbg(priv->ndev, "ACK Error\n"); in rcar_can_error()
287 netdev_dbg(priv->ndev, "Form Error\n"); in rcar_can_error()
294 netdev_dbg(priv->ndev, "Stuff Error\n"); in rcar_can_error()
302 ndev->stats.rx_errors += rx_errors; in rcar_can_error()
303 ndev->stats.tx_errors += tx_errors; in rcar_can_error()
307 netdev_dbg(priv->ndev, "Error warning interrupt\n"); in rcar_can_error()
317 netdev_dbg(priv->ndev, "Error passive interrupt\n"); in rcar_can_error()
327 netdev_dbg(priv->ndev, "Bus-off entry interrupt\n"); in rcar_can_error()
328 tx_failure_cleanup(ndev); in rcar_can_error()
335 can_bus_off(ndev); in rcar_can_error()
340 netdev_dbg(priv->ndev, "Receive overrun error interrupt\n"); in rcar_can_error()
341 ndev->stats.rx_over_errors++; in rcar_can_error()
342 ndev->stats.rx_errors++; in rcar_can_error()
350 netdev_dbg(priv->ndev, in rcar_can_error()
352 ndev->stats.rx_over_errors++; in rcar_can_error()
353 ndev->stats.rx_errors++; in rcar_can_error()
368 static void rcar_can_tx_done(struct net_device *ndev) in rcar_can_tx_done() argument
370 struct rcar_can_priv *priv = netdev_priv(ndev); in rcar_can_tx_done()
371 struct net_device_stats *stats = &ndev->stats; in rcar_can_tx_done()
385 can_get_echo_skb(ndev, priv->tx_tail % RCAR_CAN_FIFO_DEPTH); in rcar_can_tx_done()
387 netif_wake_queue(ndev); in rcar_can_tx_done()
392 can_led_event(ndev, CAN_LED_EVENT_TX); in rcar_can_tx_done()
397 struct net_device *ndev = dev_id; in rcar_can_interrupt() local
398 struct rcar_can_priv *priv = netdev_priv(ndev); in rcar_can_interrupt()
406 rcar_can_error(ndev); in rcar_can_interrupt()
409 rcar_can_tx_done(ndev); in rcar_can_interrupt()
439 static void rcar_can_start(struct net_device *ndev) in rcar_can_start() argument
441 struct rcar_can_priv *priv = netdev_priv(ndev); in rcar_can_start()
461 rcar_can_set_bittiming(ndev); in rcar_can_start()
504 static int rcar_can_open(struct net_device *ndev) in rcar_can_open() argument
506 struct rcar_can_priv *priv = netdev_priv(ndev); in rcar_can_open()
511 netdev_err(ndev, "failed to enable periperal clock, error %d\n", 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, "error requesting interrupt %d\n", ndev->irq); in rcar_can_open()
532 can_led_event(ndev, CAN_LED_EVENT_OPEN); in rcar_can_open()
533 rcar_can_start(ndev); in rcar_can_open()
534 netif_start_queue(ndev); in rcar_can_open()
538 close_candev(ndev); in rcar_can_open()
547 static void rcar_can_stop(struct net_device *ndev) in rcar_can_stop() argument
549 struct rcar_can_priv *priv = netdev_priv(ndev); in rcar_can_stop()
571 static int rcar_can_close(struct net_device *ndev) in rcar_can_close() argument
573 struct rcar_can_priv *priv = netdev_priv(ndev); in rcar_can_close()
575 netif_stop_queue(ndev); in rcar_can_close()
576 rcar_can_stop(ndev); in rcar_can_close()
577 free_irq(ndev->irq, ndev); in rcar_can_close()
581 close_candev(ndev); in rcar_can_close()
582 can_led_event(ndev, CAN_LED_EVENT_STOP); in rcar_can_close()
587 struct net_device *ndev) in rcar_can_start_xmit() argument
589 struct rcar_can_priv *priv = netdev_priv(ndev); in rcar_can_start_xmit()
593 if (can_dropped_invalid_skb(ndev, skb)) in rcar_can_start_xmit()
614 can_put_echo_skb(skb, ndev, priv->tx_head % RCAR_CAN_FIFO_DEPTH); in rcar_can_start_xmit()
623 netif_stop_queue(ndev); in rcar_can_start_xmit()
637 struct net_device_stats *stats = &priv->ndev->stats; in rcar_can_rx_pkt()
643 skb = alloc_can_skb(priv->ndev, &cf); in rcar_can_rx_pkt()
665 can_led_event(priv->ndev, CAN_LED_EVENT_RX); in rcar_can_rx_pkt()
704 static int rcar_can_do_set_mode(struct net_device *ndev, enum can_mode mode) in rcar_can_do_set_mode() argument
708 rcar_can_start(ndev); in rcar_can_do_set_mode()
709 netif_wake_queue(ndev); in rcar_can_do_set_mode()
741 struct net_device *ndev; in rcar_can_probe() local
774 ndev = alloc_candev(sizeof(struct rcar_can_priv), RCAR_CAN_FIFO_DEPTH); in rcar_can_probe()
775 if (!ndev) { in rcar_can_probe()
781 priv = netdev_priv(ndev); in rcar_can_probe()
802 ndev->netdev_ops = &rcar_can_netdev_ops; in rcar_can_probe()
803 ndev->irq = irq; in rcar_can_probe()
804 ndev->flags |= IFF_ECHO; in rcar_can_probe()
805 priv->ndev = ndev; in rcar_can_probe()
813 platform_set_drvdata(pdev, ndev); in rcar_can_probe()
814 SET_NETDEV_DEV(ndev, &pdev->dev); in rcar_can_probe()
816 netif_napi_add(ndev, &priv->napi, rcar_can_rx_poll, in rcar_can_probe()
818 err = register_candev(ndev); in rcar_can_probe()
825 devm_can_led_init(ndev); in rcar_can_probe()
828 priv->regs, ndev->irq); in rcar_can_probe()
834 free_candev(ndev); in rcar_can_probe()
841 struct net_device *ndev = platform_get_drvdata(pdev); in rcar_can_remove() local
842 struct rcar_can_priv *priv = netdev_priv(ndev); in rcar_can_remove()
844 unregister_candev(ndev); in rcar_can_remove()
846 free_candev(ndev); in rcar_can_remove()
852 struct net_device *ndev = dev_get_drvdata(dev); in rcar_can_suspend() local
853 struct rcar_can_priv *priv = netdev_priv(ndev); in rcar_can_suspend()
856 if (netif_running(ndev)) { in rcar_can_suspend()
857 netif_stop_queue(ndev); in rcar_can_suspend()
858 netif_device_detach(ndev); in rcar_can_suspend()
873 struct net_device *ndev = dev_get_drvdata(dev); in rcar_can_resume() local
874 struct rcar_can_priv *priv = netdev_priv(ndev); in rcar_can_resume()
880 netdev_err(ndev, "clk_enable() failed, error %d\n", err); in rcar_can_resume()
891 if (netif_running(ndev)) { in rcar_can_resume()
892 netif_device_attach(ndev); in rcar_can_resume()
893 netif_start_queue(ndev); in rcar_can_resume()