aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/staging/speakup/serialio.c
diff options
context:
space:
mode:
authorOkash Khawaja <okash.khawaja@gmail.com>2017-03-14 13:41:54 +0000
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2017-03-16 11:12:02 +0900
commita50ef3165489c74c7d7c9f7559d9bbb198dca154 (patch)
tree2048ec8e22823d779d1ce57540b144ff45ae687c /drivers/staging/speakup/serialio.c
parentstaging: speakup: add spk_io_ops struct to spk_synth (diff)
downloadlinux-dev-a50ef3165489c74c7d7c9f7559d9bbb198dca154.tar.xz
linux-dev-a50ef3165489c74c7d7c9f7559d9bbb198dca154.zip
staging: speakup: move spk_stop_serial_interrupt into synth-specific release function
This moves call to spk_stop_serial_interrupt() function out of synth_release() and into release() method of specific spk_synth instances. This is because the spk_stop_serial_interrupt() call is specific to current serial i/o implementation. Moving it into each synth's release() method gives the decision of calling spk_stop_serial_interrupt() to that synth. Signed-off-by: Okash Khawaja <okash.khawaja@gmail.com> Reviewed-by: Samuel Thibault <samuel.thibault@ens-lyon.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/speakup/serialio.c')
-rw-r--r--drivers/staging/speakup/serialio.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/staging/speakup/serialio.c b/drivers/staging/speakup/serialio.c
index d7736f7a35fe..b37d476f4c80 100644
--- a/drivers/staging/speakup/serialio.c
+++ b/drivers/staging/speakup/serialio.c
@@ -148,6 +148,7 @@ void spk_stop_serial_interrupt(void)
/* Free IRQ */
free_irq(serstate->irq, (void *)synth_readbuf_handler);
}
+EXPORT_SYMBOL_GPL(spk_stop_serial_interrupt);
int spk_wait_for_xmitr(struct spk_synth *in_synth)
{
@@ -223,6 +224,7 @@ int spk_serial_out(struct spk_synth *in_synth, const char ch)
void spk_serial_release(void)
{
+ spk_stop_serial_interrupt();
if (speakup_info.port_tts == 0)
return;
synth_release_region(speakup_info.port_tts, 8);