Commit eeca0caa authored by H Hartley Sweeten's avatar H Hartley Sweeten Committed by Greg Kroah-Hartman

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: default avatarH Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: default avatarIan Abbott <abbotti@mev.co.uk>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent caedecfa
......@@ -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) |
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment