浏览代码

staging: comedi: drivers: have core hook up default (*insn_read) for readback

Most of the comedi drivers that provide readback for write only subdevices now
use the comedi core comedi_alloc_subdev_readback() helper to allocate the subdevice
'reaback' member instead of using some member in their private data. These drivers
also hook up the (*insn_read) callback to the comedi_readback_insn_read() helper to
provide the readback.

Have the core automatically hook up the (*insn_read) callback after allocating the
memory if the driver has not already hooked it up to a private function.

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>
H Hartley Sweeten 10 年之前
父节点
当前提交
aa11672ef4
共有 45 个文件被更改,包括 4 次插入44 次删除
  1. 4 0
      drivers/staging/comedi/drivers.c
  2. 0 1
      drivers/staging/comedi/drivers/addi_apci_3120.c
  3. 0 1
      drivers/staging/comedi/drivers/addi_apci_3501.c
  4. 0 1
      drivers/staging/comedi/drivers/addi_apci_3xxx.c
  5. 0 1
      drivers/staging/comedi/drivers/adl_pci6208.c
  6. 0 1
      drivers/staging/comedi/drivers/adl_pci9111.c
  7. 0 1
      drivers/staging/comedi/drivers/adl_pci9118.c
  8. 0 1
      drivers/staging/comedi/drivers/aio_aio12_8.c
  9. 0 1
      drivers/staging/comedi/drivers/amplc_pci224.c
  10. 0 1
      drivers/staging/comedi/drivers/amplc_pci230.c
  11. 0 1
      drivers/staging/comedi/drivers/cb_das16_cs.c
  12. 0 1
      drivers/staging/comedi/drivers/cb_pcidas.c
  13. 0 1
      drivers/staging/comedi/drivers/cb_pcidas64.c
  14. 0 1
      drivers/staging/comedi/drivers/cb_pcimdas.c
  15. 0 1
      drivers/staging/comedi/drivers/dac02.c
  16. 0 1
      drivers/staging/comedi/drivers/daqboard2000.c
  17. 0 1
      drivers/staging/comedi/drivers/das08.c
  18. 0 1
      drivers/staging/comedi/drivers/das16.c
  19. 0 1
      drivers/staging/comedi/drivers/dmm32at.c
  20. 0 1
      drivers/staging/comedi/drivers/dt2801.c
  21. 0 1
      drivers/staging/comedi/drivers/dt2811.c
  22. 0 1
      drivers/staging/comedi/drivers/dt282x.c
  23. 0 1
      drivers/staging/comedi/drivers/dt3000.c
  24. 0 1
      drivers/staging/comedi/drivers/fl512.c
  25. 0 1
      drivers/staging/comedi/drivers/icp_multi.c
  26. 0 1
      drivers/staging/comedi/drivers/ii_pci20kc.c
  27. 0 1
      drivers/staging/comedi/drivers/me4000.c
  28. 0 1
      drivers/staging/comedi/drivers/me_daq.c
  29. 0 1
      drivers/staging/comedi/drivers/mf6x4.c
  30. 0 1
      drivers/staging/comedi/drivers/multiq3.c
  31. 0 1
      drivers/staging/comedi/drivers/ni_670x.c
  32. 0 1
      drivers/staging/comedi/drivers/ni_at_ao.c
  33. 0 1
      drivers/staging/comedi/drivers/ni_atmio16d.c
  34. 0 1
      drivers/staging/comedi/drivers/ni_mio_common.c
  35. 0 1
      drivers/staging/comedi/drivers/pcl711.c
  36. 0 1
      drivers/staging/comedi/drivers/pcl726.c
  37. 0 1
      drivers/staging/comedi/drivers/pcl812.c
  38. 0 1
      drivers/staging/comedi/drivers/pcl818.c
  39. 0 1
      drivers/staging/comedi/drivers/pcmmio.c
  40. 0 1
      drivers/staging/comedi/drivers/quatech_daqp_cs.c
  41. 0 1
      drivers/staging/comedi/drivers/rtd520.c
  42. 0 1
      drivers/staging/comedi/drivers/rti800.c
  43. 0 1
      drivers/staging/comedi/drivers/rti802.c
  44. 0 1
      drivers/staging/comedi/drivers/s526.c
  45. 0 1
      drivers/staging/comedi/drivers/s626.c

