Lines Matching full:ndev
135 static int set_reset_mode(struct net_device *ndev) in set_reset_mode() argument
137 struct rockchip_can *rcan = netdev_priv(ndev); in set_reset_mode()
148 static int set_normal_mode(struct net_device *ndev) in set_normal_mode() argument
150 struct rockchip_can *rcan = netdev_priv(ndev); in set_normal_mode()
161 static int rockchip_can_set_bittiming(struct net_device *ndev) in rockchip_can_set_bittiming() argument
163 struct rockchip_can *rcan = netdev_priv(ndev); in rockchip_can_set_bittiming()
176 netdev_dbg(ndev, "setting BITTIMING=0x%08x brp: %d bitrate:%d\n", in rockchip_can_set_bittiming()
182 static int rockchip_can_get_berr_counter(const struct net_device *ndev, in rockchip_can_get_berr_counter() argument
185 struct rockchip_can *rcan = netdev_priv(ndev); in rockchip_can_get_berr_counter()
190 netdev_err(ndev, "%s: pm_runtime_get failed(%d)\n", in rockchip_can_get_berr_counter()
200 netdev_dbg(ndev, "%s\n", __func__); in rockchip_can_get_berr_counter()
204 static int rockchip_can_start(struct net_device *ndev) in rockchip_can_start() argument
206 struct rockchip_can *rcan = netdev_priv(ndev); in rockchip_can_start()
209 set_reset_mode(ndev); in rockchip_can_start()
217 rockchip_can_set_bittiming(ndev); in rockchip_can_start()
219 set_normal_mode(ndev); in rockchip_can_start()
223 netdev_dbg(ndev, "%s\n", __func__); in rockchip_can_start()
227 static int rockchip_can_stop(struct net_device *ndev) in rockchip_can_stop() argument
229 struct rockchip_can *rcan = netdev_priv(ndev); in rockchip_can_stop()
234 set_reset_mode(ndev); in rockchip_can_stop()
242 netdev_dbg(ndev, "%s\n", __func__); in rockchip_can_stop()
246 static int rockchip_can_set_mode(struct net_device *ndev, enum can_mode mode) in rockchip_can_set_mode() argument
250 netdev_dbg(ndev, "can set mode: 0x%x\n", mode); in rockchip_can_set_mode()
254 err = rockchip_can_start(ndev); in rockchip_can_set_mode()
256 netdev_err(ndev, "starting CAN controller failed!\n"); in rockchip_can_set_mode()
259 if (netif_queue_stopped(ndev)) in rockchip_can_set_mode()
260 netif_wake_queue(ndev); in rockchip_can_set_mode()
275 static int rockchip_can_start_xmit(struct sk_buff *skb, struct net_device *ndev) in rockchip_can_start_xmit() argument
277 struct rockchip_can *rcan = netdev_priv(ndev); in rockchip_can_start_xmit()
284 if (can_dropped_invalid_skb(ndev, skb)) in rockchip_can_start_xmit()
287 netif_stop_queue(ndev); in rockchip_can_start_xmit()
312 can_put_echo_skb(skb, ndev, 0); in rockchip_can_start_xmit()
315 netdev_dbg(ndev, "TX: can_id:0x%08x dlc: %d mode: 0x%08x data: 0x%08x 0x%08x\n", in rockchip_can_start_xmit()
321 static void rockchip_can_rx(struct net_device *ndev) in rockchip_can_rx() argument
323 struct rockchip_can *rcan = netdev_priv(ndev); in rockchip_can_rx()
324 struct net_device_stats *stats = &ndev->stats; in rockchip_can_rx()
332 skb = alloc_can_skb(ndev, &cf); in rockchip_can_rx()
358 can_led_event(ndev, CAN_LED_EVENT_RX); in rockchip_can_rx()
360 netdev_dbg(ndev, "%s can_id:0x%08x fi: 0x%08x dlc: %d data: 0x%08x 0x%08x\n", in rockchip_can_rx()
373 static int rockchip_can_err(struct net_device *ndev, u8 isr) in rockchip_can_err() argument
375 struct rockchip_can *rcan = netdev_priv(ndev); in rockchip_can_err()
376 struct net_device_stats *stats = &ndev->stats; in rockchip_can_err()
385 skb = alloc_can_err_skb(ndev, &cf); in rockchip_can_err()
398 netdev_dbg(ndev, "data overrun interrupt\n"); in rockchip_can_err()
409 set_reset_mode(ndev); in rockchip_can_err()
410 set_normal_mode(ndev); in rockchip_can_err()
415 netdev_dbg(ndev, "error warning interrupt\n"); in rockchip_can_err()
427 netdev_dbg(ndev, "bus error interrupt\n"); in rockchip_can_err()
458 netdev_dbg(ndev, "error passive interrupt\n"); in rockchip_can_err()
466 netdev_dbg(ndev, "arbitration lost interrupt\n"); in rockchip_can_err()
481 can_change_state(ndev, cf, tx_state, rx_state); in rockchip_can_err()
485 can_bus_off(ndev); in rockchip_can_err()
501 struct net_device *ndev = (struct net_device *)dev_id; in rockchip_can_interrupt() local
502 struct rockchip_can *rcan = netdev_priv(ndev); in rockchip_can_interrupt()
503 struct net_device_stats *stats = &ndev->stats; in rockchip_can_interrupt()
515 can_get_echo_skb(ndev, 0); in rockchip_can_interrupt()
516 netif_wake_queue(ndev); in rockchip_can_interrupt()
517 can_led_event(ndev, CAN_LED_EVENT_TX); in rockchip_can_interrupt()
521 rockchip_can_rx(ndev); in rockchip_can_interrupt()
525 if (rockchip_can_err(ndev, isr)) in rockchip_can_interrupt()
526 netdev_err(ndev, "can't allocate buffer - clearing pending interrupts\n"); in rockchip_can_interrupt()
531 netdev_dbg(ndev, "isr: 0x%x\n", isr); in rockchip_can_interrupt()
535 static int rockchip_can_open(struct net_device *ndev) in rockchip_can_open() argument
537 struct rockchip_can *rcan = netdev_priv(ndev); in rockchip_can_open()
541 err = open_candev(ndev); in rockchip_can_open()
547 netdev_err(ndev, "%s: pm_runtime_get failed(%d)\n", in rockchip_can_open()
552 err = rockchip_can_start(ndev); in rockchip_can_open()
554 netdev_err(ndev, "could not start CAN peripheral\n"); in rockchip_can_open()
558 can_led_event(ndev, CAN_LED_EVENT_OPEN); in rockchip_can_open()
559 netif_start_queue(ndev); in rockchip_can_open()
561 netdev_dbg(ndev, "%s\n", __func__); in rockchip_can_open()
567 close_candev(ndev); in rockchip_can_open()
571 static int rockchip_can_close(struct net_device *ndev) in rockchip_can_close() argument
573 struct rockchip_can *rcan = netdev_priv(ndev); in rockchip_can_close()
575 netif_stop_queue(ndev); in rockchip_can_close()
576 rockchip_can_stop(ndev); in rockchip_can_close()
577 close_candev(ndev); in rockchip_can_close()
578 can_led_event(ndev, CAN_LED_EVENT_STOP); in rockchip_can_close()
581 netdev_dbg(ndev, "%s\n", __func__); in rockchip_can_close()
600 struct net_device *ndev = dev_get_drvdata(dev); in rockchip_can_suspend() local
602 if (netif_running(ndev)) { in rockchip_can_suspend()
603 netif_stop_queue(ndev); in rockchip_can_suspend()
604 netif_device_detach(ndev); in rockchip_can_suspend()
605 rockchip_can_stop(ndev); in rockchip_can_suspend()
620 struct net_device *ndev = dev_get_drvdata(dev); in rockchip_can_resume() local
629 if (netif_running(ndev)) { in rockchip_can_resume()
630 ret = rockchip_can_start(ndev); in rockchip_can_resume()
636 netif_device_attach(ndev); in rockchip_can_resume()
637 netif_start_queue(ndev); in rockchip_can_resume()
652 struct net_device *ndev = dev_get_drvdata(dev); in rockchip_can_runtime_suspend() local
653 struct rockchip_can *rcan = netdev_priv(ndev); in rockchip_can_runtime_suspend()
669 struct net_device *ndev = dev_get_drvdata(dev); in rockchip_can_runtime_resume() local
670 struct rockchip_can *rcan = netdev_priv(ndev); in rockchip_can_runtime_resume()
696 struct net_device *ndev; in rockchip_can_probe() local
713 ndev = alloc_candev(sizeof(struct rockchip_can), 1); in rockchip_can_probe()
714 if (!ndev) { in rockchip_can_probe()
719 ndev->netdev_ops = &rockchip_can_netdev_ops; in rockchip_can_probe()
720 ndev->irq = irq; in rockchip_can_probe()
721 ndev->flags |= IFF_ECHO; in rockchip_can_probe()
723 rcan = netdev_priv(ndev); in rockchip_can_probe()
726 err = devm_request_irq(&pdev->dev, ndev->irq, rockchip_can_interrupt, in rockchip_can_probe()
727 0, ndev->name, ndev); in rockchip_can_probe()
756 platform_set_drvdata(pdev, ndev); in rockchip_can_probe()
757 SET_NETDEV_DEV(ndev, &pdev->dev); in rockchip_can_probe()
767 err = register_candev(ndev); in rockchip_can_probe()
774 devm_can_led_init(ndev); in rockchip_can_probe()
784 free_candev(ndev); in rockchip_can_probe()
791 struct net_device *ndev = platform_get_drvdata(pdev); in rockchip_can_remove() local
793 unregister_netdev(ndev); in rockchip_can_remove()
795 free_candev(ndev); in rockchip_can_remove()