staging: comedi: ni_mio_common: only reset the ai/ao subdevices if they exist

So of the boards supported by this driver do not have analog inputs and
some don't have analog outputs. Move the calls that reset these subdevices
during the (*attach) by ni_E_init() so they only happen if the subdevices
are present.

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 2014-07-14 12:24:00 -07:00 committed by Greg Kroah-Hartman
commit eeca0caa84

View file

@ -5544,6 +5544,9 @@ static int ni_E_init(struct comedi_device *dev,
if (devpriv->mite)
s->async_dma_dir = DMA_FROM_DEVICE;
}
/* reset the analog input configuration */
ni_ai_reset(dev, s);
} else {
s->type = COMEDI_SUBD_UNUSED;
}
@ -5582,6 +5585,9 @@ static int ni_E_init(struct comedi_device *dev,
if (devpriv->is_67xx)
init_ao_67xx(dev, s);
/* reset the analog output configuration */
ni_ao_reset(dev, s);
} else {
s->type = COMEDI_SUBD_UNUSED;
}
@ -5779,14 +5785,6 @@ static int ni_E_init(struct comedi_device *dev,
s->insn_write = &ni_freq_out_insn_write;
s->insn_config = &ni_freq_out_insn_config;
/* ai configuration */
s = &dev->subdevices[NI_AI_SUBDEV];
ni_ai_reset(dev, s);
/* analog output configuration */
s = &dev->subdevices[NI_AO_SUBDEV];
ni_ao_reset(dev, s);
if (dev->irq) {
ni_stc_writew(dev,
(irq_polarity ? Interrupt_Output_Polarity : 0) |