From a1b5b0bfcd9c050f505a1ab6b33c0c0bc1747ab4 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 7 Mar 2014 17:31:24 -0700 Subject: [PATCH] staging: comedi: comedi_fc: export cfc_bytes_per_scan() 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 Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- 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 89e25b4203ad..b89b1454a283 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 157b61caa724..5d8aa80179d8 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 b8d125e81a0f..2d57ad4f776b 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 -- 2.11.0