summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH Hartley Sweeten <hsweeten@visionengravers.com>2014-02-17 14:27:00 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-02-18 11:53:54 -0800
commit9c06c4e39671ded54036075eaf0aae9404954b06 (patch)
treebaba579cbf13676feccbde8478868826ad4a93cc
parent1ddd22c0dfdc1f03e22acae71a39b6be347568be (diff)
staging: comedi: pcl818: all board types have analog inputs
All the boards supported by this driver have 16 single-ended analog input channels. The boards can also be configued to give 8 differential inputs. Remove the 'n_aichan_se' and 'n_aichan_diff' members from the boardinfo and refactor pcl818_attach(). 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>
-rw-r--r--drivers/staging/comedi/drivers/pcl818.c60
1 files changed, 20 insertions, 40 deletions
diff --git a/drivers/staging/comedi/drivers/pcl818.c b/drivers/staging/comedi/drivers/pcl818.c
index 000df80a689d..4f280268fd6c 100644
--- a/drivers/staging/comedi/drivers/pcl818.c
+++ b/drivers/staging/comedi/drivers/pcl818.c
@@ -259,8 +259,6 @@ static const struct comedi_lrange range718_unipolar1 = {
struct pcl818_board {
const char *name;
int n_ranges;
- int n_aichan_se;
- int n_aichan_diff;
unsigned int ns_min;
int n_aochan;
const struct comedi_lrange *ai_range_type;
@@ -276,8 +274,6 @@ static const struct pcl818_board boardtypes[] = {
{
.name = "pcl818l",
.n_ranges = 4,
- .n_aichan_se = 16,
- .n_aichan_diff = 8,
.ns_min = 25000,
.n_aochan = 1,
.ai_range_type = &range_pcl818l_l_ai,
@@ -289,8 +285,6 @@ static const struct pcl818_board boardtypes[] = {
}, {
.name = "pcl818h",
.n_ranges = 9,
- .n_aichan_se = 16,
- .n_aichan_diff = 8,
.ns_min = 10000,
.n_aochan = 1,
.ai_range_type = &range_pcl818h_ai,
@@ -302,8 +296,6 @@ static const struct pcl818_board boardtypes[] = {
}, {
.name = "pcl818hd",
.n_ranges = 9,
- .n_aichan_se = 16,
- .n_aichan_diff = 8,
.ns_min = 10000,
.n_aochan = 1,
.ai_range_type = &range_pcl818h_ai,
@@ -316,8 +308,6 @@ static const struct pcl818_board boardtypes[] = {
}, {
.name = "pcl818hg",
.n_ranges = 12,
- .n_aichan_se = 16,
- .n_aichan_diff = 8,
.ns_min = 10000,
.n_aochan = 1,
.ai_range_type = &range_pcl818hg_ai,
@@ -330,8 +320,6 @@ static const struct pcl818_board boardtypes[] = {
}, {
.name = "pcl818",
.n_ranges = 9,
- .n_aichan_se = 16,
- .n_aichan_diff = 8,
.ns_min = 10000,
.n_aochan = 2,
.ai_range_type = &range_pcl818h_ai,
@@ -343,8 +331,6 @@ static const struct pcl818_board boardtypes[] = {
}, {
.name = "pcl718",
.n_ranges = 1,
- .n_aichan_se = 16,
- .n_aichan_diff = 8,
.ns_min = 16000,
.n_aochan = 2,
.ai_range_type = &range_unipolar5,
@@ -355,8 +341,6 @@ static const struct pcl818_board boardtypes[] = {
}, {
.name = "pcm3718",
.n_ranges = 9,
- .n_aichan_se = 16,
- .n_aichan_diff = 8,
.ns_min = 10000,
.ai_range_type = &range_pcl818h_ai,
.IRQbits = 0x00fc,
@@ -1414,31 +1398,27 @@ static int pcl818_attach(struct comedi_device *dev, struct comedi_devconfig *it)
return ret;
s = &dev->subdevices[0];
- if (!board->n_aichan_se) {
- s->type = COMEDI_SUBD_UNUSED;
+ s->type = COMEDI_SUBD_AI;
+ s->subdev_flags = SDF_READABLE;
+ if (check_single_ended(dev->iobase)) {
+ s->n_chan = 16;
+ s->subdev_flags |= SDF_COMMON | SDF_GROUND;
} else {
- s->type = COMEDI_SUBD_AI;
- s->subdev_flags = SDF_READABLE;
- if (check_single_ended(dev->iobase)) {
- s->n_chan = board->n_aichan_se;
- s->subdev_flags |= SDF_COMMON | SDF_GROUND;
- } else {
- s->n_chan = board->n_aichan_diff;
- s->subdev_flags |= SDF_DIFF;
- }
- s->maxdata = board->ai_maxdata;
-
- pcl818_set_ai_range_table(dev, s, it);
-
- s->insn_read = pcl818_ai_insn_read;
- if (dev->irq) {
- dev->read_subdev = s;
- s->subdev_flags |= SDF_CMD_READ;
- s->len_chanlist = s->n_chan;
- s->do_cmdtest = ai_cmdtest;
- s->do_cmd = ai_cmd;
- s->cancel = pcl818_ai_cancel;
- }
+ s->n_chan = 8;
+ s->subdev_flags |= SDF_DIFF;
+ }
+ s->maxdata = board->ai_maxdata;
+
+ pcl818_set_ai_range_table(dev, s, it);
+
+ s->insn_read = pcl818_ai_insn_read;
+ if (dev->irq) {
+ dev->read_subdev = s;
+ s->subdev_flags |= SDF_CMD_READ;
+ s->len_chanlist = s->n_chan;
+ s->do_cmdtest = ai_cmdtest;
+ s->do_cmd = ai_cmd;
+ s->cancel = pcl818_ai_cancel;
}
s = &dev->subdevices[1];