+ 4 - 0
drivers/staging/comedi/drivers.c

@@ -109,6 +109,10 @@ int comedi_alloc_subdev_readback(struct comedi_subdevice *s)
 	s->readback = kcalloc(s->n_chan, sizeof(*s->readback), GFP_KERNEL);
 	if (!s->readback)
 		return -ENOMEM;
+
+	if (!s->insn_read)
+		s->insn_read = comedi_readback_insn_read;
+
 	return 0;
 }
 EXPORT_SYMBOL_GPL(comedi_alloc_subdev_readback);

+ 0 - 1
drivers/staging/comedi/drivers/addi_apci_3120.c

@@ -1051,7 +1051,6 @@ static int apci3120_auto_attach(struct comedi_device *dev,
 		s->maxdata	= 0x3fff;
 		s->range_table	= &range_bipolar10;
 		s->insn_write	= apci3120_ao_insn_write;
-		s->insn_read	= comedi_readback_insn_read;
 
 		ret = comedi_alloc_subdev_readback(s);
 		if (ret)

+ 0 - 1
drivers/staging/comedi/drivers/addi_apci_3501.c

@@ -362,7 +362,6 @@ static int apci3501_auto_attach(struct comedi_device *dev,
 		s->maxdata	= 0x3fff;
 		s->range_table	= &apci3501_ao_range;
 		s->insn_write	= apci3501_ao_insn_write;
-		s->insn_read	= comedi_readback_insn_read;
 
 		ret = comedi_alloc_subdev_readback(s);
 		if (ret)

+ 0 - 1
drivers/staging/comedi/drivers/addi_apci_3xxx.c

@@ -854,7 +854,6 @@ static int apci3xxx_auto_attach(struct comedi_device *dev,
 		s->maxdata	= 0x0fff;
 		s->range_table	= &apci3xxx_ao_range;
 		s->insn_write	= apci3xxx_ao_insn_write;
-		s->insn_read	= comedi_readback_insn_read;
 
 		ret = comedi_alloc_subdev_readback(s);
 		if (ret)

+ 0 - 1
drivers/staging/comedi/drivers/adl_pci6208.c

@@ -169,7 +169,6 @@ static int pci6208_auto_attach(struct comedi_device *dev,
 	s->maxdata	= 0xffff;
 	s->range_table	= &range_bipolar10;
 	s->insn_write	= pci6208_ao_insn_write;
-	s->insn_read	= comedi_readback_insn_read;
 
 	ret = comedi_alloc_subdev_readback(s);
 	if (ret)

+ 0 - 1
drivers/staging/comedi/drivers/adl_pci9111.c

@@ -731,7 +731,6 @@ static int pci9111_auto_attach(struct comedi_device *dev,
 	s->len_chanlist	= 1;
 	s->range_table	= &range_bipolar10;
 	s->insn_write	= pci9111_ao_insn_write;
-	s->insn_read	= comedi_readback_insn_read;
 
 	ret = comedi_alloc_subdev_readback(s);
 	if (ret)

+ 0 - 1
drivers/staging/comedi/drivers/adl_pci9118.c

@@ -1588,7 +1588,6 @@ static int pci9118_common_attach(struct comedi_device *dev,
 	s->maxdata	= 0x0fff;
 	s->range_table	= &range_bipolar10;
 	s->insn_write	= pci9118_ao_insn_write;
-	s->insn_read	= comedi_readback_insn_read;
 
 	ret = comedi_alloc_subdev_readback(s);
 	if (ret)

+ 0 - 1
drivers/staging/comedi/drivers/aio_aio12_8.c

@@ -212,7 +212,6 @@ static int aio_aio12_8_attach(struct comedi_device *dev,
 		s->maxdata	= 0x0fff;
 		s->range_table	= &range_aio_aio12_8;
 		s->insn_write	= aio_aio12_8_ao_insn_write;
-		s->insn_read	= comedi_readback_insn_read;
 
 		ret = comedi_alloc_subdev_readback(s);
 		if (ret)

+ 0 - 1
drivers/staging/comedi/drivers/amplc_pci224.c

@@ -1075,7 +1075,6 @@ pci224_auto_attach(struct comedi_device *dev, unsigned long context_model)
 	s->maxdata = (1 << thisboard->ao_bits) - 1;
 	s->range_table = thisboard->ao_range;
 	s->insn_write = pci224_ao_insn_write;
-	s->insn_read = comedi_readback_insn_read;
 	s->len_chanlist = s->n_chan;
 	dev->write_subdev = s;
 	s->do_cmd = pci224_ao_cmd;

+ 0 - 1
drivers/staging/comedi/drivers/amplc_pci230.c

@@ -2511,7 +2511,6 @@ static int pci230_auto_attach(struct comedi_device *dev,
 		s->maxdata = (1 << thisboard->ao_bits) - 1;
 		s->range_table = &pci230_ao_range;
 		s->insn_write = pci230_ao_insn_write;
-		s->insn_read = comedi_readback_insn_read;
 		s->len_chanlist = 2;
 		if (dev->irq) {
 			dev->write_subdev = s;

+ 0 - 1
drivers/staging/comedi/drivers/cb_das16_cs.c

@@ -305,7 +305,6 @@ static int das16cs_auto_attach(struct comedi_device *dev,
 		s->maxdata	= 0xffff;
 		s->range_table	= &range_bipolar10;
 		s->insn_write	= &das16cs_ao_insn_write;
-		s->insn_read	= comedi_readback_insn_read;
 
 		ret = comedi_alloc_subdev_readback(s);
 		if (ret)

+ 0 - 1
drivers/staging/comedi/drivers/cb_pcidas.c

@@ -1478,7 +1478,6 @@ static int cb_pcidas_auto_attach(struct comedi_device *dev,
 		s->range_table = &cb_pcidas_ao_ranges;
 		/* default to no fifo (*insn_write) */
 		s->insn_write = cb_pcidas_ao_nofifo_winsn;
-		s->insn_read = comedi_readback_insn_read;
 
 		ret = comedi_alloc_subdev_readback(s);
 		if (ret)

+ 0 - 1
drivers/staging/comedi/drivers/cb_pcidas64.c

@@ -3786,7 +3786,6 @@ static int setup_subdevices(struct comedi_device *dev)
 		s->maxdata = (1 << thisboard->ao_bits) - 1;
 		s->range_table = thisboard->ao_range_table;
 		s->insn_write = ao_winsn;
-		s->insn_read = comedi_readback_insn_read;
 
 		ret = comedi_alloc_subdev_readback(s);
 		if (ret)

+ 0 - 1
drivers/staging/comedi/drivers/cb_pcimdas.c

@@ -226,7 +226,6 @@ static int cb_pcimdas_auto_attach(struct comedi_device *dev,
 	/* ranges are hardware settable, but not software readable. */
 	s->range_table = &range_unknown;
 	s->insn_write = cb_pcimdas_ao_insn_write;
-	s->insn_read = comedi_readback_insn_read;
 
 	ret = comedi_alloc_subdev_readback(s);
 	if (ret)

+ 0 - 1
drivers/staging/comedi/drivers/dac02.c

@@ -129,7 +129,6 @@ static int dac02_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 	s->maxdata	= 0x0fff;
 	s->range_table	= &das02_ao_ranges;
 	s->insn_write	= dac02_ao_insn_write;
-	s->insn_read	= comedi_readback_insn_read;
 
 	ret = comedi_alloc_subdev_readback(s);
 	if (ret)

+ 0 - 1
drivers/staging/comedi/drivers/daqboard2000.c

@@ -707,7 +707,6 @@ static int daqboard2000_auto_attach(struct comedi_device *dev,
 	s->n_chan = 2;
 	s->maxdata = 0xffff;
 	s->insn_write = daqboard2000_ao_insn_write;
-	s->insn_read = comedi_readback_insn_read;
 	s->range_table = &range_bipolar10;
 
 	result = comedi_alloc_subdev_readback(s);

+ 0 - 1
drivers/staging/comedi/drivers/das08.c

@@ -474,7 +474,6 @@ int das08_common_attach(struct comedi_device *dev, unsigned long iobase)
 		s->maxdata = (1 << thisboard->ao_nbits) - 1;
 		s->range_table = &range_bipolar5;
 		s->insn_write = das08_ao_insn_write;
-		s->insn_read = comedi_readback_insn_read;
 
 		ret = comedi_alloc_subdev_readback(s);
 		if (ret)

+ 0 - 1
drivers/staging/comedi/drivers/das16.c

@@ -1175,7 +1175,6 @@ static int das16_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 		s->maxdata	= 0x0fff;
 		s->range_table	= devpriv->user_ao_range_table;
 		s->insn_write	= das16_ao_insn_write;
-		s->insn_read	= comedi_readback_insn_read;
 
 		ret = comedi_alloc_subdev_readback(s);
 		if (ret)

+ 0 - 1
drivers/staging/comedi/drivers/dmm32at.c

@@ -601,7 +601,6 @@ static int dmm32at_attach(struct comedi_device *dev,
 	s->maxdata	= 0x0fff;
 	s->range_table	= &dmm32at_aoranges;
 	s->insn_write	= dmm32at_ao_insn_write;
-	s->insn_read	= comedi_readback_insn_read;
 
 	ret = comedi_alloc_subdev_readback(s);
 	if (ret)

+ 0 - 1
drivers/staging/comedi/drivers/dt2801.c

@@ -597,7 +597,6 @@ havetype:
 	devpriv->dac_range_types[0] = dac_range_lkup(it->options[4]);
 	devpriv->dac_range_types[1] = dac_range_lkup(it->options[5]);
 	s->insn_write = dt2801_ao_insn_write;
-	s->insn_read = comedi_readback_insn_read;
 
 	ret = comedi_alloc_subdev_readback(s);
 	if (ret)

+ 0 - 1
drivers/staging/comedi/drivers/dt2811.c

@@ -418,7 +418,6 @@ static int dt2811_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 	devpriv->range_type_list[0] = dac_range_types[devpriv->dac_range[0]];
 	devpriv->range_type_list[1] = dac_range_types[devpriv->dac_range[1]];
 	s->insn_write = dt2811_ao_insn_write;
-	s->insn_read = comedi_readback_insn_read;
 
 	ret = comedi_alloc_subdev_readback(s);
 	if (ret)

+ 0 - 1
drivers/staging/comedi/drivers/dt282x.c

@@ -1231,7 +1231,6 @@ static int dt282x_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 		/* ranges are per-channel, set by jumpers on the board */
 		s->range_table	= &dt282x_ao_range;
 		s->insn_write	= dt282x_ao_insn_write;
-		s->insn_read	= comedi_readback_insn_read;
 		if (dev->irq) {
 			dev->write_subdev = s;
 			s->subdev_flags	|= SDF_CMD_WRITE;

+ 0 - 1
drivers/staging/comedi/drivers/dt3000.c

@@ -697,7 +697,6 @@ static int dt3000_auto_attach(struct comedi_device *dev,
 	s->len_chanlist	= 1;
 	s->range_table	= &range_bipolar10;
 	s->insn_write	= dt3k_ao_insn_write;
-	s->insn_read	= comedi_readback_insn_read;
 
 	ret = comedi_alloc_subdev_readback(s);
 	if (ret)

+ 0 - 1
drivers/staging/comedi/drivers/fl512.c

@@ -135,7 +135,6 @@ static int fl512_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 	s->maxdata	= 0x0fff;
 	s->range_table	= &range_fl512;
 	s->insn_write	= fl512_ao_insn_write;
-	s->insn_read	= comedi_readback_insn_read;
 
 	ret = comedi_alloc_subdev_readback(s);
 	if (ret)

+ 0 - 1
drivers/staging/comedi/drivers/icp_multi.c

@@ -495,7 +495,6 @@ static int icp_multi_auto_attach(struct comedi_device *dev,
 	s->len_chanlist = 4;
 	s->range_table = &range_analog;
 	s->insn_write = icp_multi_ao_insn_write;
-	s->insn_read = comedi_readback_insn_read;
 
 	ret = comedi_alloc_subdev_readback(s);
 	if (ret)

+ 0 - 1
drivers/staging/comedi/drivers/ii_pci20kc.c

@@ -392,7 +392,6 @@ static int ii20k_init_module(struct comedi_device *dev,
 		s->maxdata	= 0xffff;
 		s->range_table	= &ii20k_ao_ranges;
 		s->insn_write	= ii20k_ao_insn_write;
-		s->insn_read	= comedi_readback_insn_read;
 
 		ret = comedi_alloc_subdev_readback(s);
 		if (ret)

+ 0 - 1
drivers/staging/comedi/drivers/me4000.c

@@ -1426,7 +1426,6 @@ static int me4000_auto_attach(struct comedi_device *dev,
 		s->maxdata = 0xFFFF;	/*  16 bit DAC */
 		s->range_table = &range_bipolar10;
 		s->insn_write = me4000_ao_insn_write;
-		s->insn_read = comedi_readback_insn_read;
 
 		result = comedi_alloc_subdev_readback(s);
 		if (result)

+ 0 - 1
drivers/staging/comedi/drivers/me_daq.c

@@ -517,7 +517,6 @@ static int me_auto_attach(struct comedi_device *dev,
 		s->len_chanlist	= 4;
 		s->range_table	= &me_ao_range;
 		s->insn_write	= me_ao_insn_write;
-		s->insn_read	= comedi_readback_insn_read;
 
 		ret = comedi_alloc_subdev_readback(s);
 		if (ret)

+ 0 - 1
drivers/staging/comedi/drivers/mf6x4.c

@@ -259,7 +259,6 @@ static int mf6x4_auto_attach(struct comedi_device *dev, unsigned long context)
 	s->maxdata = 0x3fff; /* 14 bits DAC */
 	s->range_table = &range_bipolar10;
 	s->insn_write = mf6x4_ao_insn_write;
-	s->insn_read = comedi_readback_insn_read;
 
 	ret = comedi_alloc_subdev_readback(s);
 	if (ret)

+ 0 - 1
drivers/staging/comedi/drivers/multiq3.c

@@ -238,7 +238,6 @@ static int multiq3_attach(struct comedi_device *dev,
 	s->maxdata = 0xfff;
 	s->range_table = &range_bipolar5;
 	s->insn_write = multiq3_ao_insn_write;
-	s->insn_read = comedi_readback_insn_read;
 
 	ret = comedi_alloc_subdev_readback(s);
 	if (ret)

+ 0 - 1
drivers/staging/comedi/drivers/ni_670x.c

@@ -228,7 +228,6 @@ static int ni_670x_auto_attach(struct comedi_device *dev,
 		s->range_table = &range_bipolar10;
 	}
 	s->insn_write = ni_670x_ao_insn_write;
-	s->insn_read = comedi_readback_insn_read;
 
 	ret = comedi_alloc_subdev_readback(s);
 	if (ret)

+ 0 - 1
drivers/staging/comedi/drivers/ni_at_ao.c

@@ -344,7 +344,6 @@ static int atao_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 	s->maxdata	= 0x0fff;
 	s->range_table	= it->options[3] ? &range_unipolar10 : &range_bipolar10;
 	s->insn_write	= atao_ao_insn_write;
-	s->insn_read	= comedi_readback_insn_read;
 
 	ret = comedi_alloc_subdev_readback(s);
 	if (ret)

+ 0 - 1
drivers/staging/comedi/drivers/ni_atmio16d.c

@@ -692,7 +692,6 @@ static int atmio16d_attach(struct comedi_device *dev,
 		break;
 	}
 	s->insn_write = atmio16d_ao_insn_write;
-	s->insn_read = comedi_readback_insn_read;
 
 	ret = comedi_alloc_subdev_readback(s);
 	if (ret)

+ 0 - 1
drivers/staging/comedi/drivers/ni_mio_common.c

@@ -5441,7 +5441,6 @@ static int ni_E_init(struct comedi_device *dev,
 		s->range_table	= board->ao_range_table;
 		s->insn_config	= ni_ao_insn_config;
 		s->insn_write	= ni_ao_insn_write;
-		s->insn_read	= comedi_readback_insn_read;
 
 		ret = comedi_alloc_subdev_readback(s);
 		if (ret)

+ 0 - 1
drivers/staging/comedi/drivers/pcl711.c

@@ -497,7 +497,6 @@ static int pcl711_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 	s->maxdata	= 0xfff;
 	s->range_table	= &range_bipolar5;
 	s->insn_write	= pcl711_ao_insn_write;
-	s->insn_read	= comedi_readback_insn_read;
 
 	ret = comedi_alloc_subdev_readback(s);
 	if (ret)

+ 0 - 1
drivers/staging/comedi/drivers/pcl726.c

@@ -376,7 +376,6 @@ static int pcl726_attach(struct comedi_device *dev,
 	s->maxdata	= 0x0fff;
 	s->range_table_list = devpriv->rangelist;
 	s->insn_write	= pcl726_ao_insn_write;
-	s->insn_read	= comedi_readback_insn_read;
 
 	ret = comedi_alloc_subdev_readback(s);
 	if (ret)

+ 0 - 1
drivers/staging/comedi/drivers/pcl812.c

@@ -1324,7 +1324,6 @@ static int pcl812_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 			break;
 		}
 		s->insn_write	= pcl812_ao_insn_write;
-		s->insn_read	= comedi_readback_insn_read;
 
 		ret = comedi_alloc_subdev_readback(s);
 		if (ret)

+ 0 - 1
drivers/staging/comedi/drivers/pcl818.c

@@ -1158,7 +1158,6 @@ static int pcl818_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 				s->range_table = &range_unknown;
 		}
 		s->insn_write	= pcl818_ao_insn_write;
-		s->insn_read	= comedi_readback_insn_read;
 
 		ret = comedi_alloc_subdev_readback(s);
 		if (ret)

+ 0 - 1
drivers/staging/comedi/drivers/pcmmio.c

@@ -732,7 +732,6 @@ static int pcmmio_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 	s->maxdata	= 0xffff;
 	s->range_table	= &pcmmio_ao_ranges;
 	s->insn_write	= pcmmio_ao_insn_write;
-	s->insn_read	= comedi_readback_insn_read;
 
 	ret = comedi_alloc_subdev_readback(s);
 	if (ret)

+ 0 - 1
drivers/staging/comedi/drivers/quatech_daqp_cs.c

@@ -740,7 +740,6 @@ static int daqp_auto_attach(struct comedi_device *dev,
 	s->maxdata	= 0x0fff;
 	s->range_table	= &range_bipolar5;
 	s->insn_write	= daqp_ao_insn_write;
-	s->insn_read	= comedi_readback_insn_read;
 
 	ret = comedi_alloc_subdev_readback(s);
 	if (ret)

+ 0 - 1
drivers/staging/comedi/drivers/rtd520.c

@@ -1263,7 +1263,6 @@ static int rtd_auto_attach(struct comedi_device *dev,
 	s->maxdata	= 0x0fff;
 	s->range_table	= &rtd_ao_range;
 	s->insn_write	= rtd_ao_winsn;
-	s->insn_read	= comedi_readback_insn_read;
 
 	ret = comedi_alloc_subdev_readback(s);
 	if (ret)

+ 0 - 1
drivers/staging/comedi/drivers/rti800.c

@@ -313,7 +313,6 @@ static int rti800_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 				? rti800_ao_ranges[it->options[7]]
 				: &range_unknown;
 		s->insn_write	= rti800_ao_insn_write;
-		s->insn_read	= comedi_readback_insn_read;
 
 		ret = comedi_alloc_subdev_readback(s);
 		if (ret)

+ 0 - 1
drivers/staging/comedi/drivers/rti802.c

@@ -100,7 +100,6 @@ static int rti802_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 	s->maxdata	= 0xfff;
 	s->n_chan	= 8;
 	s->insn_write	= rti802_ao_insn_write;
-	s->insn_read	= comedi_readback_insn_read;
 
 	ret = comedi_alloc_subdev_readback(s);
 	if (ret)

+ 0 - 1
drivers/staging/comedi/drivers/s526.c

@@ -583,7 +583,6 @@ static int s526_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 	s->maxdata = 0xffff;
 	s->range_table = &range_bipolar10;
 	s->insn_write = s526_ao_insn_write;
-	s->insn_read = comedi_readback_insn_read;
 
 	ret = comedi_alloc_subdev_readback(s);
 	if (ret)

+ 0 - 1
drivers/staging/comedi/drivers/s626.c

@@ -2801,7 +2801,6 @@ static int s626_auto_attach(struct comedi_device *dev,
 	s->maxdata	= 0x3fff;
 	s->range_table	= &range_bipolar10;
 	s->insn_write	= s626_ao_insn_write;
-	s->insn_read	= comedi_readback_insn_read;
 
 	ret = comedi_alloc_subdev_readback(s);
 	if (ret)