summaryrefslogtreecommitdiff
path: root/drivers/staging/comedi
diff options
context:
space:
mode:
authorH Hartley Sweeten <hsweeten@visionengravers.com>2013-12-10 02:30:55 +0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-12-17 22:02:12 +0400
commit0cc4f3bd5f562a391375a2187e411b6a037b29ce (patch)
tree9a8c5d5a924075df4fc01f184e11f7abb1caf353 /drivers/staging/comedi
parent8657fed873905aaf4267e96c8381ece77927caf0 (diff)
downloadlinux-0cc4f3bd5f562a391375a2187e411b6a037b29ce.tar.xz
staging: comedi: pcmmio: tidy up init_asics()
Rename this function so it has namespace associated with the driver. The board supported by this driver only has one WinSystems WS16C48 asic on it that handles the digital i/o. Remove the unnecessary for () loop that would reset multiple asics. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Reviewed-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/comedi')
-rw-r--r--drivers/staging/comedi/drivers/pcmmio.c51
1 files changed, 23 insertions, 28 deletions
diff --git a/drivers/staging/comedi/drivers/pcmmio.c b/drivers/staging/comedi/drivers/pcmmio.c
index 3e3f4c9b8877..af06062c15d3 100644
--- a/drivers/staging/comedi/drivers/pcmmio.c
+++ b/drivers/staging/comedi/drivers/pcmmio.c
@@ -370,35 +370,30 @@ static void switch_page(struct comedi_device *dev, int page)
outb(page << REG_PAGE_BITOFFSET, devpriv->asic_iobase + REG_PAGELOCK);
}
-static void init_asics(struct comedi_device *dev)
-{ /* sets up an
- ASIC chip to defaults */
+static void pcmmio_reset(struct comedi_device *dev)
+{
struct pcmmio_private *devpriv = dev->private;
- int asic;
-
- for (asic = 0; asic < 1; ++asic) {
- int port, page;
- unsigned long baseaddr = devpriv->asic_iobase;
-
- switch_page(dev, 0); /* switch back to page 0 */
-
- /* first, clear all the DIO port bits */
- for (port = 0; port < PORTS_PER_ASIC; ++port)
- outb(0, baseaddr + REG_PORT0 + port);
-
- /* Next, clear all the paged registers for each page */
- for (page = 1; page < NUM_PAGES; ++page) {
- int reg;
- /* now clear all the paged registers */
- switch_page(dev, page);
- for (reg = FIRST_PAGED_REG;
- reg < FIRST_PAGED_REG + NUM_PAGED_REGS; ++reg)
- outb(0, baseaddr + reg);
- }
-
- /* switch back to default page 0 */
- switch_page(dev, 0);
+ unsigned long baseaddr = devpriv->asic_iobase;
+ int port, page;
+
+ switch_page(dev, 0); /* switch back to page 0 */
+
+ /* first, clear all the DIO port bits */
+ for (port = 0; port < PORTS_PER_ASIC; ++port)
+ outb(0, baseaddr + REG_PORT0 + port);
+
+ /* Next, clear all the paged registers for each page */
+ for (page = 1; page < NUM_PAGES; ++page) {
+ int reg;
+ /* now clear all the paged registers */
+ switch_page(dev, page);
+ for (reg = FIRST_PAGED_REG;
+ reg < FIRST_PAGED_REG + NUM_PAGED_REGS; ++reg)
+ outb(0, baseaddr + reg);
}
+
+ /* switch back to default page 0 */
+ switch_page(dev, 0);
}
static void pcmmio_stop_intr(struct comedi_device *dev,
@@ -1073,7 +1068,7 @@ static int pcmmio_attach(struct comedi_device *dev, struct comedi_devconfig *it)
}
- init_asics(dev); /* clear out all the registers, basically */
+ pcmmio_reset(dev);
if (it->options[1]) {
ret = request_irq(it->options[1], interrupt_pcmmio, 0,