static int __init smsc_superio_flat(const smsc_chip_t *chips, unsigned short cfgbase, char *type) 
static int __init smsc_superio_flat(const struct smsc_chip *chips, unsigned short cfgbase, char *type) 
static int __init smsc_superio_flat(const smsc_chip_t *chips, unsigned short cfgbase, char *type){	unsigned short firbase, sirbase;	u8 mode, dma, irq;	int ret = -ENODEV;	IRDA_DEBUG(1, "%s\n", __FUNCTION__);	if (smsc_ircc_probe(cfgbase, SMSCSIOFLAT_DEVICEID_REG, chips, type) == NULL)		return ret;	outb(SMSCSIOFLAT_UARTMODE0C_REG, cfgbase);	mode = inb(cfgbase + 1);	/*printk(KERN_WARNING "%s(): mode: 0x%02x\n", __FUNCTION__, mode);*/	if (!(mode & SMSCSIOFLAT_UART2MODE_VAL_IRDA))		IRDA_WARNING("%s(): IrDA not enabled\n", __FUNCTION__);	outb(SMSCSIOFLAT_UART2BASEADDR_REG, cfgbase);	sirbase = inb(cfgbase + 1) << 2;	/* FIR iobase */	outb(SMSCSIOFLAT_FIRBASEADDR_REG, cfgbase);	firbase = inb(cfgbase + 1) << 3;	/* DMA */	outb(SMSCSIOFLAT_FIRDMASELECT_REG, cfgbase);	dma = inb(cfgbase + 1) & SMSCSIOFLAT_FIRDMASELECT_MASK;	/* IRQ */	outb(SMSCSIOFLAT_UARTIRQSELECT_REG, cfgbase);	irq = inb(cfgbase + 1) & SMSCSIOFLAT_UART2IRQSELECT_MASK;	IRDA_MESSAGE("%s(): fir: 0x%02x, sir: 0x%02x, dma: %02d, irq: %d, mode: 0x%02x\n", __FUNCTION__, firbase, sirbase, dma, irq, mode);	if (firbase && smsc_ircc_open(firbase, sirbase, dma, irq) == 0)		ret = 0;	/* Exit configuration */	outb(SMSCSIO_CFGEXITKEY, cfgbase);	return ret;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/b6158d23a60ac32fc08316703266b6ab14d9dc00/smsc-ircc2.c/clean/drivers/net/irda/smsc-ircc2.c