staging: comedi: pcl724: tidy up pcl724_attach()

Consolidate the special handling of the 'hoard->can_have96' flag.
This flag overrides the iorange and n_subdevices for the PCL-724
board when it is used in a 96 DIO configuration.

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>
This commit is contained in:
H Hartley Sweeten 2013-06-10 10:16:15 -07:00 committed by Greg Kroah-Hartman
parent 84f7db9d8f
commit 57aade1dae
1 changed files with 14 additions and 10 deletions

View File

@ -111,27 +111,31 @@ static int pcl724_8255mapped_io(int dir, int port, int data,
}
}
static int pcl724_attach(struct comedi_device *dev, struct comedi_devconfig *it)
static int pcl724_attach(struct comedi_device *dev,
struct comedi_devconfig *it)
{
const struct pcl724_board *board = comedi_board(dev);
struct comedi_subdevice *s;
unsigned long iobase;
unsigned int iorange;
int ret, i, n_subdevices;
int n_subdevices;
int ret;
int i;
iorange = board->io_range;
if ((board->can_have96) &&
((it->options[1] == 1) || (it->options[1] == 96)))
iorange = 0x10; /* PCL-724 in 96 DIO configuration */
n_subdevices = board->numofports;
/* Handle PCL-724 in 96 DIO configuration */
if (board->can_have96 &&
(it->options[1] == 1 || it->options[1] == 96)) {
iorange = 0x10;
n_subdevices = 4;
}
ret = comedi_request_region(dev, it->options[0], iorange);
if (ret)
return ret;
n_subdevices = board->numofports;
if ((board->can_have96) && ((it->options[1] == 1)
|| (it->options[1] == 96)))
n_subdevices = 4; /* PCL-724 in 96 DIO configuration */
ret = comedi_alloc_subdevices(dev, n_subdevices);
if (ret)
return ret;