[PATCH 00/48] staging: comedi: cleanup the "timeout" loops
H Hartley Sweeten
hsweeten at visionengravers.com
Thu Feb 6 23:48:35 UTC 2014
Many of the comedi drivers implement a "timeout" loop of some sort in the
analog input (*insn_read) or analog output (*insn_write) functions. Some
of these are just crazy loop this many times for some status to change.
There are a couple that could actually deadlock the system if the status
does not occur. Some of the drivers also ignore if a timeout occurs and
proceded normally instead of terminating the instruction.
Introduce a comedi core helper function, comedi_timeout(), that handles
the boilerplate for the timeout. This function will wait up to 1 second
for a driver provided callback to indicate that the wait is complete.
This also changes the errno for all timeouts to -ETIMEDOUT. Some of the
comed drivers are returning -ETIME which isn't appropriate.
Patch 01 introduces the helper function.
Patches 02-46 cleanup the individual drivers.
Patch 47 moves the debug message for a timeout to the core.
Patch 48 cleans up the unnecessary clearing of the returned data when a
timeout occurs.
H Hartley Sweeten (48):
staging: comedi: introduce comedi_timeout()
staging: comedi: skel: use comedi_timeout()
staging: comedi: adl_pci6208x: use comedi_timeout()
staging: comedi: das16: use comedi_timeout()
staging: comedi: das800: use comedi_timeout()
staging: comedi: ii_pci20kc: use comedi_timeout()
staging: comedi: mf6x4: use comedi_timeout()
staging: comedi: ni_labpc: use comedi_timeout()
staging: comedi: pcl711: use comedi_timeout()
staging: comedi: pcmad: use comedi_timeout()
staging: comedi: pcmmio: use comedi_timeout()
staging: comedi: aio_aio12_8: use comedi_timeout()
staging: comedi: cb_das16_cs: use comedi_timeout()
staging: comedi: cb_pcidas: use comedi_timeout()
staging: comedi: cb_pcidas64: use comedi_timeout()
staging: comedi: cb_pcimdas: use comedi_timeout()
staging: comedi: das08: use comedi_timeout()
staging: comedi: das16m1: use comedi_timeout()
staging: comedi: dt2811: use comedi_timeout()
staging: comedi: me_daq: use comedi_timeout()
staging: comedi: mpc624: use comedi_timeout()
staging: comedi: s526: use comedi_timeout()
staging: comedi: addi_apci_3xx: use comedi_timeout()
staging: comedi: ni_at_a2150: use comedi_timeout()
staging: comedi: ni_atmio16d: use comedi_timeout()
staging: comedi: dt2815: use comedi_timeout()
staging: comedi: rti800: use comedi_timeout()
staging: comedi: adl_pci9111: use comedi_timeout()
staging: comedi: adl_pci9118: use comedi_timeout()
staging: comedi: adv_pci1710: use comedi_timeout()
staging: comedi: adq12b: use comedi_timeout()
staging: comedi: amplc_pci230: use comedi_timeout()
staging: comedi: das1800: use comedi_timeout()
staging: comedi: daqboard2000: use comedi_timeout()
staging: comedi: dt2814: use comedi_timeout()
staging: comedi: dyna_pci10xx: use comedi_timeout()
staging: comedi: dmm32at: use comedi_timeout()
staging: comedi: icp_multi: use comedi_timeout()
staging: comedi: multiq3: use comedi_timeout()
staging: comedi: ni_daq_700: use comedi_timeout()
staging: comedi: pcl812: use comedi_timeout()
staging: comedi: pcl816: use comedi_timeout()
staging: comedi: pcl818: use comedi_timeout()
staging: comedi: rtd520: use comedi_timeout()
staging: comedi: s626: use comedi_timeout()
staging: comedi: dt282x: use comedi_timeout()
staging: comedi: move (*insn_{read,write}) timeout debug message to core
staging: comedi: don't clear 'data' on (*insn_read) timeout
drivers/staging/comedi/comedi_fops.c | 11 ++-
drivers/staging/comedi/comedidev.h | 6 ++
drivers/staging/comedi/drivers.c | 33 ++++++++
drivers/staging/comedi/drivers/addi_apci_3xxx.c | 44 ++++++++--
drivers/staging/comedi/drivers/adl_pci6208.c | 22 +++--
drivers/staging/comedi/drivers/adl_pci9111.c | 34 ++++----
drivers/staging/comedi/drivers/adl_pci9118.c | 32 ++++---
drivers/staging/comedi/drivers/adq12b.c | 31 +++----
drivers/staging/comedi/drivers/adv_pci1710.c | 36 ++++----
drivers/staging/comedi/drivers/aio_aio12_8.c | 28 ++++---
drivers/staging/comedi/drivers/amplc_pci230.c | 34 ++++----
drivers/staging/comedi/drivers/cb_das16_cs.c | 28 ++++---
drivers/staging/comedi/drivers/cb_pcidas.c | 27 ++++--
drivers/staging/comedi/drivers/cb_pcidas64.c | 46 +++++-----
drivers/staging/comedi/drivers/cb_pcimdas.c | 35 ++++----
drivers/staging/comedi/drivers/daqboard2000.c | 82 +++++++++++-------
drivers/staging/comedi/drivers/das08.c | 28 ++++---
drivers/staging/comedi/drivers/das16.c | 19 ++---
drivers/staging/comedi/drivers/das16m1.c | 29 ++++---
drivers/staging/comedi/drivers/das1800.c | 35 ++++----
drivers/staging/comedi/drivers/das800.c | 18 ++--
drivers/staging/comedi/drivers/dmm32at.c | 83 +++++++++++--------
drivers/staging/comedi/drivers/dt2811.c | 23 +++--
drivers/staging/comedi/drivers/dt2814.c | 44 ++++++----
drivers/staging/comedi/drivers/dt2815.c | 39 ++++-----
drivers/staging/comedi/drivers/dt282x.c | 62 ++++++++------
drivers/staging/comedi/drivers/dyna_pci10xx.c | 38 +++++----
drivers/staging/comedi/drivers/icp_multi.c | 106 ++++++++++++------------
drivers/staging/comedi/drivers/ii_pci20kc.c | 20 ++---
drivers/staging/comedi/drivers/me_daq.c | 33 +++++---
drivers/staging/comedi/drivers/mf6x4.c | 23 +++--
drivers/staging/comedi/drivers/mpc624.c | 28 ++++---
drivers/staging/comedi/drivers/multiq3.c | 38 +++++----
drivers/staging/comedi/drivers/ni_at_a2150.c | 46 +++++-----
drivers/staging/comedi/drivers/ni_atmio16d.c | 52 +++++++-----
drivers/staging/comedi/drivers/ni_daq_700.c | 51 ++++++------
drivers/staging/comedi/drivers/ni_labpc.c | 21 ++---
drivers/staging/comedi/drivers/pcl711.c | 21 +++--
drivers/staging/comedi/drivers/pcl812.c | 95 ++++++++++-----------
drivers/staging/comedi/drivers/pcl816.c | 59 ++++++-------
drivers/staging/comedi/drivers/pcl818.c | 55 ++++++------
drivers/staging/comedi/drivers/pcmad.c | 21 +++--
drivers/staging/comedi/drivers/pcmmio.c | 42 ++++++----
drivers/staging/comedi/drivers/rtd520.c | 84 +++++++++----------
drivers/staging/comedi/drivers/rti800.c | 29 +++----
drivers/staging/comedi/drivers/s526.c | 32 ++++---
drivers/staging/comedi/drivers/s626.c | 20 ++++-
drivers/staging/comedi/drivers/skel.c | 41 ++++++---
48 files changed, 1061 insertions(+), 803 deletions(-)
--
1.8.5.2
More information about the devel
mailing list