Re: [PATCH 000/108] staging: comedi: addi_apci_3120: cleanup driver

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

 



On 04/11/14 17:53, H Hartley Sweeten wrote:
Following is the big cleanup series for the ADDI-DATA APCI-3120 driver.

Quick summary of the cleanup:

   * Removes all the CamelCase
   * Cleans up the register map defines
   * Fixes the Analog Input subdevice
   * Fixes the async command support for the Analog Input subdevice
   * Cleans up all the timer support code
   * Cleans up the DMA support code
   * Removes the included addi-data/hwdrv_apci3120.c source file
   * Removes all the cruft

H Hartley Sweeten (108):
   staging: comedi: addi_apci_3120: introduce apci3120_ns_to_timer()
   staging: comedi: addi_apci_3120: rename private data 'b_DigitalOutputRegister'
   staging: comedi: addi_apci_3120: introduce apci3120_timer_write()
   staging: comedi: addi_apci_3120: introduce apci3120_timer_read()
   staging: comedi: addi_apci_3120: tidy up CTR0 register defines
   staging: comedi: addi_apci_3120: fix counter and external interrupt disable
   staging: comedi: addi_apci_3120: rename APCI3120_TIMER_VALUE
   staging: comedi: addi_apci_3120: rename private data 'b_TimerSelectMode'
   staging: comedi: addi_apci_3120: tidy up timer_mode masking
   staging: comedi: addi_apci_3120: introduce apci3120_timer_set_mode()
   staging: comedi: addi_apci_3120: move timer helpers to main driver source
   staging: comedi: addi_apci_3120: rename private data 'us_OutputRegister'
   staging: comedi: addi_apci_3120: tidy up devpriv->ctrl use
   staging: comedi: addi_apci_3120: remove APCI3120_DISABLE_TIMER[012]
   staging: comedi: addi_apci_3120: tidy up APCI3120_ENABLE_TIMER[012]
   staging: comedi: addi_apci_3120: rename APCI3120_ENABLE_EXT_TRIGGER
   staging: comedi: addi_apci_3120: tidy up apci3120_exttrig_{enable,disable}()
   staging: comedi: addi_apci_3120: introduce apci3120_timer_enable()
   staging: comedi: addi_apci_3120: fix timer 2 disable in apci3120_write_insn_timer()
   staging: comedi: addi_apci_3120: rename APCI3120_WR_ADDRESS
   staging: comedi: addi_apci_3120: move apci3120_timer_enable() to driver source
   staging: comedi: addi_apci_3120: move apci3120_exttrig_enable() to driver source
   staging: comedi: addi_apci_3120: introduce apci3120_clr_timer2_interrupt()
   staging: comedi: addi_apci_3120: remove unnecessary reset of the scan sequence
   staging: comedi: addi_apci_3120: tidy up scan chanlist programming
   staging: comedi: addi_apci_3120: remove 'check' param from apci3120_setup_chan_list()
   staging: comedi: addi_apci_3120: introduce apci3120_ai_reset_fifo()
   staging: comedi: addi_apci_3120: move ai range table to driver source
   staging: comedi: addi_apci_3120: remove APCI3120_DISABLE_ALL_INTERRUPT_WITHOUT_TIMER
   staging: comedi: addi_apci_3120: properly disable interrupts in apci3120_cancel()
   staging: comedi: addi_apci_3120: rename private data 'b_ModeSelectRegister'
   staging: comedi: addi_apci_3120: remove unnecessary devpriv->mode masking
   staging: comedi: addi_apci_3120: remove devpriv->mode '0xef' magic value
   staging: comedi: addi_apci_3120: remove APCI3120_DISABLE_TIMER_COUNTER
   staging: comedi: addi_apci_3120: remove APCI3120_DISABLE_WATCHDOG
   staging: comedi: addi_apci_3120: remove APCI3120_DISABLE_TIMER_INT
   staging: comedi: addi_apci_3120: remove APCI3120_DISABLE_EOC_INT
   staging: comedi: addi_apci_3120: remove APCI3120_DISABLE_EOS_INT
   staging: comedi: addi_apci_3120: remove APCI3120_DISABLE_SCAN
   staging: comedi: addi_apci_3120: define the "enable" bits in the mode register
   staging: comedi: addi_apci_3120: define the timer 2 operation bits
   staging: comedi: addi_apci_3120: define the timer 2 clock select bits
   staging: comedi: addi_apci_3120: rename APCI3120_WRITE_MODE_SELECT
   staging: comedi: addi_apci_3120: remove scanning from ai (*insn_read)
   staging: comedi: addi_apci_3120: remove private data 'ui_EocEosConversionTime'
   staging: comedi: addi_apci_3120: remove interrupt support from ai (*insn_read)
   staging: comedi: addi_apci_3120: remove apci3120_ai_insn_config()
   staging: comedi: addi_apci_3120: remove private data 'ui_AiReadData'
   staging: comedi: addi_apci_3120: fix apci3120_ai_insn_read()
   staging: comedi: addi_apci_3120: absorb apci3120_interrupt_handle_eos()
   staging: comedi: addi_apci_3120: remove private data 'ui_AiNbrofChannels'
   staging: comedi: addi_apci_3120: remove private data 'ui_AiChannelList'
   staging: comedi: addi_apci_3120: rename APCI3120_RD_STATUS
   staging: comedi: addi_apci_3120: define status register bits
   staging: comedi: addi_apci_3120: remove private data 'ai_running'
   staging: comedi: addi_apci_3120: move apci3120_do_insn_bits() to driver source
   staging: comedi: addi_apci_3120: move apci3120_di_insn_bits() to driver source
   staging: comedi: addi_apci_3120: move apci3120_ao_insn_write() to driver source
   staging: comedi: addi_apci_3120: move apci3120_ai_insn_read() to driver source
   staging: comedi: addi_apci_3120: remove check in apci3120_setup_chan_list()
   staging: comedi: addi_apci_3120: move apci3120_set_chanlist() to driver source
   staging: comedi: addi_apci_3120: factor DMA setup out of apci3120_cyclic_ai()
   staging: comedi: addi_apci_3120: remove APCI3120_{ENABLE,DISABLE}
   staging: comedi: addi_apci_3120: flip 'us_UseDma' test in apci3120_cyclic_ai()
   staging: comedi: addi_apci_3120: move timer 2 enable in apci3120_cyclic_ai()
   staging: comedi: addi_apci_3120: move start_src check into apci3120_cyclic_ai()
   staging: comedi: addi_apci_3120: absorb apci3120_cyclic_ai()
   staging: comedi: addi_apci_3120: tidy up timer programming in apci3120_ai_cmd()
   staging: comedi: addi_apci_3120: tidy up timer 2 programming in apci3120_ai_cmd()
   staging: comedi: addi_apci_3120: reset fifo after programming chanlist
   staging: comedi: addi_apci_3120: set scan length/start after programming chanlist
   staging: comedi: addi_apci_3120: enable chanlist scanning if needed
   staging: comedi: addi_apci_3120: tidy up devpriv->mode in apci3120_ai_cmd()
   staging: comedi: addi_apci_3120: remove private data 'b_InterruptMode'
   staging: comedi: addi_apci_3120: remove private data 'b_ExttrigEnable'
   staging: comedi: addi_apci_3120: introduce apci3120_init_dma()
   staging: comedi: addi_apci_3120: introduce apci3120_addon_write()
   staging: comedi: addi_apci_3120: use amcc_s5933.h defines
   staging: comedi: addi_apci_3120: define the Add-On registers
   staging: comedi: addi_apci_3120: move APCI3120_FIFO_ADVANCE_ON_BYTE_2
   staging: comedi: addi_apci_3120: move DMA init code to apci3120_init_dma()
   staging: comedi: addi_apci_3120: tidy up apci3120_reset()
   staging: comedi: addi_apci_3120: move apci3120_reset() to driver source
   staging: comedi: addi_apci_3120: rename private data 'us_UseDma'
   staging: comedi: addi_apci_3120: rename private data 'b_DmaDoubleBuffer'
   staging: comedi: addi_apci_3120: rename private data 'ui_DmaActualBuffer'
   staging: comedi: addi_apci_3120: don't use timer 2 to count scans
   staging: comedi: addi_apci_3120: define the AI FIFO register
   staging: comedi: addi_apci_3120: define the AI software trigger register
   staging: comedi: addi_apci_3120: fix timer (*insn_read)
   staging: comedi: addi_apci_3120: fix timer (*insn_config)
   staging: comedi: addi_apci_3120: fix cmd->convert_arg vaildation
   staging: comedi: addi_apci_3120: move AI (*do_cmdtest) to main driver
   staging: comedi: addi_apci_3120: add copyright information
   staging: comedi: addi_apci_3120: remove unnecessary include
   staging: comedi: addi_apci_3120: move apci3120_addon_write() to driver
   staging: comedi: addi_apci_3120: move apci3120_init_dma() to driver
   staging: comedi: addi_apci_3120: move apci3120_setup_dma() to driver
   staging: comedi: addi_apci_3120: move apci3120_ai_cmd() to driver
   staging: comedi: addi_apci_3120: use async->events to report hardware error
   staging: comedi: addi_apci_3120: move apci3120_cancel() to driver
   staging: comedi: addi_apci_3120: move apci3120_interrupt() to driver
   staging: comedi: addi_apci_3120: use comedi_bytes_to_samples()
   staging: comedi: addi_apci_3120: move apci3120_interrupt_dma() to driver
   staging: comedi: addi_apci_3120: change params to apci3120_interrupt_dma()
   staging: comedi: addi_apci_3120: switch DMA buffers after writing samples
   staging: comedi: addi_apci_3120: enable AI async commands
   staging: comedi: addi_apci_3120: absorb apci3120_ai_reset_fifo()

  .../comedi/drivers/addi-data/hwdrv_apci3120.c      | 1903 --------------------
  drivers/staging/comedi/drivers/addi_apci_3120.c    |  912 +++++++++-
  drivers/staging/comedi/drivers/amcc_s5933.h        |    2 +
  3 files changed, 885 insertions(+), 1932 deletions(-)
  delete mode 100644 drivers/staging/comedi/drivers/addi-data/hwdrv_apci3120.c


You've been busy! I think I'll review this as a whole rather than individually.

My only comments are:

1) It would be preferable to not switch on the I8254_MODE<n> constants for the timer mode in PATCH 091 as they're pretty irrelevant here. Rather, just add some new constants to comedi.h - perhaps the APCI3120_TIMER_MODE<n> constants introduced in PATCH 010.

2) The "IRQ from unknown source\n" message should be removed to avoid spamming the kernel log since this is likely to be due to an interrupt from a different device on the same IRQ number. (That was copied over from the original code by PATCH 102.)

3) A comedi driver header comment would be nice!

Overall, a splendid job!

Reviewed-by: Ian Abbott <abbotti@xxxxxxxxx>

--
-=( 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