#include <linux/module.h>
#include <linux/init.h>
#include <linux/interrupt.h>
#include <linux/kernel.h>
#include <linux/types.h>
#include <linux/string.h>
#include <linux/ioport.h>
#include <linux/delay.h>
#include <linux/proc_fs.h>
#include <linux/spinlock.h>
#include <linux/pci.h>
#include <linux/blkdev.h>
#include <linux/dma-mapping.h>
#include <linux/slab.h>
#include <asm/io.h>
#include <scsi/scsi.h>
#include <scsi/scsi_cmnd.h>
#include <scsi/scsi_device.h>
#include <scsi/scsi_host.h>
#include "atp870u.h"
static const struct scsi_host_template atp870u_template;
static void send_s870(struct atp_unit *dev,unsigned char c);
static void atp_is(struct atp_unit *dev, unsigned char c, bool wide_chip,
unsigned char lvdmode);
static inline void atp_writeb_base(struct atp_unit *atp, u8 reg, u8 val)
{ … }
static inline void atp_writew_base(struct atp_unit *atp, u8 reg, u16 val)
{ … }
static inline void atp_writeb_io(struct atp_unit *atp, u8 channel, u8 reg, u8 val)
{ … }
static inline void atp_writew_io(struct atp_unit *atp, u8 channel, u8 reg, u16 val)
{ … }
static inline void atp_writeb_pci(struct atp_unit *atp, u8 channel, u8 reg, u8 val)
{ … }
static inline void atp_writel_pci(struct atp_unit *atp, u8 channel, u8 reg, u32 val)
{ … }
static inline u8 atp_readb_base(struct atp_unit *atp, u8 reg)
{ … }
static inline u16 atp_readw_base(struct atp_unit *atp, u8 reg)
{ … }
static inline u32 atp_readl_base(struct atp_unit *atp, u8 reg)
{ … }
static inline u8 atp_readb_io(struct atp_unit *atp, u8 channel, u8 reg)
{ … }
static inline u16 atp_readw_io(struct atp_unit *atp, u8 channel, u8 reg)
{ … }
static inline u8 atp_readb_pci(struct atp_unit *atp, u8 channel, u8 reg)
{ … }
static inline bool is880(struct atp_unit *atp)
{ … }
static inline bool is885(struct atp_unit *atp)
{ … }
static irqreturn_t atp870u_intr_handle(int irq, void *dev_id)
{ … }
static int atp870u_queuecommand_lck(struct scsi_cmnd *req_p)
{ … }
static DEF_SCSI_QCMD(atp870u_queuecommand)
static void send_s870(struct atp_unit *dev, unsigned char c)
{ … }
static unsigned char fun_scam(struct atp_unit *dev, unsigned short int *val)
{ … }
static void tscam(struct Scsi_Host *host, bool wide_chip, u8 scam_on)
{ … }
static void atp870u_free_tables(struct Scsi_Host *host)
{ … }
static int atp870u_init_tables(struct Scsi_Host *host)
{ … }
static void atp_set_host_id(struct atp_unit *atp, u8 c, u8 host_id)
{ … }
static void atp870_init(struct Scsi_Host *shpnt)
{ … }
static void atp880_init(struct Scsi_Host *shpnt)
{ … }
static void atp885_init(struct Scsi_Host *shpnt)
{ … }
static int atp870u_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
{ … }
static int atp870u_abort(struct scsi_cmnd * SCpnt)
{ … }
static const char *atp870u_info(struct Scsi_Host *notused)
{ … }
static int atp870u_show_info(struct seq_file *m, struct Scsi_Host *HBAptr)
{ … }
static int atp870u_biosparam(struct scsi_device *disk, struct block_device *dev,
sector_t capacity, int *ip)
{ … }
static void atp870u_remove (struct pci_dev *pdev)
{ … }
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
static const struct scsi_host_template atp870u_template = …;
static struct pci_device_id atp870u_id_table[] = …;
MODULE_DEVICE_TABLE(pci, atp870u_id_table);
static struct pci_driver atp870u_driver = …;
module_pci_driver(…) …;
static void atp_is(struct atp_unit *dev, unsigned char c, bool wide_chip,
unsigned char lvdmode)
{ … }