Separate this driver from the addi-data "common" code so we can get rid of all the bloat and complexity. This board is available with 4 or 8 analog outputs. The hardware for both boards is identical. The 8 channel board is populated differently in order to support the extra channels. Since they share the same PCI vendor/device ids, we need to read the on-board eeprom in order to determine the actual number of channels on the board. The eeprom code can be removed if it is determine that always setting the driver up for 8 channels is OK. The hardware doesn't care if the unused channels are written but the user will see 8 channels on the 4 channel version of the board. The watchdog/timer subdevice is still pretty broken. The support code for that subdevice is still in the hwdrv_apci3501.c file. I need to work with Ian to figure out the best way to handle that subdevice. The interrupt support code also needs a bit of work. But, since it deals with the watchdog/timer subdevice, this will be covered once that's fixed. H Hartley Sweeten (30): staging: comedi: addi_apci_3501: separate from addi_common.c staging: comedi: addi_apci_3501: board does not have ttl i/o staging: comedi: addi_apci_3501: board has a timer staging: comedi: addi_apci_3501: cleanup the digital output subdevice staging: comedi: addi_apci_3501: cleanup the digital input subdevice staging: comedi: addi_apci_3501: board does not have analog inputs staging: comedi: addi_apci_3501: absorb i_APCI3501_Reset() staging: comedi: addi_apci_3501: absorb v_APCI3501_Interrupt() staging: comedi: addi_apci_3501: simplify eeprom read staging: comedi: addi_apci_3501: simplify the PCI bar reading staging: comedi: addi_apci_3501: remove devpriv->iobase usage staging: comedi: addi_apci_3501: board does not support dma staging: comedi: addi_apci_3501: don't read the unused PCI bars staging: comedi: addi_apci_3501: analog output resolution is fixed staging: comedi: addi_apci_3501: remove analog output boardinfo staging: comedi: addi_apci_3501: board has an eeprom staging: comedi: addi_apci_3501: simplify reading the eeprom staging: comedi: addi_apci_3501: remove boardinfo staging: comedi: addi_apci_3501: only allocate needed subdevices staging: comedi: addi_apci_3501: remove dependancy on addi_common.h staging: comedi: addi_apci_3501: start defining i/o map staging: comedi: addi_apci_3501: reorder code a bit staging: comedi: addi_apci_3501: move range_apci3501_ao to driver staging: comedi: addi_apci_3501: introduce apci3501_wait_for_dac() staging: comedi: addi_apci_3501: cleanup apci3501_reset() staging: comedi: addi_apci_3501: rewrite the analog output support staging: comedi: addi_apci_3501: move the copyright information staging: comedi: addi_apci_3501: change the MODULE_DESCRIPTION staging: comedi: addi_apci_3501: define the timer i/o registers staging: comedi: addi_apci_3501: cleanup comments in hwdrv_apci3501.c .../comedi/drivers/addi-data/hwdrv_apci3501.c | 589 +++------------------ drivers/staging/comedi/drivers/addi_apci_3501.c | 473 +++++++++++++++-- 2 files changed, 511 insertions(+), 551 deletions(-) -- 1.8.1.1.293.gfe73786 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/devel