The hardware for the analog output subdevices is normally write-only. In order to provide a 'readback' mechanism the last values written to the analog output channels is cached in the private data of the comedi driver. This allows the user to do an (*insn_read) operation to get back the last values for each channel. This series adds a 'readback' member to the comedi_device and provides a core (*insn_read) function to handle this boilerplate. The series then converts the comedi drivers to use the new 'readback' member. H Hartley Sweeten (62): staging: comedi: add a 'readback' member to comedi_subdevice staging: comedi: skel: use comedi_subdevice 'readback' staging: comedi: adl_pci6208: use comedi_subdevice 'readback' staging: comedi: aio_aio12_8: use comedi_subdevice 'readback' staging: comedi: dac02: use comedi_subdevice 'readback' staging: comedi: fl512: use comedi_subdevice 'readback' staging: comedi: multiq3: use comedi_subdevice 'readback' staging: comedi: cb_pcimdda: use comedi_subdevice 'readback' staging: comedi: adl_pci9111: use comedi_subdevice 'readback' staging: comedi: das16: use comedi_subdevice 'readback' staging: comedi: dt282x: use comedi_subdevice 'readback' staging: comedi: icp_multi: use comedi_subdevice 'readback' staging: comedi: pcl726: use comedi_subdevice 'readback' staging: comedi: s526: use comedi_subdevice 'readback' staging: comedi: rti802: use comedi_subdevice 'readback' staging: comedi: s626: use comedi_subdevice 'readback' staging: comedi: pcl812: use comedi_subdevice 'readback' staging: comedi: pcl711: use comedi_subdevice 'readback' staging: comedi: ni_at_ao: use comedi_subdevice 'readback' staging: comedi: pcmda12: use comedi_subdevice 'readback' staging: comedi: pcmmio: use comedi_subdevice 'readback' staging: comedi: ni_mio_common: use comedi_subdevice 'readback' staging: comedi: usbdux: use comedi_subdevice 'readback' staging: comedi: usbduxsigma: use comedi_subdevice 'readback' staging: comedi: das6402: use comedi_subdevice 'readback' staging: comedi: dt9812: use comedi_subdevice 'readback' staging: comedi: dt2811: use comedi_subdevice 'readback' staging: comedi: addi_apci_3501: use comedi_subdevice 'readback' staging: comedi: cb_das16_cs: use comedi_subdevice 'readback' staging: comedi: amplc_pci224: use comedi_subdevice 'readback' staging: comedi: amplc_pci230: use comedi_subdevice 'readback' staging: comedi: addi_apci_3xxx: use comedi_subdevice 'readback' staging: comedi: ni_atmio16d: cleanup atmio16d_ao_insn_write() staging: comedi: ni_atmio16d: use comedi_subdevice 'readback' staging: comedi: me_daq: fix bug in me_ao_insn_write() staging: comedi: me_daq: use comedi_subdevice 'readback' staging: comedi: ii_pci20kc: save unmunged data for ao readback staging: comedi: ii_pci20kc: use comedi_subdevice 'readback' staging: comedi: dt3000: use comedi_subdevice 'readback' staging: comedi: quatech_daqp_cs: fix bug in daqp_ao_insn_write() staging: comedi: quatech_daqp_cs: use comedi_subdevice 'readback' staging: comedi: pcl818: use comedi_subdevice 'readback' staging: comedi: das08: fix bug in das08_ao_winsn() staging: comedi: das08: use comedi_subdevice 'readback' staging: comedi: rti800: save unmunged data for ao readback staging: comedi: rti800: use comedi_subdevice 'readback' staging: comedi: daqboard2000: remove #if 0'ed out code in ao (*insn_write) staging: comedi: daqboard2000: use comedi_subdevice 'readback' staging: comedi: dmm32at: cleanup dmm32at_ao_winsn() staging: comedi: dmm32at: use comedi_subdevice 'readback' staging: comedi: ni_670x: cleanup ni_670x_ao_winsn() staging: comedi: ni_670x: use comedi_subdevice 'readback' staging: comedi: cb_pcimdas: cleanup cb_pcimdas_ao_winsn() staging: comedi: cb_pcimdas: use comedi_subdevice 'readback' staging: comedi: mf6x4: analog output data does not need extra masking staging: comedi: mf6x4: use comedi_subdevice 'readback' staging: comedi: cb_pcidas: use comedi_subdevice 'readback' staging: comedi: cb_pcidas64: use comedi_subdevice 'readback' staging: comedi: dt2801: use comedi_subdevice 'readback' staging: comedi: rtd520: use comedi_subdevice 'readback' staging: comedi: me4000: remove sanity checks in me4000_ao_insn_write() staging: comedi: me4000: use comedi_subdevice 'readback' drivers/staging/comedi/comedidev.h | 6 ++ drivers/staging/comedi/drivers.c | 42 ++++++++++++++ drivers/staging/comedi/drivers/addi_apci_3501.c | 19 ++++-- drivers/staging/comedi/drivers/addi_apci_3xxx.c | 11 +++- drivers/staging/comedi/drivers/adl_pci6208.c | 38 +++--------- drivers/staging/comedi/drivers/adl_pci9111.c | 28 +++------ drivers/staging/comedi/drivers/aio_aio12_8.c | 47 +++++---------- drivers/staging/comedi/drivers/amplc_pci224.c | 73 ++++++----------------- drivers/staging/comedi/drivers/amplc_pci230.c | 74 ++++++++---------------- drivers/staging/comedi/drivers/cb_das16_cs.c | 44 ++++++-------- drivers/staging/comedi/drivers/cb_pcidas.c | 30 ++++------ drivers/staging/comedi/drivers/cb_pcidas64.c | 22 +++---- drivers/staging/comedi/drivers/cb_pcimdas.c | 57 ++++++------------ drivers/staging/comedi/drivers/cb_pcimdda.c | 57 +++++++----------- drivers/staging/comedi/drivers/dac02.c | 33 ++--------- drivers/staging/comedi/drivers/daqboard2000.c | 51 ++++------------ drivers/staging/comedi/drivers/das08.c | 68 +++++++++------------- drivers/staging/comedi/drivers/das08.h | 1 - drivers/staging/comedi/drivers/das16.c | 11 +++- drivers/staging/comedi/drivers/das6402.c | 14 ++--- drivers/staging/comedi/drivers/dmm32at.c | 69 ++++++++-------------- drivers/staging/comedi/drivers/dt2801.c | 28 ++++----- drivers/staging/comedi/drivers/dt2811.c | 46 ++++++--------- drivers/staging/comedi/drivers/dt282x.c | 31 +++------- drivers/staging/comedi/drivers/dt3000.c | 42 +++++--------- drivers/staging/comedi/drivers/dt9812.c | 27 +++++---- drivers/staging/comedi/drivers/fl512.c | 35 +++-------- drivers/staging/comedi/drivers/icp_multi.c | 53 ++++++----------- drivers/staging/comedi/drivers/ii_pci20kc.c | 39 +++---------- drivers/staging/comedi/drivers/me4000.c | 63 +++----------------- drivers/staging/comedi/drivers/me_daq.c | 30 ++++------ drivers/staging/comedi/drivers/mf6x4.c | 31 +++------- drivers/staging/comedi/drivers/multiq3.c | 46 +++++---------- drivers/staging/comedi/drivers/ni_670x.c | 62 +++++++++----------- drivers/staging/comedi/drivers/ni_at_ao.c | 35 ++++------- drivers/staging/comedi/drivers/ni_atmio16d.c | 61 ++++++++----------- drivers/staging/comedi/drivers/ni_mio_common.c | 25 +++----- drivers/staging/comedi/drivers/ni_stc.h | 1 - drivers/staging/comedi/drivers/pcl711.c | 27 +++------ drivers/staging/comedi/drivers/pcl726.c | 29 +++------- drivers/staging/comedi/drivers/pcl812.c | 36 ++++-------- drivers/staging/comedi/drivers/pcl818.c | 33 ++++------- drivers/staging/comedi/drivers/pcmda12.c | 16 +++-- drivers/staging/comedi/drivers/pcmmio.c | 29 +++------- drivers/staging/comedi/drivers/quatech_daqp_cs.c | 11 +++- drivers/staging/comedi/drivers/rtd520.c | 26 ++------- drivers/staging/comedi/drivers/rti800.c | 32 ++++------ drivers/staging/comedi/drivers/rti802.c | 29 +++------- drivers/staging/comedi/drivers/s526.c | 43 ++++++-------- drivers/staging/comedi/drivers/s626.c | 41 ++++++------- drivers/staging/comedi/drivers/skel.c | 66 +++++++++++---------- drivers/staging/comedi/drivers/usbdux.c | 25 ++++---- drivers/staging/comedi/drivers/usbduxsigma.c | 22 ++++--- 53 files changed, 682 insertions(+), 1233 deletions(-) -- 2.0.3 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel