[PATCH 03/13] staging: comedi: adv_pci1724: use dev->iobase
Ian Abbott
abbotti at mev.co.uk
Tue Feb 19 13:09:10 UTC 2013
The main registers for this device are a port I/O region from PCI BAR 2
and that is the only device register region used by this driver. The
driver has a `main_iobase` member in its private device data structure
`struct adv_pci1724_private` to hold the base address of this I/O
region, but as the `iobase` member of the `struct comedi_device` is
going spare we can use that instead. Do so and get rid of the
`main_iobase` member from the private device data.
Signed-off-by: Ian Abbott <abbotti at mev.co.uk>
Cc: Frank Mori Hess <fmh6jj at gmail.com>
---
drivers/staging/comedi/drivers/adv_pci1724.c | 29 ++++++++++------------------
1 file changed, 10 insertions(+), 19 deletions(-)
diff --git a/drivers/staging/comedi/drivers/adv_pci1724.c b/drivers/staging/comedi/drivers/adv_pci1724.c
index e9796f2..b89637f 100644
--- a/drivers/staging/comedi/drivers/adv_pci1724.c
+++ b/drivers/staging/comedi/drivers/adv_pci1724.c
@@ -138,7 +138,6 @@ MODULE_DEVICE_TABLE(pci, adv_pci1724_pci_table);
/* this structure is for data unique to this hardware driver. */
struct adv_pci1724_private {
- resource_size_t main_iobase;
unsigned board_id; /* 4 bit number settable via dip switches on board */
int ao_value[NUM_AO_CHANNELS];
int offset_value[NUM_AO_CHANNELS];
@@ -286,10 +285,8 @@ static int adv_pci1724_auto_attach(struct comedi_device *dev,
if (retval)
return retval;
- priv(dev)->main_iobase = pci_resource_start(pcidev, 2);
-
- priv(dev)->board_id = inl(priv(dev)->main_iobase + BOARD_ID_REG) &
- BOARD_ID_MASK;
+ dev->iobase = pci_resource_start(pcidev, 2);
+ priv(dev)->board_id = inl(dev->iobase + BOARD_ID_REG) & BOARD_ID_MASK;
retval = setup_subdevices(dev);
if (retval < 0)
@@ -304,13 +301,9 @@ static void adv_pci1724_detach(struct comedi_device *dev)
{
struct pci_dev *pcidev = comedi_to_pci_dev(dev);
- if (priv(dev)) {
- if (pcidev) {
- if (priv(dev)->main_iobase) {
- comedi_pci_disable(pcidev);
- dev_info(dev->class_dev, "detached\n");
- }
- }
+ if (pcidev && dev->iobase) {
+ comedi_pci_disable(pcidev);
+ dev_info(dev->class_dev, "detached\n");
}
}
@@ -320,10 +313,8 @@ static int wait_for_dac_idle(struct comedi_device *dev)
int i;
for (i = 0; i < timeout; ++i) {
- if ((inl(priv(dev)->main_iobase + SYNC_OUTPUT_REG) &
- DAC_BUSY) == 0) {
+ if ((inl(dev->iobase + SYNC_OUTPUT_REG) & DAC_BUSY) == 0)
break;
- }
udelay(1);
}
if (i == timeout) {
@@ -346,7 +337,7 @@ static int set_dac(struct comedi_device *dev, unsigned mode, unsigned channel,
control_bits = mode;
control_bits |= dac_channel_and_group_select_bits(channel);
control_bits |= data & DAC_DATA_MASK;
- outl(control_bits, priv(dev)->main_iobase + DAC_CONTROL_REG);
+ outl(control_bits, dev->iobase + DAC_CONTROL_REG);
return 0;
}
@@ -358,7 +349,7 @@ static int ao_winsn(struct comedi_device *dev, struct comedi_subdevice *s,
int i;
/* turn off synchronous mode */
- outl(0, priv(dev)->main_iobase + SYNC_OUTPUT_REG);
+ outl(0, dev->iobase + SYNC_OUTPUT_REG);
for (i = 0; i < insn->n; ++i) {
retval = set_dac(dev, DAC_NORMAL_MODE, channel, data[i]);
@@ -394,7 +385,7 @@ static int offset_write_insn(struct comedi_device *dev,
int i;
/* turn off synchronous mode */
- outl(0, priv(dev)->main_iobase + SYNC_OUTPUT_REG);
+ outl(0, dev->iobase + SYNC_OUTPUT_REG);
for (i = 0; i < insn->n; ++i) {
retval = set_dac(dev, DAC_OFFSET_MODE, channel, data[i]);
@@ -431,7 +422,7 @@ static int gain_write_insn(struct comedi_device *dev,
int i;
/* turn off synchronous mode */
- outl(0, priv(dev)->main_iobase + SYNC_OUTPUT_REG);
+ outl(0, dev->iobase + SYNC_OUTPUT_REG);
for (i = 0; i < insn->n; ++i) {
retval = set_dac(dev, DAC_GAIN_MODE, channel, data[i]);
--
1.8.1.2
More information about the devel
mailing list