#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/netdevice.h>
#include <linux/pci.h>
#include <linux/can/dev.h>
#include "c_can.h"
#define PCI_DEVICE_ID_PCH_CAN …
#define PCH_PCI_SOFT_RESET …
enum c_can_pci_reg_align { … };
struct c_can_pci_data { … };
static u16 c_can_pci_read_reg_aligned_to_16bit(const struct c_can_priv *priv,
enum reg index)
{ … }
static void c_can_pci_write_reg_aligned_to_16bit(const struct c_can_priv *priv,
enum reg index, u16 val)
{ … }
static u16 c_can_pci_read_reg_aligned_to_32bit(const struct c_can_priv *priv,
enum reg index)
{ … }
static void c_can_pci_write_reg_aligned_to_32bit(const struct c_can_priv *priv,
enum reg index, u16 val)
{ … }
static u16 c_can_pci_read_reg_32bit(const struct c_can_priv *priv,
enum reg index)
{ … }
static void c_can_pci_write_reg_32bit(const struct c_can_priv *priv,
enum reg index, u16 val)
{ … }
static u32 c_can_pci_read_reg32(const struct c_can_priv *priv, enum reg index)
{ … }
static void c_can_pci_write_reg32(const struct c_can_priv *priv, enum reg index,
u32 val)
{ … }
static void c_can_pci_reset_pch(const struct c_can_priv *priv, bool enable)
{ … }
static int c_can_pci_probe(struct pci_dev *pdev,
const struct pci_device_id *ent)
{ … }
static void c_can_pci_remove(struct pci_dev *pdev)
{ … }
static const struct c_can_pci_data c_can_sta2x11 = …;
static const struct c_can_pci_data c_can_pch = …;
#define C_CAN_ID(_vend, _dev, _driverdata) …
static const struct pci_device_id c_can_pci_tbl[] = …;
static struct pci_driver c_can_pci_driver = …;
module_pci_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_DEVICE_TABLE(pci, c_can_pci_tbl);