From: H Hartley Sweeten Date: Fri, 22 Mar 2013 16:43:45 +0000 (-0700) Subject: staging: comedi: ni_labpc: fix command support with analog input subdevice X-Git-Tag: v3.12-rc1~1000^2~468 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=9bffb75d7510c44ce227d940cd8663df911bc487;p=kernel%2Fkernel-generic.git staging: comedi: ni_labpc: fix command support with analog input subdevice An interrupt is required for command support to work with the analog input subdevice. When used with the ISA driver, enabling the interrupt is optional. Fix the subdevice init so that command support is only enabled if the irq is available. Add some whitespace to the subdevice init. Change the 'maxdata' value to hex as this is more common in comedi drivers. Signed-off-by: H Hartley Sweeten Cc: Ian Abbott Cc: Greg Kroah-Hartman Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/staging/comedi/drivers/ni_labpc.c b/drivers/staging/comedi/drivers/ni_labpc.c index b6bfb2b..ef9a206 100644 --- a/drivers/staging/comedi/drivers/ni_labpc.c +++ b/drivers/staging/comedi/drivers/ni_labpc.c @@ -1758,18 +1758,20 @@ int labpc_common_attach(struct comedi_device *dev, unsigned long iobase, /* analog input subdevice */ s = &dev->subdevices[0]; - dev->read_subdev = s; - s->type = COMEDI_SUBD_AI; - s->subdev_flags = - SDF_READABLE | SDF_GROUND | SDF_COMMON | SDF_DIFF | SDF_CMD_READ; - s->n_chan = 8; - s->len_chanlist = 8; - s->maxdata = (1 << 12) - 1; /* 12 bit resolution */ - s->range_table = board->ai_range_table; - s->do_cmd = labpc_ai_cmd; - s->do_cmdtest = labpc_ai_cmdtest; - s->insn_read = labpc_ai_insn_read; - s->cancel = labpc_cancel; + s->type = COMEDI_SUBD_AI; + s->subdev_flags = SDF_READABLE | SDF_GROUND | SDF_COMMON | SDF_DIFF; + s->n_chan = 8; + s->len_chanlist = 8; + s->maxdata = 0x0fff; + s->range_table = board->ai_range_table; + s->insn_read = labpc_ai_insn_read; + if (dev->irq) { + dev->read_subdev = s; + s->subdev_flags |= SDF_CMD_READ; + s->do_cmd = labpc_ai_cmd; + s->do_cmdtest = labpc_ai_cmdtest; + s->cancel = labpc_cancel; + } /* analog output */ s = &dev->subdevices[1];