• Home
  • Raw
  • Download

Lines Matching refs:ndev

222 	struct net_device	*ndev;  member
226 static void ifi_canfd_irq_enable(struct net_device *ndev, bool enable) in ifi_canfd_irq_enable() argument
228 struct ifi_canfd_priv *priv = netdev_priv(ndev); in ifi_canfd_irq_enable()
248 static void ifi_canfd_read_fifo(struct net_device *ndev) in ifi_canfd_read_fifo() argument
250 struct net_device_stats *stats = &ndev->stats; in ifi_canfd_read_fifo()
251 struct ifi_canfd_priv *priv = netdev_priv(ndev); in ifi_canfd_read_fifo()
262 skb = alloc_canfd_skb(ndev, &cf); in ifi_canfd_read_fifo()
264 skb = alloc_can_skb(ndev, (struct can_frame **)&cf); in ifi_canfd_read_fifo()
298 netdev_dbg(ndev, "ESI Error\n"); in ifi_canfd_read_fifo()
324 static int ifi_canfd_do_rx_poll(struct net_device *ndev, int quota) in ifi_canfd_do_rx_poll() argument
326 struct ifi_canfd_priv *priv = netdev_priv(ndev); in ifi_canfd_do_rx_poll()
332 netdev_dbg(ndev, "No messages in RX FIFO\n"); in ifi_canfd_do_rx_poll()
342 ifi_canfd_read_fifo(ndev); in ifi_canfd_do_rx_poll()
349 can_led_event(ndev, CAN_LED_EVENT_RX); in ifi_canfd_do_rx_poll()
354 static int ifi_canfd_handle_lost_msg(struct net_device *ndev) in ifi_canfd_handle_lost_msg() argument
356 struct net_device_stats *stats = &ndev->stats; in ifi_canfd_handle_lost_msg()
360 netdev_err(ndev, "RX FIFO overflow, message(s) lost.\n"); in ifi_canfd_handle_lost_msg()
365 skb = alloc_can_err_skb(ndev, &frame); in ifi_canfd_handle_lost_msg()
377 static int ifi_canfd_handle_lec_err(struct net_device *ndev) in ifi_canfd_handle_lec_err() argument
379 struct ifi_canfd_priv *priv = netdev_priv(ndev); in ifi_canfd_handle_lec_err()
380 struct net_device_stats *stats = &ndev->stats; in ifi_canfd_handle_lec_err()
399 skb = alloc_can_err_skb(ndev, &cf); in ifi_canfd_handle_lec_err()
440 static int ifi_canfd_get_berr_counter(const struct net_device *ndev, in ifi_canfd_get_berr_counter() argument
443 struct ifi_canfd_priv *priv = netdev_priv(ndev); in ifi_canfd_get_berr_counter()
455 static int ifi_canfd_handle_state_change(struct net_device *ndev, in ifi_canfd_handle_state_change() argument
458 struct ifi_canfd_priv *priv = netdev_priv(ndev); in ifi_canfd_handle_state_change()
459 struct net_device_stats *stats = &ndev->stats; in ifi_canfd_handle_state_change()
483 ifi_canfd_irq_enable(ndev, 0); in ifi_canfd_handle_state_change()
485 can_bus_off(ndev); in ifi_canfd_handle_state_change()
492 skb = alloc_can_err_skb(ndev, &cf); in ifi_canfd_handle_state_change()
496 ifi_canfd_get_berr_counter(ndev, &bec); in ifi_canfd_handle_state_change()
532 static int ifi_canfd_handle_state_errors(struct net_device *ndev) in ifi_canfd_handle_state_errors() argument
534 struct ifi_canfd_priv *priv = netdev_priv(ndev); in ifi_canfd_handle_state_errors()
540 netdev_dbg(ndev, "Error, entered active state\n"); in ifi_canfd_handle_state_errors()
541 work_done += ifi_canfd_handle_state_change(ndev, in ifi_canfd_handle_state_errors()
547 netdev_dbg(ndev, "Error, entered warning state\n"); in ifi_canfd_handle_state_errors()
548 work_done += ifi_canfd_handle_state_change(ndev, in ifi_canfd_handle_state_errors()
554 netdev_dbg(ndev, "Error, entered passive state\n"); in ifi_canfd_handle_state_errors()
555 work_done += ifi_canfd_handle_state_change(ndev, in ifi_canfd_handle_state_errors()
561 netdev_dbg(ndev, "Error, entered bus-off state\n"); in ifi_canfd_handle_state_errors()
562 work_done += ifi_canfd_handle_state_change(ndev, in ifi_canfd_handle_state_errors()
571 struct net_device *ndev = napi->dev; in ifi_canfd_poll() local
572 struct ifi_canfd_priv *priv = netdev_priv(ndev); in ifi_canfd_poll()
577 work_done += ifi_canfd_handle_state_errors(ndev); in ifi_canfd_poll()
581 work_done += ifi_canfd_handle_lost_msg(ndev); in ifi_canfd_poll()
585 work_done += ifi_canfd_handle_lec_err(ndev); in ifi_canfd_poll()
589 work_done += ifi_canfd_do_rx_poll(ndev, quota - work_done); in ifi_canfd_poll()
593 ifi_canfd_irq_enable(ndev, 1); in ifi_canfd_poll()
601 struct net_device *ndev = (struct net_device *)dev_id; in ifi_canfd_isr() local
602 struct ifi_canfd_priv *priv = netdev_priv(ndev); in ifi_canfd_isr()
603 struct net_device_stats *stats = &ndev->stats; in ifi_canfd_isr()
626 ifi_canfd_irq_enable(ndev, 0); in ifi_canfd_isr()
632 stats->tx_bytes += can_get_echo_skb(ndev, 0); in ifi_canfd_isr()
634 can_led_event(ndev, CAN_LED_EVENT_TX); in ifi_canfd_isr()
638 netif_wake_queue(ndev); in ifi_canfd_isr()
655 static void ifi_canfd_set_bittiming(struct net_device *ndev) in ifi_canfd_set_bittiming() argument
657 struct ifi_canfd_priv *priv = netdev_priv(ndev); in ifi_canfd_set_bittiming()
690 static void ifi_canfd_set_filter(struct net_device *ndev, const u32 id, in ifi_canfd_set_filter() argument
693 struct ifi_canfd_priv *priv = netdev_priv(ndev); in ifi_canfd_set_filter()
699 static void ifi_canfd_set_filters(struct net_device *ndev) in ifi_canfd_set_filters() argument
702 ifi_canfd_set_filter(ndev, 0, in ifi_canfd_set_filters()
708 ifi_canfd_set_filter(ndev, 1, in ifi_canfd_set_filters()
715 ifi_canfd_set_filter(ndev, 2, in ifi_canfd_set_filters()
724 static void ifi_canfd_start(struct net_device *ndev) in ifi_canfd_start() argument
726 struct ifi_canfd_priv *priv = netdev_priv(ndev); in ifi_canfd_start()
734 ifi_canfd_set_bittiming(ndev); in ifi_canfd_start()
735 ifi_canfd_set_filters(ndev); in ifi_canfd_start()
769 ifi_canfd_irq_enable(ndev, 1); in ifi_canfd_start()
781 static void ifi_canfd_stop(struct net_device *ndev) in ifi_canfd_stop() argument
783 struct ifi_canfd_priv *priv = netdev_priv(ndev); in ifi_canfd_stop()
803 static int ifi_canfd_set_mode(struct net_device *ndev, enum can_mode mode) in ifi_canfd_set_mode() argument
807 ifi_canfd_start(ndev); in ifi_canfd_set_mode()
808 netif_wake_queue(ndev); in ifi_canfd_set_mode()
817 static int ifi_canfd_open(struct net_device *ndev) in ifi_canfd_open() argument
819 struct ifi_canfd_priv *priv = netdev_priv(ndev); in ifi_canfd_open()
822 ret = open_candev(ndev); in ifi_canfd_open()
824 netdev_err(ndev, "Failed to open CAN device\n"); in ifi_canfd_open()
829 ret = request_irq(ndev->irq, ifi_canfd_isr, IRQF_SHARED, in ifi_canfd_open()
830 ndev->name, ndev); in ifi_canfd_open()
832 netdev_err(ndev, "Failed to request interrupt\n"); in ifi_canfd_open()
836 ifi_canfd_start(ndev); in ifi_canfd_open()
838 can_led_event(ndev, CAN_LED_EVENT_OPEN); in ifi_canfd_open()
840 netif_start_queue(ndev); in ifi_canfd_open()
844 close_candev(ndev); in ifi_canfd_open()
848 static int ifi_canfd_close(struct net_device *ndev) in ifi_canfd_close() argument
850 struct ifi_canfd_priv *priv = netdev_priv(ndev); in ifi_canfd_close()
852 netif_stop_queue(ndev); in ifi_canfd_close()
855 ifi_canfd_stop(ndev); in ifi_canfd_close()
857 free_irq(ndev->irq, ndev); in ifi_canfd_close()
859 close_candev(ndev); in ifi_canfd_close()
861 can_led_event(ndev, CAN_LED_EVENT_STOP); in ifi_canfd_close()
867 struct net_device *ndev) in ifi_canfd_start_xmit() argument
869 struct ifi_canfd_priv *priv = netdev_priv(ndev); in ifi_canfd_start_xmit()
874 if (can_dropped_invalid_skb(ndev, skb)) in ifi_canfd_start_xmit()
880 netif_stop_queue(ndev); in ifi_canfd_start_xmit()
881 netdev_err(ndev, "BUG! TX FIFO full when queue awake!\n"); in ifi_canfd_start_xmit()
885 netif_stop_queue(ndev); in ifi_canfd_start_xmit()
925 can_put_echo_skb(skb, ndev, 0); in ifi_canfd_start_xmit()
943 struct net_device *ndev; in ifi_canfd_plat_probe() local
969 ndev = alloc_candev(sizeof(*priv), 1); in ifi_canfd_plat_probe()
970 if (!ndev) in ifi_canfd_plat_probe()
973 ndev->irq = irq; in ifi_canfd_plat_probe()
974 ndev->flags |= IFF_ECHO; /* we support local echo */ in ifi_canfd_plat_probe()
975 ndev->netdev_ops = &ifi_canfd_netdev_ops; in ifi_canfd_plat_probe()
977 priv = netdev_priv(ndev); in ifi_canfd_plat_probe()
978 priv->ndev = ndev; in ifi_canfd_plat_probe()
981 netif_napi_add(ndev, &priv->napi, ifi_canfd_poll, 64); in ifi_canfd_plat_probe()
1002 platform_set_drvdata(pdev, ndev); in ifi_canfd_plat_probe()
1003 SET_NETDEV_DEV(ndev, dev); in ifi_canfd_plat_probe()
1005 ret = register_candev(ndev); in ifi_canfd_plat_probe()
1011 devm_can_led_init(ndev); in ifi_canfd_plat_probe()
1014 priv->base, ndev->irq, priv->can.clock.freq); in ifi_canfd_plat_probe()
1019 free_candev(ndev); in ifi_canfd_plat_probe()
1025 struct net_device *ndev = platform_get_drvdata(pdev); in ifi_canfd_plat_remove() local
1027 unregister_candev(ndev); in ifi_canfd_plat_remove()
1029 free_candev(ndev); in ifi_canfd_plat_remove()