diff --git a/drivers/staging/comedi/drivers/s526.c b/drivers/staging/comedi/drivers/s526.c index c89f35227baf..888875ef88b4 100644 --- a/drivers/staging/comedi/drivers/s526.c +++ b/drivers/staging/comedi/drivers/s526.c @@ -197,7 +197,6 @@ static const struct s526_board s526_boards[] = { } }; -#define ADDR_REG(reg) (dev->iobase + (reg)) #define ADDR_CHAN_REG(reg, chan) (dev->iobase + (reg) + (chan) * 8) /* this structure is for data unique to this hardware driver. If @@ -548,8 +547,8 @@ static int s526_ai_insn_config(struct comedi_device *dev, * INSN_READ handler. */ /* Enable ADC interrupt */ - outw(ISR_ADC_DONE, ADDR_REG(REG_IER)); -/* printk("s526: ADC current value: 0x%04x\n", inw(ADDR_REG(REG_ADC))); */ + outw(ISR_ADC_DONE, dev->iobase + REG_IER); +/* printk("s526: ADC current value: 0x%04x\n", inw(dev->iobase + REG_ADC)); */ devpriv->s526_ai_config = (data[0] & 0x3FF) << 5; if (data[1] > 0) devpriv->s526_ai_config |= 0x8000; /* set the delay */ @@ -581,16 +580,16 @@ static int s526_ai_rinsn(struct comedi_device *dev, struct comedi_subdevice *s, /* convert n samples */ for (n = 0; n < insn->n; n++) { /* trigger conversion */ - outw(value, ADDR_REG(REG_ADC)); + outw(value, dev->iobase + REG_ADC); /* printk("s526: Wrote 0x%04x to ADC\n", value); */ -/* printk("s526: ADC reg=0x%04x\n", inw(ADDR_REG(REG_ADC))); */ +/* printk("s526: ADC reg=0x%04x\n", inw(dev->iobase + REG_ADC)); */ #define TIMEOUT 100 /* wait for conversion to end */ for (i = 0; i < TIMEOUT; i++) { - status = inw(ADDR_REG(REG_ISR)); + status = inw(dev->iobase + REG_ISR); if (status & ISR_ADC_DONE) { - outw(ISR_ADC_DONE, ADDR_REG(REG_ISR)); + outw(ISR_ADC_DONE, dev->iobase + REG_ISR); break; } } @@ -598,12 +597,12 @@ static int s526_ai_rinsn(struct comedi_device *dev, struct comedi_subdevice *s, /* printk() should be used instead of printk() * whenever the code can be called from real-time. */ printk(KERN_ERR "s526: ADC(0x%04x) timeout\n", - inw(ADDR_REG(REG_ISR))); + inw(dev->iobase + REG_ISR)); return -ETIMEDOUT; } /* read data */ - d = inw(ADDR_REG(REG_ADD)); + d = inw(dev->iobase + REG_ADD); /* printk("AI[%d]=0x%04x\n", n, (unsigned short)(d & 0xFFFF)); */ /* munge data */ @@ -625,7 +624,7 @@ static int s526_ao_winsn(struct comedi_device *dev, struct comedi_subdevice *s, /* printk("s526_ao_winsn\n"); */ val = chan << 1; /* outw(val, dev->iobase + REG_DAC); */ - outw(val, ADDR_REG(REG_DAC)); + outw(val, dev->iobase + REG_DAC); /* Writing a list of values to an AO channel is probably not * very useful, but that's how the interface is defined. */ @@ -635,10 +634,11 @@ static int s526_ao_winsn(struct comedi_device *dev, struct comedi_subdevice *s, * outw(data[i], dev->iobase + REG_ADD); */ /* write the data to preload register */ - outw(data[i], ADDR_REG(REG_ADD)); + outw(data[i], dev->iobase + REG_ADD); devpriv->ao_readback[chan] = data[i]; /* outw(val + 1, dev->iobase + REG_DAC); starts the D/A conversion. */ - outw(val + 1, ADDR_REG(REG_DAC)); /*starts the D/A conversion.*/ + /* starts the D/A conversion */ + outw(val + 1, dev->iobase + REG_DAC); } /* return the number of samples read/written */ @@ -675,12 +675,12 @@ static int s526_dio_insn_bits(struct comedi_device *dev, s->state &= ~data[0]; s->state |= data[0] & data[1]; /* Write out the new digital output lines */ - outw(s->state, ADDR_REG(REG_DIO)); + outw(s->state, dev->iobase + REG_DIO); } /* on return, data[1] contains the value of the digital * input and output lines. */ - data[1] = inw(ADDR_REG(REG_DIO)) & 0xFF; /* low 8 bits are the data */ + data[1] = inw(dev->iobase + REG_DIO) & 0xff; /* or we could just return the software copy of the output values if * it was a purely digital output subdevice */ /* data[1]=s->state & 0xFF; */ @@ -720,7 +720,7 @@ static int s526_dio_insn_config(struct comedi_device *dev, default: return -EINVAL; } - outw(s->state, ADDR_REG(REG_DIO)); + outw(s->state, dev->iobase + REG_DIO); return 1; } @@ -750,8 +750,8 @@ static int s526_attach(struct comedi_device *dev, struct comedi_devconfig *it) /*** make it a little quieter, exw, 8/29/06 for (i = 0; i < S526_NUM_PORTS; i++) { - printk("0x%02x: 0x%04x\n", ADDR_REG(s526_ports[i]), - inw(ADDR_REG(s526_ports[i]))); + printk("0x%02x: 0x%04x\n", dev->iobase + s526_ports[i], + inw(dev->iobase + s526_ports[i])); } ***/ @@ -907,7 +907,8 @@ static int s526_attach(struct comedi_device *dev, struct comedi_devconfig *it) for (i = 0; i < S526_NUM_PORTS; i++) { printk(KERN_INFO "0x%02lx: 0x%04x\n", - ADDR_REG(s526_ports[i]), inw(ADDR_REG(s526_ports[i]))); + dev->iobase + s526_ports[i], + inw(dev->iobase + s526_ports[i])); } return 1; }