Re: [PATCH 01/19] staging: comedi: drivers: have core hook up default (*insn_read) for readback

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

 



On 20/11/14 22:07, H Hartley Sweeten wrote:
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. For the drivers that use a private callback, hook it up after the readback
bas been allocated and add a comment about the override of the default.

Signed-off-by: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Cc: Ian Abbott <abbotti@xxxxxxxxx>
Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
---
  drivers/staging/comedi/drivers.c                 | 3 +++
  drivers/staging/comedi/drivers/addi_apci_3120.c  | 1 -
  drivers/staging/comedi/drivers/addi_apci_3501.c  | 1 -
  drivers/staging/comedi/drivers/addi_apci_3xxx.c  | 1 -
  drivers/staging/comedi/drivers/adl_pci6208.c     | 1 -
  drivers/staging/comedi/drivers/adl_pci9111.c     | 1 -
  drivers/staging/comedi/drivers/adl_pci9118.c     | 1 -
  drivers/staging/comedi/drivers/aio_aio12_8.c     | 1 -
  drivers/staging/comedi/drivers/amplc_pci224.c    | 1 -
  drivers/staging/comedi/drivers/amplc_pci230.c    | 1 -
  drivers/staging/comedi/drivers/cb_das16_cs.c     | 1 -
  drivers/staging/comedi/drivers/cb_pcidas.c       | 1 -
  drivers/staging/comedi/drivers/cb_pcidas64.c     | 1 -
  drivers/staging/comedi/drivers/cb_pcimdas.c      | 1 -
  drivers/staging/comedi/drivers/cb_pcimdda.c      | 3 ++-
  drivers/staging/comedi/drivers/dac02.c           | 1 -
  drivers/staging/comedi/drivers/daqboard2000.c    | 1 -
  drivers/staging/comedi/drivers/das08.c           | 1 -
  drivers/staging/comedi/drivers/das16.c           | 1 -
  drivers/staging/comedi/drivers/das6402.c         | 3 ++-
  drivers/staging/comedi/drivers/dmm32at.c         | 1 -
  drivers/staging/comedi/drivers/dt2801.c          | 1 -
  drivers/staging/comedi/drivers/dt2811.c          | 1 -
  drivers/staging/comedi/drivers/dt282x.c          | 1 -
  drivers/staging/comedi/drivers/dt3000.c          | 1 -
  drivers/staging/comedi/drivers/dt9812.c          | 3 ++-
  drivers/staging/comedi/drivers/fl512.c           | 1 -
  drivers/staging/comedi/drivers/icp_multi.c       | 1 -
  drivers/staging/comedi/drivers/ii_pci20kc.c      | 1 -
  drivers/staging/comedi/drivers/me4000.c          | 1 -
  drivers/staging/comedi/drivers/me_daq.c          | 1 -
  drivers/staging/comedi/drivers/mf6x4.c           | 1 -
  drivers/staging/comedi/drivers/multiq3.c         | 1 -
  drivers/staging/comedi/drivers/ni_670x.c         | 1 -
  drivers/staging/comedi/drivers/ni_at_ao.c        | 1 -
  drivers/staging/comedi/drivers/ni_atmio16d.c     | 1 -
  drivers/staging/comedi/drivers/ni_mio_common.c   | 1 -
  drivers/staging/comedi/drivers/pcl711.c          | 1 -
  drivers/staging/comedi/drivers/pcl726.c          | 1 -
  drivers/staging/comedi/drivers/pcl812.c          | 1 -
  drivers/staging/comedi/drivers/pcl818.c          | 1 -
  drivers/staging/comedi/drivers/pcmda12.c         | 3 ++-
  drivers/staging/comedi/drivers/pcmmio.c          | 1 -
  drivers/staging/comedi/drivers/quatech_daqp_cs.c | 1 -
  drivers/staging/comedi/drivers/rtd520.c          | 1 -
  drivers/staging/comedi/drivers/rti800.c          | 1 -
  drivers/staging/comedi/drivers/rti802.c          | 1 -
  drivers/staging/comedi/drivers/s526.c            | 1 -
  drivers/staging/comedi/drivers/s626.c            | 1 -
  drivers/staging/comedi/drivers/usbdux.c          | 3 ++-
  drivers/staging/comedi/drivers/usbduxsigma.c     | 3 ++-
  51 files changed, 15 insertions(+), 50 deletions(-)

diff --git a/drivers/staging/comedi/drivers.c b/drivers/staging/comedi/drivers.c
index e516ed9..051f004 100644
--- a/drivers/staging/comedi/drivers.c
+++ b/drivers/staging/comedi/drivers.c
@@ -109,6 +109,9 @@ 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;
+
+	s->insn_read = comedi_readback_insn_read;
+

Maybe it should only do that if s->insn_read is NULL. Then it wouldn't matter if a low-level driver overrides it before or after calling comedi_alloc_subdev_readback().

--
-=( Ian Abbott @ MEV Ltd.    E-mail: <abbotti@xxxxxxxxx> )=-
-=(                          Web: http://www.mev.co.uk/  )=-
_______________________________________________
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