#include <linux/interrupt.h>
#include <linux/module.h>
#include <linux/pci.h>
#include <linux/delay.h>
#include <linux/mISDNhw.h>
#include <linux/slab.h>
#include "ipac.h"
#define INFINEON_REV …
static int inf_cnt;
static u32 debug;
static u32 irqloops = …;
enum inf_types { … };
enum addr_mode { … };
struct inf_cinfo { … };
struct _ioaddr { … };
struct _iohandle { … };
struct inf_hw { … };
#define PCI_SUBVENDOR_HST_SAPHIR3 …
#define PCI_SUBVENDOR_SEDLBAUER_PCI …
#define PCI_SUB_ID_SEDLBAUER …
static struct pci_device_id infineon_ids[] = …;
MODULE_DEVICE_TABLE(pci, infineon_ids);
#define DIVA_HSCX_PORT …
#define DIVA_HSCX_ALE …
#define DIVA_ISAC_PORT …
#define DIVA_ISAC_ALE …
#define DIVA_PCI_CTRL …
#define DIVA_IRQ_BIT …
#define DIVA_RESET_BIT …
#define DIVA_EEPROM_CLK …
#define DIVA_LED_A …
#define DIVA_LED_B …
#define DIVA_IRQ_CLR …
#define PITA_ICR_REG …
#define PITA_INT0_STATUS …
#define PITA_MISC_REG …
#define PITA_PARA_SOFTRESET …
#define PITA_SER_SOFTRESET …
#define PITA_PARA_MPX_MODE …
#define PITA_INT0_ENABLE …
#define TIGER_RESET_ADDR …
#define TIGER_EXTERN_RESET …
#define TIGER_AUX_CTRL …
#define TIGER_AUX_DATA …
#define TIGER_AUX_IRQMASK …
#define TIGER_AUX_STATUS …
#define TIGER_IOMASK …
#define TIGER_IRQ_BIT …
#define TIGER_IPAC_ALE …
#define TIGER_IPAC_PORT …
#define ELSA_IRQ_ADDR …
#define ELSA_IRQ_MASK …
#define QS1000_IRQ_OFF …
#define QS3000_IRQ_OFF …
#define QS1000_IRQ_ON …
#define QS3000_IRQ_ON …
#define NICCY_ISAC_PORT …
#define NICCY_HSCX_PORT …
#define NICCY_ISAC_ALE …
#define NICCY_HSCX_ALE …
#define NICCY_IRQ_CTRL_REG …
#define NICCY_IRQ_ENABLE …
#define NICCY_IRQ_DISABLE …
#define NICCY_IRQ_BIT …
#define SCT_PLX_IRQ_ADDR …
#define SCT_PLX_RESET_ADDR …
#define SCT_PLX_IRQ_ENABLE …
#define SCT_PLX_RESET_BIT …
#define GAZEL_IPAC_DATA_PORT …
#define GAZEL_CNTRL …
#define GAZEL_RESET …
#define GAZEL_RESET_9050 …
#define GAZEL_INCSR …
#define GAZEL_ISAC_EN …
#define GAZEL_INT_ISAC …
#define GAZEL_HSCX_EN …
#define GAZEL_INT_HSCX …
#define GAZEL_PCI_EN …
#define GAZEL_IPAC_EN …
static LIST_HEAD(Cards);
static DEFINE_RWLOCK(card_lock);
static void
_set_debug(struct inf_hw *card)
{ … }
static int
set_debug(const char *val, const struct kernel_param *kp)
{ … }
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
MODULE_VERSION(…);
module_param_call(…);
MODULE_PARM_DESC(…) …;
module_param(irqloops, uint, S_IRUGO | S_IWUSR);
MODULE_PARM_DESC(…) …;
IOFUNC_IO(…) …
IOFUNC_IO(…) …
IOFUNC_IND(…) …
IOFUNC_IND(…) …
IOFUNC_MEMIO(…) …
IOFUNC_MEMIO(…) …
static irqreturn_t
diva_irq(int intno, void *dev_id)
{ … }
static irqreturn_t
diva20x_irq(int intno, void *dev_id)
{ … }
static irqreturn_t
tiger_irq(int intno, void *dev_id)
{ … }
static irqreturn_t
elsa_irq(int intno, void *dev_id)
{ … }
static irqreturn_t
niccy_irq(int intno, void *dev_id)
{ … }
static irqreturn_t
gazel_irq(int intno, void *dev_id)
{ … }
static irqreturn_t
ipac_irq(int intno, void *dev_id)
{ … }
static void
enable_hwirq(struct inf_hw *hw)
{ … }
static void
disable_hwirq(struct inf_hw *hw)
{ … }
static void
ipac_chip_reset(struct inf_hw *hw)
{ … }
static void
reset_inf(struct inf_hw *hw)
{ … }
static int
inf_ctrl(struct inf_hw *hw, u32 cmd, u_long arg)
{ … }
static int
init_irq(struct inf_hw *hw)
{ … }
static void
release_io(struct inf_hw *hw)
{ … }
static int
setup_io(struct inf_hw *hw)
{ … }
static void
release_card(struct inf_hw *card) { … }
static int
setup_instance(struct inf_hw *card)
{ … }
static const struct inf_cinfo inf_card_info[] = …;
static const struct inf_cinfo *
get_card_info(enum inf_types typ)
{ … }
static int
inf_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
{ … }
static void
inf_remove(struct pci_dev *pdev)
{ … }
static struct pci_driver infineon_driver = …;
static int __init
infineon_init(void)
{ … }
static void __exit
infineon_cleanup(void)
{ … }
module_init(…) …;
module_exit(infineon_cleanup);