Lines Matching refs:dev

14 #include <linux/can/dev.h>
341 struct device *dev;
717 static int __flexcan_get_berr_counter(const struct net_device *dev,
720 const struct flexcan_priv *priv = netdev_priv(dev);
730 static int flexcan_get_berr_counter(const struct net_device *dev,
733 const struct flexcan_priv *priv = netdev_priv(dev);
736 err = pm_runtime_get_sync(priv->dev);
738 pm_runtime_put_noidle(priv->dev);
742 err = __flexcan_get_berr_counter(dev, bec);
744 pm_runtime_put(priv->dev);
749 static netdev_tx_t flexcan_start_xmit(struct sk_buff *skb, struct net_device *dev)
751 const struct flexcan_priv *priv = netdev_priv(dev);
758 if (can_dropped_invalid_skb(dev, skb))
761 netif_stop_queue(dev);
785 can_put_echo_skb(skb, dev, 0);
801 static void flexcan_irq_bus_err(struct net_device *dev, u32 reg_esr)
803 struct flexcan_priv *priv = netdev_priv(dev);
813 skb = alloc_can_err_skb(dev, &cf);
820 netdev_dbg(dev, "BIT1_ERR irq\n");
825 netdev_dbg(dev, "BIT0_ERR irq\n");
830 netdev_dbg(dev, "ACK_ERR irq\n");
836 netdev_dbg(dev, "CRC_ERR irq\n");
842 netdev_dbg(dev, "FRM_ERR irq\n");
847 netdev_dbg(dev, "STF_ERR irq\n");
854 dev->stats.rx_errors++;
856 dev->stats.tx_errors++;
860 dev->stats.rx_fifo_errors++;
863 static void flexcan_irq_state(struct net_device *dev, u32 reg_esr)
865 struct flexcan_priv *priv = netdev_priv(dev);
883 __flexcan_get_berr_counter(dev, &bec);
896 skb = alloc_can_err_skb(dev, &cf);
900 can_change_state(dev, cf, tx_state, rx_state);
903 can_bus_off(dev);
907 dev->stats.rx_fifo_errors++;
974 offload->dev->stats.rx_over_errors++;
975 offload->dev->stats.rx_errors++;
991 skb = alloc_canfd_skb(offload->dev, &cfd);
993 skb = alloc_can_skb(offload->dev, (struct can_frame **)&cfd);
1045 struct net_device *dev = dev_id;
1046 struct net_device_stats *stats = &dev->stats;
1047 struct flexcan_priv *priv = netdev_priv(dev);
1080 dev->stats.rx_over_errors++;
1081 dev->stats.rx_errors++;
1095 can_led_event(dev, CAN_LED_EVENT_TX);
1101 netif_wake_queue(dev);
1116 flexcan_irq_state(dev, reg_esr);
1121 flexcan_irq_bus_err(dev, reg_esr);
1164 static void flexcan_set_bittiming_ctrl(const struct net_device *dev)
1166 const struct flexcan_priv *priv = netdev_priv(dev);
1184 netdev_dbg(dev, "writing ctrl=0x%08x\n", reg);
1188 netdev_dbg(dev, "%s: mcr=0x%08x ctrl=0x%08x\n", __func__,
1192 static void flexcan_set_bittiming_cbt(const struct net_device *dev)
1194 struct flexcan_priv *priv = netdev_priv(dev);
1219 netdev_dbg(dev, "writing cbt=0x%08x\n", reg_cbt);
1226 netdev_warn(dev, "Data brp=%d and brp=%d don't match, this may result in a phase error. Consider using different bitrate and/or data bitrate.\n",
1255 netdev_dbg(dev, "writing fdcbt=0x%08x\n", reg_fdcbt);
1264 netdev_dbg(dev, "writing ctrl2=0x%08x\n", reg_ctrl2);
1288 netdev_dbg(dev, "writing fdctrl=0x%08x\n", reg_fdctrl);
1291 netdev_dbg(dev, "%s: mcr=0x%08x ctrl=0x%08x ctrl2=0x%08x fdctrl=0x%08x cbt=0x%08x fdcbt=0x%08x\n",
1298 static void flexcan_set_bittiming(struct net_device *dev)
1300 const struct flexcan_priv *priv = netdev_priv(dev);
1315 netdev_dbg(dev, "writing ctrl=0x%08x\n", reg);
1319 return flexcan_set_bittiming_cbt(dev);
1321 return flexcan_set_bittiming_ctrl(dev);
1324 static void flexcan_ram_init(struct net_device *dev)
1326 struct flexcan_priv *priv = netdev_priv(dev);
1360 static int flexcan_chip_start(struct net_device *dev)
1362 struct flexcan_priv *priv = netdev_priv(dev);
1380 flexcan_ram_init(dev);
1382 flexcan_set_bittiming(dev);
1436 netdev_dbg(dev, "%s: writing mcr=0x%08x", __func__, reg_mcr);
1469 netdev_dbg(dev, "%s: writing ctrl=0x%08x", __func__, reg_ctrl);
1499 netdev_dbg(dev, "%s: writing fdctrl=0x%08x",
1586 disable_irq(dev->irq);
1591 enable_irq(dev->irq);
1594 netdev_dbg(dev, "%s: reading mcr=0x%08x ctrl=0x%08x\n", __func__,
1608 static int __flexcan_chip_stop(struct net_device *dev, bool disable_on_error)
1610 struct flexcan_priv *priv = netdev_priv(dev);
1638 static inline int flexcan_chip_stop_disable_on_error(struct net_device *dev)
1640 return __flexcan_chip_stop(dev, true);
1643 static inline int flexcan_chip_stop(struct net_device *dev)
1645 return __flexcan_chip_stop(dev, false);
1648 static int flexcan_open(struct net_device *dev)
1650 struct flexcan_priv *priv = netdev_priv(dev);
1655 netdev_err(dev, "Three Samples mode and CAN-FD mode can't be used together\n");
1659 err = pm_runtime_get_sync(priv->dev);
1661 pm_runtime_put_noidle(priv->dev);
1665 err = open_candev(dev);
1673 err = request_irq(dev->irq, flexcan_irq, IRQF_SHARED, dev->name, dev);
1702 err = can_rx_offload_add_timestamp(dev, &priv->offload);
1706 err = can_rx_offload_add_fifo(dev, &priv->offload,
1713 err = flexcan_chip_start(dev);
1717 can_led_event(dev, CAN_LED_EVENT_OPEN);
1720 netif_start_queue(dev);
1727 free_irq(dev->irq, dev);
1731 close_candev(dev);
1733 pm_runtime_put(priv->dev);
1738 static int flexcan_close(struct net_device *dev)
1740 struct flexcan_priv *priv = netdev_priv(dev);
1742 netif_stop_queue(dev);
1744 flexcan_chip_stop_disable_on_error(dev);
1747 free_irq(dev->irq, dev);
1750 close_candev(dev);
1751 pm_runtime_put(priv->dev);
1753 can_led_event(dev, CAN_LED_EVENT_STOP);
1758 static int flexcan_set_mode(struct net_device *dev, enum can_mode mode)
1764 err = flexcan_chip_start(dev);
1768 netif_wake_queue(dev);
1785 static int register_flexcandev(struct net_device *dev)
1787 struct flexcan_priv *priv = netdev_priv(dev);
1828 netdev_err(dev, "Could not enable RX FIFO, unsupported core\n");
1833 err = register_candev(dev);
1841 pm_runtime_put(priv->dev);
1852 static void unregister_flexcandev(struct net_device *dev)
1854 unregister_candev(dev);
1859 struct net_device *dev = platform_get_drvdata(pdev);
1860 struct device_node *np = pdev->dev.of_node;
1876 dev_dbg(&pdev->dev, "no stop-mode property\n");
1883 dev_dbg(&pdev->dev, "could not find gpr node by phandle\n");
1887 priv = netdev_priv(dev);
1890 dev_dbg(&pdev->dev, "could not find gpr regmap\n");
1898 dev_dbg(&pdev->dev,
1902 device_set_wakeup_capable(&pdev->dev, true);
1905 device_set_wakeup_enable(&pdev->dev, true);
1940 struct net_device *dev;
1949 reg_xceiver = devm_regulator_get_optional(&pdev->dev, "xceiver");
1957 if (pdev->dev.of_node) {
1958 of_property_read_u32(pdev->dev.of_node,
1960 of_property_read_u8(pdev->dev.of_node,
1965 clk_ipg = devm_clk_get(&pdev->dev, "ipg");
1967 dev_err(&pdev->dev, "no ipg clock defined\n");
1971 clk_per = devm_clk_get(&pdev->dev, "per");
1973 dev_err(&pdev->dev, "no per clock defined\n");
1987 of_id = of_match_device(flexcan_of_match, &pdev->dev);
1999 dev_err(&pdev->dev, "CAN-FD mode doesn't work with FIFO mode!\n");
2003 dev = alloc_candev(sizeof(struct flexcan_priv), 1);
2004 if (!dev)
2007 platform_set_drvdata(pdev, dev);
2008 SET_NETDEV_DEV(dev, &pdev->dev);
2010 dev->netdev_ops = &flexcan_netdev_ops;
2011 dev->irq = irq;
2012 dev->flags |= IFF_ECHO;
2014 priv = netdev_priv(dev);
2016 if (of_property_read_bool(pdev->dev.of_node, "big-endian") ||
2025 priv->dev = &pdev->dev;
2049 pm_runtime_get_noresume(&pdev->dev);
2050 pm_runtime_set_active(&pdev->dev);
2051 pm_runtime_enable(&pdev->dev);
2053 err = register_flexcandev(dev);
2055 dev_err(&pdev->dev, "registering netdev failed\n");
2059 of_can_transceiver(dev);
2060 devm_can_led_init(dev);
2065 dev_dbg(&pdev->dev, "failed to setup stop-mode\n");
2071 pm_runtime_put_noidle(&pdev->dev);
2072 pm_runtime_disable(&pdev->dev);
2073 free_candev(dev);
2079 struct net_device *dev = platform_get_drvdata(pdev);
2081 device_set_wakeup_enable(&pdev->dev, false);
2082 device_set_wakeup_capable(&pdev->dev, false);
2083 unregister_flexcandev(dev);
2084 pm_runtime_disable(&pdev->dev);
2085 free_candev(dev);
2092 struct net_device *dev = dev_get_drvdata(device);
2093 struct flexcan_priv *priv = netdev_priv(dev);
2096 if (netif_running(dev)) {
2101 enable_irq_wake(dev->irq);
2106 err = flexcan_chip_stop(dev);
2114 netif_stop_queue(dev);
2115 netif_device_detach(dev);
2124 struct net_device *dev = dev_get_drvdata(device);
2125 struct flexcan_priv *priv = netdev_priv(dev);
2129 if (netif_running(dev)) {
2130 netif_device_attach(dev);
2131 netif_start_queue(dev);
2133 disable_irq_wake(dev->irq);
2142 err = flexcan_chip_start(dev);
2153 struct net_device *dev = dev_get_drvdata(device);
2154 struct flexcan_priv *priv = netdev_priv(dev);
2163 struct net_device *dev = dev_get_drvdata(device);
2164 struct flexcan_priv *priv = netdev_priv(dev);
2171 struct net_device *dev = dev_get_drvdata(device);
2172 struct flexcan_priv *priv = netdev_priv(dev);
2174 if (netif_running(dev)) {
2190 struct net_device *dev = dev_get_drvdata(device);
2191 struct flexcan_priv *priv = netdev_priv(dev);
2193 if (netif_running(dev)) {