[PATCH 23/28] staging: comedi: ni_mio_common: only reset the ai/ao subdevices if they exist

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxxxxxxxxxxx>
Cc: Ian Abbott <abbotti@xxxxxxxxx>
Cc: Greg Kroah-Hartman <gregk@xxxxxxxxxxxxxxxxxxx>
---
 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
devel@xxxxxxxxxxxxxxxxxxxxxx
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel




[Index of Archives]     [Linux Driver Backports]     [DMA Engine]     [Linux GPIO]     [Linux SPI]     [Video for Linux]     [Linux USB Devel]     [Linux Coverity]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux