Re: [PATCH 00/51] staging: comedi: cleanup irq requests

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

 



On 2013-12-03 19:07, H Hartley Sweeten wrote:
The comedi subsystem only requires the drivers to support interrupts if one
or more of the subdevices support async commands. Since this is optional:

1) don't fail the attach if the irq is not available
2) only hookup the async command support if the irq is available
3) remove any async command init from subdevices that don't need it
4) remove any unnecessary sanity checks in the async command functions

Make use of the comedi_device 'read_subdev' and 'write_subdev' pointers
instead of accessing the dev->subdevices array directly with "magic" numbers
to the correct subdevice.

Also, remove any unnecessary debug noise associated with the irq requests.

H Hartley Sweeten (51):
   staging: comedi: s626: fix async command hookup
   staging: comedi: pcl816: remove 'irq_free' from private data
   staging: comedi: pcl816: only init command support if irq is available
   staging: comedi: pcl816: remove 'sub_ai' from private data
   staging: comedi: pcl816: use dev->read_subdev
   staging: comedi: pcl818: remove 'irq_free' from private data
   staging: comedi: pcl818: remove unnecessary 'dev->irq' tests
   staging: comedi: pcl818: remove function trace noise
   staging: comedi: pcl818: only init async command members when needed
   staging: comedi: pcl818: remove 'sub_ai' from private data
   staging: comedi: pcl818: use dev->read_subdev
   staging: comedi: pcl818: remove unnecessary s->len_chanlist init
   staging: comedi: pcl812: remove unnecessary s->len_chanlist init
   staging: comedi: pcl812: only init async command members when needed
   staging: comedi: pcl812: use dev->read_subdev
   staging: comedi: ni_pcimio: tidy up the irq request
   staging: comedi: ni_pcidio: tidy up the irq request
   staging: comedi: ni_at_a2150: tidy up the irq request
   staging: comedi: me4000: refactor request_irq() during attach
   staging: comedi: me4000: use dev->read_subdev
   staging: comedi: me4000: remove unnecessary check in the irq handler
   staging: comedi: das1800: tidy up irq request
   staging: comedi: das1800: only init command support if irq is available
   staging: comedi: das1800: remove unnecessary 'dev->irq' test
   staging: comedi: das1800: use dev->read_subdev
   staging: comedi: das16m1: remove unnecessary 'dev->irq' test
   staging: comedi: adl_pci9111: fix incorrect irq passed to request_irq()
   staging: comedi: adl_pci9111: the irq is only needed for async command support
   staging: comedi: adl_pci9111: remove unnecessary 'dev->irq' test
   staging: comedi: dt2814: use dev->read_subdev
   staging: comedi: dt282x: use dev->read_subdev
   staging: comedi: dt282x: use dev->write_subdev
   staging: comedi: amplc_pci230: tidy up irq request
   staging: comedi: adl_pci9118: tidy up irq request
   staging: comedi: adv_pci1710: only init async command members when needed
   staging: comedi: adv_pci1710: use dev->read_subdev
   staging: comedi: dt3000: don't fail attach if irq is not available
   staging: comedi: dt3000: use dev->read_subdev
   staging: comedi: s626: use dev->read_subdev
   staging: comedi: hwrdv_apci3120: use dev->read_subdev
   staging: comedi: hwrdv_apci3200: use dev->read_subdev
   staging: comedi: adl_pci9118: use dev->read_subdev
   staging: comedi: amplc_pc236: use dev->read_subdev
   staging: comedi: amplc_pci224: use dev->write_subdev
   staging: comedi: ni_65xx: use dev->read_subdev
   staging: comedi: ni_atmio16d: use dev->read_subdev
   staging: comedi: rtd520: use dev->read_subdev
   staging: comedi: ni_pcidio: factor board reset out of attach
   staging: comedi: ni_pcidio: request_irq() before seting up subdevices
   staging: comedi: ni_pcidio: use dev->read_subdev
   staging: comedi: multiq3: pass subdevice to encoder_reset()

  .../comedi/drivers/addi-data/hwdrv_apci3120.c      |  6 +-
  .../comedi/drivers/addi-data/hwdrv_apci3200.c      |  2 +-
  drivers/staging/comedi/drivers/adl_pci9111.c       | 31 ++++----
  drivers/staging/comedi/drivers/adl_pci9118.c       | 45 +++++------
  drivers/staging/comedi/drivers/adv_pci1710.c       | 10 +--
  drivers/staging/comedi/drivers/amplc_pc236.c       |  2 +-
  drivers/staging/comedi/drivers/amplc_pci224.c      |  2 +-
  drivers/staging/comedi/drivers/amplc_pci230.c      | 27 +++----
  drivers/staging/comedi/drivers/das16m1.c           |  5 --
  drivers/staging/comedi/drivers/das1800.c           | 89 +++++++++-------------
  drivers/staging/comedi/drivers/dt2814.c            |  4 +-
  drivers/staging/comedi/drivers/dt282x.c            | 10 +--
  drivers/staging/comedi/drivers/dt3000.c            | 29 +++----
  drivers/staging/comedi/drivers/me4000.c            | 37 ++++-----
  drivers/staging/comedi/drivers/multiq3.c           |  6 +-
  drivers/staging/comedi/drivers/ni_65xx.c           |  2 +-
  drivers/staging/comedi/drivers/ni_at_a2150.c       | 45 +++++------
  drivers/staging/comedi/drivers/ni_atmio16d.c       |  2 +-
  drivers/staging/comedi/drivers/ni_pcidio.c         | 66 ++++++++--------
  drivers/staging/comedi/drivers/ni_pcimio.c         | 19 ++---
  drivers/staging/comedi/drivers/pcl812.c            | 11 +--
  drivers/staging/comedi/drivers/pcl816.c            | 36 ++++-----
  drivers/staging/comedi/drivers/pcl818.c            | 41 +++-------
  drivers/staging/comedi/drivers/rtd520.c            |  2 +-
  drivers/staging/comedi/drivers/s626.c              | 17 ++---
  25 files changed, 234 insertions(+), 312 deletions(-)


I have issues with patches 18, 19, 22, and 49, although patch 19 is fixed by patch 20.

Patch 27 may be considered for stable kernels 3.7 and later if it applies cleanly (I need to check).

--
-=( Ian Abbott @ MEV Ltd.    E-mail: <abbotti@xxxxxxxxx>        )=-
-=( Tel: +44 (0)161 477 1898   FAX: +44 (0)161 718 3587         )=-
_______________________________________________
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