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 <hswee...@visionengravers.com>
Cc: Ian Abbott <abbo...@mev.co.uk>
Cc: Greg Kroah-Hartman <gr...@linuxfoundation.org>
---
 drivers/staging/comedi/drivers/ni_mio_common.c | 14 ++++++--------
 1 file changed, 6 insertions(+), 8 deletions(-)

diff --git a/drivers/staging/comedi/drivers/ni_mio_common.c 
b/drivers/staging/comedi/drivers/ni_mio_common.c
index 6d1754f..e60b9e6 100644
--- a/drivers/staging/comedi/drivers/ni_mio_common.c
+++ b/drivers/staging/comedi/drivers/ni_mio_common.c
@@ -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) |
-- 
1.9.3

_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to