The "amplc_pc236" module is a low-level comedi driver that handles both ISA boards (Amplicon PC36AT) and PCI boards (Amplicon PCI236). Since support for each is controlled by two separate kernel configuration options, the module needs a small number of CPP conditionals to handle the three different combinations (not counting the case where neither option is enabled).
Split the module into three separate modules - "amplc_pci236" for the Amplicon PCI236, the existing "amplc_pc236" for the PC36AT, and "amplc_pc236_common" for the common code. I may rename "amplc_pc236" to "amplc_pc36at" with a module alias to the old module name, but it's such an old board, it may not be worth it. 1) staging: comedi: amplc_pc236: move static board data 2) staging: comedi: amplc_pc236: don't disable h/w interrupt on detach() 3) staging: comedi: amplc_pc236: add callback to enable/disable interrupt 4) staging: comedi: amplc_pc236: combine interrupt enable/disable functions 5) staging: comedi: amplc_pc236: add callback to check and clear interrupt 6) staging: comedi: amplc_pc236: split into ISA, PCI and common module 7) staging: comedi: amplc_pc236, amplc_pci236: get rid of bustype I think this warning in PATCH 6 is a false positive: WARNING: Missing a blank line after declarations #535: FILE: drivers/staging/comedi/drivers/amplc_pc236.h:33: + enum pc236_bustype bustype; + void (*intr_update_cb)(struct comedi_device *dev, bool enable); total: 0 errors, 1 warnings, 856 lines checked drivers/staging/comedi/Kconfig | 2 +- drivers/staging/comedi/drivers/Makefile | 4 +- drivers/staging/comedi/drivers/amplc_pc236.c | 379 +-------------------- drivers/staging/comedi/drivers/amplc_pc236.h | 42 +++ .../staging/comedi/drivers/amplc_pc236_common.c | 206 +++++++++++ drivers/staging/comedi/drivers/amplc_pci236.c | 161 +++++++++ 6 files changed, 429 insertions(+), 365 deletions(-) _______________________________________________ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel