This helper function is a bit long to be inlined. Move it to the source file and export it. The mite driver is the only external user right now. Update the Kconfig to select COMEDI_FC when COMEDI_MITE is enabled. Signed-off-by: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx> Cc: Ian Abbott <abbotti@xxxxxxxxx> Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- drivers/staging/comedi/Kconfig | 1 + drivers/staging/comedi/drivers/comedi_fc.c | 22 ++++++++++++++++++++++ drivers/staging/comedi/drivers/comedi_fc.h | 23 ++--------------------- 3 files changed, 25 insertions(+), 21 deletions(-) diff --git a/drivers/staging/comedi/Kconfig b/drivers/staging/comedi/Kconfig index 89e25b4..b89b145 100644 --- a/drivers/staging/comedi/Kconfig +++ b/drivers/staging/comedi/Kconfig @@ -1101,6 +1101,7 @@ config COMEDI_S626 config COMEDI_MITE depends on HAS_DMA + select COMEDI_FC tristate config COMEDI_NI_TIOCMD diff --git a/drivers/staging/comedi/drivers/comedi_fc.c b/drivers/staging/comedi/drivers/comedi_fc.c index 157b61c..5d8aa80 100644 --- a/drivers/staging/comedi/drivers/comedi_fc.c +++ b/drivers/staging/comedi/drivers/comedi_fc.c @@ -22,6 +22,28 @@ #include "comedi_fc.h" +unsigned int cfc_bytes_per_scan(struct comedi_subdevice *s) +{ + unsigned int chanlist_len = s->async->cmd.chanlist_len; + unsigned int num_samples; + unsigned int bits_per_sample; + + switch (s->type) { + case COMEDI_SUBD_DI: + case COMEDI_SUBD_DO: + case COMEDI_SUBD_DIO: + bits_per_sample = 8 * bytes_per_sample(s); + num_samples = (chanlist_len + bits_per_sample - 1) / + bits_per_sample; + break; + default: + num_samples = chanlist_len; + break; + } + return num_samples * bytes_per_sample(s); +} +EXPORT_SYMBOL_GPL(cfc_bytes_per_scan); + static void increment_scan_progress(struct comedi_subdevice *s, unsigned int num_bytes) { diff --git a/drivers/staging/comedi/drivers/comedi_fc.h b/drivers/staging/comedi/drivers/comedi_fc.h index b8d125e..2d57ad4 100644 --- a/drivers/staging/comedi/drivers/comedi_fc.h +++ b/drivers/staging/comedi/drivers/comedi_fc.h @@ -23,6 +23,8 @@ #include "../comedidev.h" +unsigned int cfc_bytes_per_scan(struct comedi_subdevice *); + /* Writes an array of data points to comedi's buffer */ unsigned int cfc_write_array_to_buffer(struct comedi_subdevice *, void *data, unsigned int num_bytes); @@ -45,27 +47,6 @@ unsigned int cfc_read_array_from_buffer(struct comedi_subdevice *, unsigned int cfc_handle_events(struct comedi_device *, struct comedi_subdevice *); -static inline unsigned int cfc_bytes_per_scan(struct comedi_subdevice *s) -{ - unsigned int chanlist_len = s->async->cmd.chanlist_len; - unsigned int num_samples; - unsigned int bits_per_sample; - - switch (s->type) { - case COMEDI_SUBD_DI: - case COMEDI_SUBD_DO: - case COMEDI_SUBD_DIO: - bits_per_sample = 8 * bytes_per_sample(s); - num_samples = (chanlist_len + bits_per_sample - 1) / - bits_per_sample; - break; - default: - num_samples = chanlist_len; - break; - } - return num_samples * bytes_per_sample(s); -} - /** * cfc_check_trigger_src() - trivially validate a comedi_cmd trigger source * @src: pointer to the trigger source to validate -- 1.8.5.2 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel