From: H Hartley Sweeten Date: Mon, 20 Oct 2014 18:34:25 +0000 (-0700) Subject: staging: comedi: addi_apci_3120: tidy up analog input subdevice init X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=2a420f408aa73759b61446503adbd83c88e33966;p=openwrt%2Fstaging%2Fblogic.git staging: comedi: addi_apci_3120: tidy up analog input subdevice init For aesthetics, add some white space to the analog input subdevice initialization. The async command support in this driver is pretty messed up. I'm not really sure if it actually works yet. Luckly this driver was not setting the SDF_CMD_READ subdev_flag so the command support was not actually getting enabled. The command support only works if an interrupt is available. Refactor the subdevice init so that the command support is only hooked up if we have an interrupt. For now always disable the command support. Once the driver has been cleaned up the command will be enabled. Signed-off-by: H Hartley Sweeten Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/staging/comedi/drivers/addi_apci_3120.c b/drivers/staging/comedi/drivers/addi_apci_3120.c index 358bfd3f3417..cc561788e740 100644 --- a/drivers/staging/comedi/drivers/addi_apci_3120.c +++ b/drivers/staging/comedi/drivers/addi_apci_3120.c @@ -168,23 +168,23 @@ static int apci3120_auto_attach(struct comedi_device *dev, if (ret) return ret; - /* Allocate and Initialise AI Subdevice Structures */ + /* Analog Input subdevice */ s = &dev->subdevices[0]; - dev->read_subdev = s; - s->type = COMEDI_SUBD_AI; - s->subdev_flags = - SDF_READABLE | SDF_COMMON | SDF_GROUND - | SDF_DIFF; - s->n_chan = 16; - s->maxdata = this_board->ai_is_16bit ? 0xffff : 0x0fff; - s->len_chanlist = s->n_chan; - s->range_table = &range_apci3120_ai; - - s->insn_config = apci3120_ai_insn_config; - s->insn_read = apci3120_ai_insn_read; - s->do_cmdtest = apci3120_ai_cmdtest; - s->do_cmd = apci3120_ai_cmd; - s->cancel = apci3120_cancel; + s->type = COMEDI_SUBD_AI; + s->subdev_flags = SDF_READABLE | SDF_COMMON | SDF_GROUND | SDF_DIFF; + s->n_chan = 16; + s->maxdata = this_board->ai_is_16bit ? 0xffff : 0x0fff; + s->range_table = &range_apci3120_ai; + s->insn_config = apci3120_ai_insn_config; + s->insn_read = apci3120_ai_insn_read; + if (0 /* dev->irq */) { + dev->read_subdev = s; + s->subdev_flags |= SDF_CMD_READ; + s->len_chanlist = s->n_chan; + s->do_cmdtest = apci3120_ai_cmdtest; + s->do_cmd = apci3120_ai_cmd; + s->cancel = apci3120_cancel; + } /* Analog Output subdevice */ s = &dev->subdevices[1];