#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/types.h>
#include <linux/interrupt.h>
#include <linux/errno.h>
#include <linux/ethtool.h>
#include <linux/netdevice.h>
#include <linux/platform_device.h>
#include <linux/can/dev.h>
#include <linux/clk.h>
#include <linux/of.h>
#define RCAR_CAN_DRV_NAME …
enum CLKR { … };
#define RCAR_SUPPORTED_CLOCKS …
#define RCAR_CAN_N_MBX …
#define RCAR_CAN_RX_FIFO_MBX …
#define RCAR_CAN_TX_FIFO_MBX …
#define RCAR_CAN_FIFO_DEPTH …
struct rcar_can_mbox_regs { … };
struct rcar_can_regs { … };
struct rcar_can_priv { … };
static const struct can_bittiming_const rcar_can_bittiming_const = …;
#define RCAR_CAN_CTLR_BOM …
#define RCAR_CAN_CTLR_BOM_ENT …
#define RCAR_CAN_CTLR_SLPM …
#define RCAR_CAN_CTLR_CANM …
#define RCAR_CAN_CTLR_CANM_HALT …
#define RCAR_CAN_CTLR_CANM_RESET …
#define RCAR_CAN_CTLR_CANM_FORCE_RESET …
#define RCAR_CAN_CTLR_MLM …
#define RCAR_CAN_CTLR_IDFM …
#define RCAR_CAN_CTLR_IDFM_MIXED …
#define RCAR_CAN_CTLR_MBM …
#define RCAR_CAN_STR_RSTST …
#define RCAR_CAN_FIDCR_IDE …
#define RCAR_CAN_FIDCR_RTR …
#define RCAR_CAN_RFCR_RFEST …
#define RCAR_CAN_RFCR_RFE …
#define RCAR_CAN_TFCR_TFUST …
#define RCAR_CAN_TFCR_TFUST_SHIFT …
#define RCAR_CAN_TFCR_TFE …
#define RCAR_CAN_N_RX_MKREGS1 …
#define RCAR_CAN_N_RX_MKREGS2 …
#define RCAR_CAN_BCR_TSEG1(x) …
#define RCAR_CAN_BCR_BPR(x) …
#define RCAR_CAN_BCR_SJW(x) …
#define RCAR_CAN_BCR_TSEG2(x) …
#define RCAR_CAN_IDE …
#define RCAR_CAN_RTR …
#define RCAR_CAN_SID_SHIFT …
#define RCAR_CAN_MIER1_RXFIE …
#define RCAR_CAN_MIER1_TXFIE …
#define RCAR_CAN_IER_ERSIE …
#define RCAR_CAN_IER_RXFIE …
#define RCAR_CAN_IER_TXFIE …
#define RCAR_CAN_ISR_ERSF …
#define RCAR_CAN_ISR_RXFF …
#define RCAR_CAN_ISR_TXFF …
#define RCAR_CAN_EIER_BLIE …
#define RCAR_CAN_EIER_OLIE …
#define RCAR_CAN_EIER_ORIE …
#define RCAR_CAN_EIER_BORIE …
#define RCAR_CAN_EIER_BOEIE …
#define RCAR_CAN_EIER_EPIE …
#define RCAR_CAN_EIER_EWIE …
#define RCAR_CAN_EIER_BEIE …
#define RCAR_CAN_EIFR_BLIF …
#define RCAR_CAN_EIFR_OLIF …
#define RCAR_CAN_EIFR_ORIF …
#define RCAR_CAN_EIFR_BORIF …
#define RCAR_CAN_EIFR_BOEIF …
#define RCAR_CAN_EIFR_EPIF …
#define RCAR_CAN_EIFR_EWIF …
#define RCAR_CAN_EIFR_BEIF …
#define RCAR_CAN_ECSR_EDPM …
#define RCAR_CAN_ECSR_ADEF …
#define RCAR_CAN_ECSR_BE0F …
#define RCAR_CAN_ECSR_BE1F …
#define RCAR_CAN_ECSR_CEF …
#define RCAR_CAN_ECSR_AEF …
#define RCAR_CAN_ECSR_FEF …
#define RCAR_CAN_ECSR_SEF …
#define RCAR_CAN_NAPI_WEIGHT …
#define MAX_STR_READS …
static void tx_failure_cleanup(struct net_device *ndev)
{ … }
static void rcar_can_error(struct net_device *ndev)
{ … }
static void rcar_can_tx_done(struct net_device *ndev)
{ … }
static irqreturn_t rcar_can_interrupt(int irq, void *dev_id)
{ … }
static void rcar_can_set_bittiming(struct net_device *dev)
{ … }
static void rcar_can_start(struct net_device *ndev)
{ … }
static int rcar_can_open(struct net_device *ndev)
{ … }
static void rcar_can_stop(struct net_device *ndev)
{ … }
static int rcar_can_close(struct net_device *ndev)
{ … }
static netdev_tx_t rcar_can_start_xmit(struct sk_buff *skb,
struct net_device *ndev)
{ … }
static const struct net_device_ops rcar_can_netdev_ops = …;
static const struct ethtool_ops rcar_can_ethtool_ops = …;
static void rcar_can_rx_pkt(struct rcar_can_priv *priv)
{ … }
static int rcar_can_rx_poll(struct napi_struct *napi, int quota)
{ … }
static int rcar_can_do_set_mode(struct net_device *ndev, enum can_mode mode)
{ … }
static int rcar_can_get_berr_counter(const struct net_device *dev,
struct can_berr_counter *bec)
{ … }
static const char * const clock_names[] = …;
static int rcar_can_probe(struct platform_device *pdev)
{ … }
static void rcar_can_remove(struct platform_device *pdev)
{ … }
static int __maybe_unused rcar_can_suspend(struct device *dev)
{ … }
static int __maybe_unused rcar_can_resume(struct device *dev)
{ … }
static SIMPLE_DEV_PM_OPS(rcar_can_pm_ops, rcar_can_suspend, rcar_can_resume);
static const struct of_device_id rcar_can_of_table[] __maybe_unused = …;
MODULE_DEVICE_TABLE(of, rcar_can_of_table);
static struct platform_driver rcar_can_driver = …;
module_platform_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_ALIAS(…) …;