From: Ian Abbott <abbotti@mev.co.uk> To: driverdev-devel@linuxdriverproject.org Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Ian Abbott <abbotti@mev.co.uk>, H Hartley Sweeten <hartleys@visionengravers.com>, linux-kernel@vger.kernel.org Subject: [PATCH 05/11] staging: comedi: add comedi_handle_events() Date: Mon, 15 Sep 2014 13:46:01 +0100 [thread overview] Message-ID: <1410785167-28506-6-git-send-email-abbotti@mev.co.uk> (raw) In-Reply-To: <1410785167-28506-1-git-send-email-abbotti@mev.co.uk> The "comedi_fc" module contains a few functions useful to Comedi drivers. Their functionality is being migrated to the core "comedi" module and renamed to start with the prefix `comedi_`. As part of this migration, move `cfc_handle_events()` into the core comedi module and rename it to `comedi_handle_events()`. Change the external declaration of `cfc_handle_events()` into an inline function that calls `comedi_handle_events()`. Signed-off-by: Ian Abbott <abbotti@mev.co.uk> --- drivers/staging/comedi/comedidev.h | 3 +++ drivers/staging/comedi/drivers.c | 33 ++++++++++++++++++++++++++++++ drivers/staging/comedi/drivers/comedi_fc.c | 17 --------------- drivers/staging/comedi/drivers/comedi_fc.h | 7 +++++-- 4 files changed, 41 insertions(+), 19 deletions(-) diff --git a/drivers/staging/comedi/comedidev.h b/drivers/staging/comedi/comedidev.h index de69725..e2ba025 100644 --- a/drivers/staging/comedi/comedidev.h +++ b/drivers/staging/comedi/comedidev.h @@ -442,6 +442,9 @@ int comedi_timeout(struct comedi_device *, struct comedi_subdevice *, struct comedi_insn *, unsigned long context), unsigned long context); +unsigned int comedi_handle_events(struct comedi_device *dev, + struct comedi_subdevice *s); + int comedi_dio_insn_config(struct comedi_device *, struct comedi_subdevice *, struct comedi_insn *, unsigned int *data, unsigned int mask); diff --git a/drivers/staging/comedi/drivers.c b/drivers/staging/comedi/drivers.c index 691a2c4..3c7d865 100644 --- a/drivers/staging/comedi/drivers.c +++ b/drivers/staging/comedi/drivers.c @@ -351,6 +351,39 @@ void comedi_inc_scan_progress(struct comedi_subdevice *s, } EXPORT_SYMBOL_GPL(comedi_inc_scan_progress); +/** + * comedi_handle_events - handle events and possibly stop acquisition + * @dev: comedi_device struct + * @s: comedi_subdevice struct + * + * Handles outstanding asynchronous acquisition event flags associated + * with the subdevice. Call the subdevice's "->cancel()" handler if the + * "end of acquisition", "error" or "overflow" event flags are set in order + * to stop the acquisition at the driver level. + * + * Calls comedi_event() to further process the event flags, which may mark + * the asynchronous command as no longer running, possibly terminated with + * an error, and may wake up tasks. + * + * Return a bit-mask of the handled events. + */ +unsigned int comedi_handle_events(struct comedi_device *dev, + struct comedi_subdevice *s) +{ + unsigned int events = s->async->events; + + if (events == 0) + return events; + + if (events & (COMEDI_CB_EOA | COMEDI_CB_ERROR | COMEDI_CB_OVERFLOW)) + s->cancel(dev, s); + + comedi_event(dev, s); + + return events; +} +EXPORT_SYMBOL_GPL(comedi_handle_events); + static int insn_rw_emulate_bits(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_insn *insn, unsigned int *data) diff --git a/drivers/staging/comedi/drivers/comedi_fc.c b/drivers/staging/comedi/drivers/comedi_fc.c index 7401e78..ed0e79f 100644 --- a/drivers/staging/comedi/drivers/comedi_fc.c +++ b/drivers/staging/comedi/drivers/comedi_fc.c @@ -64,23 +64,6 @@ unsigned int cfc_read_array_from_buffer(struct comedi_subdevice *s, } EXPORT_SYMBOL_GPL(cfc_read_array_from_buffer); -unsigned int cfc_handle_events(struct comedi_device *dev, - struct comedi_subdevice *s) -{ - unsigned int events = s->async->events; - - if (events == 0) - return events; - - if (events & (COMEDI_CB_EOA | COMEDI_CB_ERROR | COMEDI_CB_OVERFLOW)) - s->cancel(dev, s); - - comedi_event(dev, s); - - return events; -} -EXPORT_SYMBOL_GPL(cfc_handle_events); - static int __init comedi_fc_init_module(void) { return 0; diff --git a/drivers/staging/comedi/drivers/comedi_fc.h b/drivers/staging/comedi/drivers/comedi_fc.h index d0fe26c..c570c6eb 100644 --- a/drivers/staging/comedi/drivers/comedi_fc.h +++ b/drivers/staging/comedi/drivers/comedi_fc.h @@ -53,8 +53,11 @@ static inline unsigned int cfc_write_long_to_buffer(struct comedi_subdevice *s, unsigned int cfc_read_array_from_buffer(struct comedi_subdevice *, void *data, unsigned int num_bytes); -unsigned int cfc_handle_events(struct comedi_device *, - struct comedi_subdevice *); +static inline unsigned int cfc_handle_events(struct comedi_device *dev, + struct comedi_subdevice *s) +{ + return comedi_handle_events(dev, s); +} /** * cfc_check_trigger_src() - trivially validate a comedi_cmd trigger source -- 2.1.0
WARNING: multiple messages have this Message-ID (diff)
From: Ian Abbott <abbotti@mev.co.uk> To: driverdev-devel@linuxdriverproject.org Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Ian Abbott <abbotti@mev.co.uk>, linux-kernel@vger.kernel.org Subject: [PATCH 05/11] staging: comedi: add comedi_handle_events() Date: Mon, 15 Sep 2014 13:46:01 +0100 [thread overview] Message-ID: <1410785167-28506-6-git-send-email-abbotti@mev.co.uk> (raw) In-Reply-To: <1410785167-28506-1-git-send-email-abbotti@mev.co.uk> The "comedi_fc" module contains a few functions useful to Comedi drivers. Their functionality is being migrated to the core "comedi" module and renamed to start with the prefix `comedi_`. As part of this migration, move `cfc_handle_events()` into the core comedi module and rename it to `comedi_handle_events()`. Change the external declaration of `cfc_handle_events()` into an inline function that calls `comedi_handle_events()`. Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com> --- drivers/staging/comedi/comedidev.h | 3 +++ drivers/staging/comedi/drivers.c | 33 ++++++++++++++++++++++++++++++ drivers/staging/comedi/drivers/comedi_fc.c | 17 --------------- drivers/staging/comedi/drivers/comedi_fc.h | 7 +++++-- 4 files changed, 41 insertions(+), 19 deletions(-) diff --git a/drivers/staging/comedi/comedidev.h b/drivers/staging/comedi/comedidev.h index de69725..e2ba025 100644 --- a/drivers/staging/comedi/comedidev.h +++ b/drivers/staging/comedi/comedidev.h @@ -442,6 +442,9 @@ int comedi_timeout(struct comedi_device *, struct comedi_subdevice *, struct comedi_insn *, unsigned long context), unsigned long context); +unsigned int comedi_handle_events(struct comedi_device *dev, + struct comedi_subdevice *s); + int comedi_dio_insn_config(struct comedi_device *, struct comedi_subdevice *, struct comedi_insn *, unsigned int *data, unsigned int mask); diff --git a/drivers/staging/comedi/drivers.c b/drivers/staging/comedi/drivers.c index 691a2c4..3c7d865 100644 --- a/drivers/staging/comedi/drivers.c +++ b/drivers/staging/comedi/drivers.c @@ -351,6 +351,39 @@ void comedi_inc_scan_progress(struct comedi_subdevice *s, } EXPORT_SYMBOL_GPL(comedi_inc_scan_progress); +/** + * comedi_handle_events - handle events and possibly stop acquisition + * @dev: comedi_device struct + * @s: comedi_subdevice struct + * + * Handles outstanding asynchronous acquisition event flags associated + * with the subdevice. Call the subdevice's "->cancel()" handler if the + * "end of acquisition", "error" or "overflow" event flags are set in order + * to stop the acquisition at the driver level. + * + * Calls comedi_event() to further process the event flags, which may mark + * the asynchronous command as no longer running, possibly terminated with + * an error, and may wake up tasks. + * + * Return a bit-mask of the handled events. + */ +unsigned int comedi_handle_events(struct comedi_device *dev, + struct comedi_subdevice *s) +{ + unsigned int events = s->async->events; + + if (events == 0) + return events; + + if (events & (COMEDI_CB_EOA | COMEDI_CB_ERROR | COMEDI_CB_OVERFLOW)) + s->cancel(dev, s); + + comedi_event(dev, s); + + return events; +} +EXPORT_SYMBOL_GPL(comedi_handle_events); + static int insn_rw_emulate_bits(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_insn *insn, unsigned int *data) diff --git a/drivers/staging/comedi/drivers/comedi_fc.c b/drivers/staging/comedi/drivers/comedi_fc.c index 7401e78..ed0e79f 100644 --- a/drivers/staging/comedi/drivers/comedi_fc.c +++ b/drivers/staging/comedi/drivers/comedi_fc.c @@ -64,23 +64,6 @@ unsigned int cfc_read_array_from_buffer(struct comedi_subdevice *s, } EXPORT_SYMBOL_GPL(cfc_read_array_from_buffer); -unsigned int cfc_handle_events(struct comedi_device *dev, - struct comedi_subdevice *s) -{ - unsigned int events = s->async->events; - - if (events == 0) - return events; - - if (events & (COMEDI_CB_EOA | COMEDI_CB_ERROR | COMEDI_CB_OVERFLOW)) - s->cancel(dev, s); - - comedi_event(dev, s); - - return events; -} -EXPORT_SYMBOL_GPL(cfc_handle_events); - static int __init comedi_fc_init_module(void) { return 0; diff --git a/drivers/staging/comedi/drivers/comedi_fc.h b/drivers/staging/comedi/drivers/comedi_fc.h index d0fe26c..c570c6eb 100644 --- a/drivers/staging/comedi/drivers/comedi_fc.h +++ b/drivers/staging/comedi/drivers/comedi_fc.h @@ -53,8 +53,11 @@ static inline unsigned int cfc_write_long_to_buffer(struct comedi_subdevice *s, unsigned int cfc_read_array_from_buffer(struct comedi_subdevice *, void *data, unsigned int num_bytes); -unsigned int cfc_handle_events(struct comedi_device *, - struct comedi_subdevice *); +static inline unsigned int cfc_handle_events(struct comedi_device *dev, + struct comedi_subdevice *s) +{ + return comedi_handle_events(dev, s); +} /** * cfc_check_trigger_src() - trivially validate a comedi_cmd trigger source -- 2.1.0 _______________________________________________ devel mailing list devel@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
next prev parent reply other threads:[~2014-09-15 12:48 UTC|newest] Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top 2014-09-15 12:45 [PATCH 00/11] staging: comedi: move comedi_fc functionality into core Ian Abbott 2014-09-15 12:45 ` Ian Abbott 2014-09-15 12:45 ` [PATCH 01/11] staging: comedi: add comedi_bytes_per_scan() Ian Abbott 2014-09-15 12:45 ` Ian Abbott 2014-09-15 18:12 ` Hartley Sweeten 2014-09-15 18:12 ` Hartley Sweeten 2014-09-15 12:45 ` [PATCH 02/11] staging: comedi: comedi_fc: use comedi_bytes_per_scan() Ian Abbott 2014-09-15 12:45 ` Ian Abbott 2014-09-15 12:45 ` [PATCH 03/11] staging: comedi: add comedi_inc_scan_progress() Ian Abbott 2014-09-15 12:45 ` Ian Abbott 2014-09-15 18:14 ` Hartley Sweeten 2014-09-15 18:14 ` Hartley Sweeten 2014-09-15 12:46 ` [PATCH 04/11] staging: comedi: comedi_fc: use comedi_inc_scan_progress() Ian Abbott 2014-09-15 12:46 ` Ian Abbott 2014-09-15 12:46 ` Ian Abbott [this message] 2014-09-15 12:46 ` [PATCH 05/11] staging: comedi: add comedi_handle_events() Ian Abbott 2014-09-15 18:17 ` Hartley Sweeten 2014-09-15 18:17 ` Hartley Sweeten 2014-09-15 12:46 ` [PATCH 06/11] staging: comedi: comedi_fc: cfc_write_array_to_buffer() data is const Ian Abbott 2014-09-15 12:46 ` Ian Abbott 2014-09-15 12:46 ` [PATCH 07/11] staging: comedi: add comedi_write_array_to_buffer() Ian Abbott 2014-09-15 12:46 ` Ian Abbott 2014-09-15 12:46 ` [PATCH 08/11] staging: comedi: comedi_fc.h: use comedi_write_array_to_buffer() Ian Abbott 2014-09-15 12:46 ` Ian Abbott 2014-09-15 12:46 ` [PATCH 09/11] staging: comedi: add comedi_read_array_from_buffer() Ian Abbott 2014-09-15 12:46 ` Ian Abbott 2014-09-15 12:46 ` [PATCH 10/11] staging: comedi: migrate copyrights from "comedi_fc.c" Ian Abbott 2014-09-15 12:46 ` Ian Abbott 2014-09-15 12:46 ` [PATCH 11/11] staging: comedi: remove comedi_fc module Ian Abbott 2014-09-15 12:46 ` Ian Abbott 2014-09-15 18:07 ` Hartley Sweeten 2014-09-15 18:07 ` Hartley Sweeten 2014-09-15 18:21 ` [PATCH 00/11] staging: comedi: move comedi_fc functionality into core Hartley Sweeten 2014-09-15 18:21 ` Hartley Sweeten 2014-09-16 7:44 ` Ian Abbott 2014-09-16 7:44 ` Ian Abbott 2014-09-16 16:13 ` Hartley Sweeten 2014-09-16 16:13 ` Hartley Sweeten
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1410785167-28506-6-git-send-email-abbotti@mev.co.uk \ --to=abbotti@mev.co.uk \ --cc=driverdev-devel@linuxdriverproject.org \ --cc=gregkh@linuxfoundation.org \ --cc=hartleys@visionengravers.com \ --cc=linux-kernel@vger.kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.