Commit 0cc4f3bd authored by H Hartley Sweeten's avatar H Hartley Sweeten Committed by Greg Kroah-Hartman

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: default avatarH Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: default avatarIan Abbott <abbotti@mev.co.uk>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 8657fed8
...@@ -370,35 +370,30 @@ static void switch_page(struct comedi_device *dev, int page) ...@@ -370,35 +370,30 @@ static void switch_page(struct comedi_device *dev, int page)
outb(page << REG_PAGE_BITOFFSET, devpriv->asic_iobase + REG_PAGELOCK); outb(page << REG_PAGE_BITOFFSET, devpriv->asic_iobase + REG_PAGELOCK);
} }
static void init_asics(struct comedi_device *dev) static void pcmmio_reset(struct comedi_device *dev)
{ /* sets up an {
ASIC chip to defaults */
struct pcmmio_private *devpriv = dev->private; struct pcmmio_private *devpriv = dev->private;
int asic; unsigned long baseaddr = devpriv->asic_iobase;
int port, page;
for (asic = 0; asic < 1; ++asic) {
int port, page; switch_page(dev, 0); /* switch back to page 0 */
unsigned long baseaddr = devpriv->asic_iobase;
/* first, clear all the DIO port bits */
switch_page(dev, 0); /* switch back to page 0 */ for (port = 0; port < PORTS_PER_ASIC; ++port)
outb(0, baseaddr + REG_PORT0 + port);
/* first, clear all the DIO port bits */
for (port = 0; port < PORTS_PER_ASIC; ++port) /* Next, clear all the paged registers for each page */
outb(0, baseaddr + REG_PORT0 + port); for (page = 1; page < NUM_PAGES; ++page) {
int reg;
/* Next, clear all the paged registers for each page */ /* now clear all the paged registers */
for (page = 1; page < NUM_PAGES; ++page) { switch_page(dev, page);
int reg; for (reg = FIRST_PAGED_REG;
/* now clear all the paged registers */ reg < FIRST_PAGED_REG + NUM_PAGED_REGS; ++reg)
switch_page(dev, page); outb(0, baseaddr + reg);
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);
} }
/* switch back to default page 0 */
switch_page(dev, 0);
} }
static void pcmmio_stop_intr(struct comedi_device *dev, 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) ...@@ -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]) { if (it->options[1]) {
ret = request_irq(it->options[1], interrupt_pcmmio, 0, ret = request_irq(it->options[1], interrupt_pcmmio, 0,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment