Lines Matching refs:dev
15 #include <linux/can/dev.h>
117 static int can_calc_bittiming(struct net_device *dev, struct can_bittiming *bt,
120 struct can_priv *priv = netdev_priv(dev);
188 netdev_err(dev,
193 netdev_warn(dev, "bitrate error %d.%d%%\n",
230 static int can_calc_bittiming(struct net_device *dev, struct can_bittiming *bt,
233 netdev_err(dev, "bit-timing calculation not available\n");
243 static int can_fixup_bittiming(struct net_device *dev, struct can_bittiming *bt,
246 struct can_priv *priv = netdev_priv(dev);
279 can_validate_bitrate(struct net_device *dev, struct can_bittiming *bt,
283 struct can_priv *priv = netdev_priv(dev);
297 static int can_get_bittiming(struct net_device *dev, struct can_bittiming *bt,
310 err = can_calc_bittiming(dev, bt, btc);
312 err = can_fixup_bittiming(dev, bt, btc);
314 err = can_validate_bitrate(dev, bt, bitrate_const,
322 static void can_update_state_error_stats(struct net_device *dev,
325 struct can_priv *priv = netdev_priv(dev);
345 static int can_tx_state_to_frame(struct net_device *dev, enum can_state state)
359 static int can_rx_state_to_frame(struct net_device *dev, enum can_state state)
395 void can_change_state(struct net_device *dev, struct can_frame *cf,
398 struct can_priv *priv = netdev_priv(dev);
402 netdev_warn(dev, "%s: oops, state did not change", __func__);
406 netdev_dbg(dev, "Controller changed from %s State (%d) into %s State (%d).\n",
410 can_update_state_error_stats(dev, new_state);
423 can_tx_state_to_frame(dev, tx_state) : 0;
425 can_rx_state_to_frame(dev, rx_state) : 0;
435 * the IFF_ECHO remains clear in dev->flags. This causes the PF_CAN core
438 static void can_flush_echo_skb(struct net_device *dev)
440 struct can_priv *priv = netdev_priv(dev);
441 struct net_device_stats *stats = &dev->stats;
460 int can_put_echo_skb(struct sk_buff *skb, struct net_device *dev,
463 struct can_priv *priv = netdev_priv(dev);
468 if (!(dev->flags & IFF_ECHO) || skb->pkt_type != PACKET_LOOPBACK ||
483 skb->dev = dev;
489 netdev_err(dev, "%s: BUG! echo_skb %d is occupied!\n", __func__, idx);
499 __can_get_echo_skb(struct net_device *dev, unsigned int idx, u8 *len_ptr)
501 struct can_priv *priv = netdev_priv(dev);
504 netdev_err(dev, "%s: BUG! Trying to access can_priv::echo_skb out of bounds (%u/max %u)\n",
536 unsigned int can_get_echo_skb(struct net_device *dev, unsigned int idx)
541 skb = __can_get_echo_skb(dev, idx, &len);
559 void can_free_echo_skb(struct net_device *dev, unsigned int idx)
561 struct can_priv *priv = netdev_priv(dev);
573 static void can_restart(struct net_device *dev)
575 struct can_priv *priv = netdev_priv(dev);
576 struct net_device_stats *stats = &dev->stats;
581 if (netif_carrier_ok(dev))
582 netdev_err(dev, "Attempt to restart for bus-off recovery, but carrier is OK?\n");
587 can_flush_echo_skb(dev);
590 skb = alloc_can_err_skb(dev, &cf);
602 netdev_dbg(dev, "restarted\n");
606 netif_carrier_on(dev);
607 err = priv->do_set_mode(dev, CAN_MODE_START);
609 netdev_err(dev, "Error %d during restart", err);
610 netif_carrier_off(dev);
620 can_restart(priv->dev);
623 int can_restart_now(struct net_device *dev)
625 struct can_priv *priv = netdev_priv(dev);
636 can_restart(dev);
647 void can_bus_off(struct net_device *dev)
649 struct can_priv *priv = netdev_priv(dev);
652 netdev_info(dev, "bus-off, scheduling restart in %d ms\n",
655 netdev_info(dev, "bus-off\n");
657 netif_carrier_off(dev);
665 static void can_setup(struct net_device *dev)
667 dev->type = ARPHRD_CAN;
668 dev->mtu = CAN_MTU;
669 dev->hard_header_len = 0;
670 dev->addr_len = 0;
671 dev->tx_queue_len = 10;
674 dev->flags = IFF_NOARP;
675 dev->features = NETIF_F_HW_CSUM;
678 struct sk_buff *alloc_can_skb(struct net_device *dev, struct can_frame **cf)
682 skb = netdev_alloc_skb(dev, sizeof(struct can_skb_priv) +
696 can_skb_prv(skb)->ifindex = dev->ifindex;
705 struct sk_buff *alloc_canfd_skb(struct net_device *dev,
710 skb = netdev_alloc_skb(dev, sizeof(struct can_skb_priv) +
724 can_skb_prv(skb)->ifindex = dev->ifindex;
733 struct sk_buff *alloc_can_err_skb(struct net_device *dev, struct can_frame **cf)
737 skb = alloc_can_skb(dev, cf);
753 struct net_device *dev;
776 dev = alloc_netdev_mqs(size, "can%d", NET_NAME_UNKNOWN, can_setup,
778 if (!dev)
781 priv = netdev_priv(dev);
782 priv->dev = dev;
785 can_set_ml_priv(dev, can_ml);
797 return dev;
802 void free_candev(struct net_device *dev)
804 free_netdev(dev);
809 int can_change_mtu(struct net_device *dev, int new_mtu)
811 struct can_priv *priv = netdev_priv(dev);
814 if (dev->flags & IFF_UP)
840 dev->mtu = new_mtu;
850 int open_candev(struct net_device *dev)
852 struct can_priv *priv = netdev_priv(dev);
855 netdev_err(dev, "bit-timing not yet defined\n");
863 netdev_err(dev, "incorrect/missing data bit-timing\n");
868 if (!netif_carrier_ok(dev))
869 netif_carrier_on(dev);
880 void of_can_transceiver(struct net_device *dev)
883 struct can_priv *priv = netdev_priv(dev);
884 struct device_node *np = dev->dev.parent->of_node;
894 netdev_warn(dev, "Invalid value for transceiver max bitrate. Ignoring bitrate limit.\n");
904 void close_candev(struct net_device *dev)
906 struct can_priv *priv = netdev_priv(dev);
909 can_flush_echo_skb(dev);
964 static int can_changelink(struct net_device *dev, struct nlattr *tb[],
968 struct can_priv *priv = netdev_priv(dev);
971 /* We need synchronization with dev->stop() */
978 if (dev->flags & IFF_UP)
990 err = can_get_bittiming(dev, &bt,
998 netdev_err(dev, "arbitration bitrate surpasses transceiver capabilities of %d bps\n",
1007 err = priv->do_set_bittiming(dev);
1019 if (dev->flags & IFF_UP)
1043 dev->mtu = CANFD_MTU;
1045 dev->mtu = CAN_MTU;
1050 if (dev->flags & IFF_UP)
1057 if (!(dev->flags & IFF_UP))
1059 err = can_restart_now(dev);
1068 if (dev->flags & IFF_UP)
1081 err = can_get_bittiming(dev, &dbt,
1089 netdev_err(dev, "canfd data bitrate surpasses transceiver capabilities of %d bps\n",
1098 err = priv->do_set_data_bittiming(dev);
1121 err = priv->do_set_termination(dev, termval);
1131 static size_t can_get_size(const struct net_device *dev)
1133 struct can_priv *priv = netdev_priv(dev);
1166 static int can_fill_info(struct sk_buff *skb, const struct net_device *dev)
1168 struct can_priv *priv = netdev_priv(dev);
1174 priv->do_get_state(dev, &state);
1190 !priv->do_get_berr_counter(dev, &bec) &&
1231 static size_t can_get_xstats_size(const struct net_device *dev)
1236 static int can_fill_xstats(struct sk_buff *skb, const struct net_device *dev)
1238 struct can_priv *priv = netdev_priv(dev);
1249 static int can_newlink(struct net *src_net, struct net_device *dev,
1256 static void can_dellink(struct net_device *dev, struct list_head *head)
1277 int register_candev(struct net_device *dev)
1279 struct can_priv *priv = netdev_priv(dev);
1295 dev->rtnl_link_ops = &can_link_ops;
1296 netif_carrier_off(dev);
1298 return register_netdev(dev);
1303 void unregister_candev(struct net_device *dev)
1305 unregister_netdev(dev);
1312 struct can_priv *safe_candev_priv(struct net_device *dev)
1314 if (dev->type != ARPHRD_CAN || dev->rtnl_link_ops != &can_link_ops)
1317 return netdev_priv(dev);