* [patch 4/4] staging: speakup: move those functions which do outgoing serial comms, into serialio.c [not found] <20170316070154.GA24362@kroah.com> @ ` Okash Khawaja 0 siblings, 0 replies; 3+ messages in thread From: Okash Khawaja @ UTC (permalink / raw) To: Greg Kroah-Hartman Cc: Samuel Thibault, linux-kernel, devel, Kirk Reiser, speakup, Chris Brannon This moves spk_synth_immediate and spk_serial_synth_probe functions into serialio.c. These functions do outgoing serial comms. The move is a step towards collecting all serial comms in serialio.c. This also renames spk_synth_immediate to spk_serial_synth_immediate. Code inside those functions has not been changed. Along the way, this patch also fixes a couple of spots which were calling spk_synth_immediate directly, so that the calls now happen via the spk_syth struct. Signed-off-by: Okash Khawaja <okash.khawaja@gmail.com> Reviewed-by: Samuel Thibault <samuel.thibault@ens-lyon.org> Index: linux-staging/drivers/staging/speakup/serialio.c =================================================================== --- linux-staging.orig/drivers/staging/speakup/serialio.c +++ linux-staging/drivers/staging/speakup/serialio.c @@ -136,6 +136,35 @@ outb(1, speakup_info.port_tts + UART_FCR); /* Turn FIFO On */ } +int spk_serial_synth_probe(struct spk_synth *synth) +{ + const struct old_serial_port *ser; + int failed = 0; + + if ((synth->ser >= SPK_LO_TTY) && (synth->ser <= SPK_HI_TTY)) { + ser = spk_serial_init(synth->ser); + if (!ser) { + failed = -1; + } else { + outb_p(0, ser->port); + mdelay(1); + outb_p('\r', ser->port); + } + } else { + failed = -1; + pr_warn("ttyS%i is an invalid port\n", synth->ser); + } + if (failed) { + pr_info("%s: not found\n", synth->long_name); + return -ENODEV; + } + pr_info("%s: ttyS%i, Driver Version %s\n", + synth->long_name, synth->ser, synth->version); + synth->alive = 1; + return 0; +} +EXPORT_SYMBOL_GPL(spk_serial_synth_probe); + void spk_stop_serial_interrupt(void) { if (speakup_info.port_tts == 0) @@ -223,6 +252,23 @@ return 0; } +const char *spk_serial_synth_immediate(struct spk_synth *synth, const char *buff) +{ + u_char ch; + + while ((ch = *buff)) { + if (ch == '\n') + ch = synth->procspeech; + if (spk_wait_for_xmitr(synth)) + outb(ch, speakup_info.port_tts); + else + return buff; + buff++; + } + return NULL; +} +EXPORT_SYMBOL_GPL(spk_serial_synth_immediate); + void spk_serial_release(void) { spk_stop_serial_interrupt(); Index: linux-staging/drivers/staging/speakup/speakup_acntsa.c =================================================================== --- linux-staging.orig/drivers/staging/speakup/speakup_acntsa.c +++ linux-staging/drivers/staging/speakup/speakup_acntsa.c @@ -102,7 +102,7 @@ .io_ops = &spk_serial_io_ops, .probe = synth_probe, .release = spk_serial_release, - .synth_immediate = spk_synth_immediate, + .synth_immediate = spk_serial_synth_immediate, .catch_up = spk_do_catch_up, .flush = spk_synth_flush, .is_alive = spk_synth_is_alive_restart, @@ -127,7 +127,7 @@ failed = spk_serial_synth_probe(synth); if (failed == 0) { - spk_synth_immediate(synth, "\033=R\r"); + synth->synth_immediate(synth, "\033=R\r"); mdelay(100); } synth->alive = !failed; Index: linux-staging/drivers/staging/speakup/speakup_apollo.c =================================================================== --- linux-staging.orig/drivers/staging/speakup/speakup_apollo.c +++ linux-staging/drivers/staging/speakup/speakup_apollo.c @@ -111,7 +111,7 @@ .io_ops = &spk_serial_io_ops, .probe = spk_serial_synth_probe, .release = spk_serial_release, - .synth_immediate = spk_synth_immediate, + .synth_immediate = spk_serial_synth_immediate, .catch_up = do_catch_up, .flush = spk_synth_flush, .is_alive = spk_synth_is_alive_restart, Index: linux-staging/drivers/staging/speakup/speakup_audptr.c =================================================================== --- linux-staging.orig/drivers/staging/speakup/speakup_audptr.c +++ linux-staging/drivers/staging/speakup/speakup_audptr.c @@ -107,7 +107,7 @@ .io_ops = &spk_serial_io_ops, .probe = synth_probe, .release = spk_serial_release, - .synth_immediate = spk_synth_immediate, + .synth_immediate = spk_serial_synth_immediate, .catch_up = spk_do_catch_up, .flush = synth_flush, .is_alive = spk_synth_is_alive_restart, @@ -144,7 +144,7 @@ unsigned char test = 0; char synth_id[40] = ""; - spk_synth_immediate(synth, "\x05[Q]"); + synth->synth_immediate(synth, "\x05[Q]"); synth_id[test] = spk_serial_in(); if (synth_id[test] == 'A') { do { Index: linux-staging/drivers/staging/speakup/speakup_bns.c =================================================================== --- linux-staging.orig/drivers/staging/speakup/speakup_bns.c +++ linux-staging/drivers/staging/speakup/speakup_bns.c @@ -99,7 +99,7 @@ .io_ops = &spk_serial_io_ops, .probe = spk_serial_synth_probe, .release = spk_serial_release, - .synth_immediate = spk_synth_immediate, + .synth_immediate = spk_serial_synth_immediate, .catch_up = spk_do_catch_up, .flush = spk_synth_flush, .is_alive = spk_synth_is_alive_restart, Index: linux-staging/drivers/staging/speakup/speakup_decext.c =================================================================== --- linux-staging.orig/drivers/staging/speakup/speakup_decext.c +++ linux-staging/drivers/staging/speakup/speakup_decext.c @@ -130,7 +130,7 @@ .io_ops = &spk_serial_io_ops, .probe = spk_serial_synth_probe, .release = spk_serial_release, - .synth_immediate = spk_synth_immediate, + .synth_immediate = spk_serial_synth_immediate, .catch_up = do_catch_up, .flush = synth_flush, .is_alive = spk_synth_is_alive_restart, @@ -225,7 +225,7 @@ static void synth_flush(struct spk_synth *synth) { in_escape = 0; - spk_synth_immediate(synth, "\033P;10z\033\\"); + synth->synth_immediate(synth, "\033P;10z\033\\"); } module_param_named(ser, synth_decext.ser, int, 0444); Index: linux-staging/drivers/staging/speakup/speakup_dectlk.c =================================================================== --- linux-staging.orig/drivers/staging/speakup/speakup_dectlk.c +++ linux-staging/drivers/staging/speakup/speakup_dectlk.c @@ -133,7 +133,7 @@ .io_ops = &spk_serial_io_ops, .probe = spk_serial_synth_probe, .release = spk_serial_release, - .synth_immediate = spk_synth_immediate, + .synth_immediate = spk_serial_synth_immediate, .catch_up = do_catch_up, .flush = synth_flush, .is_alive = spk_synth_is_alive_restart, Index: linux-staging/drivers/staging/speakup/speakup_dummy.c =================================================================== --- linux-staging.orig/drivers/staging/speakup/speakup_dummy.c +++ linux-staging/drivers/staging/speakup/speakup_dummy.c @@ -101,7 +101,7 @@ .io_ops = &spk_serial_io_ops, .probe = spk_serial_synth_probe, .release = spk_serial_release, - .synth_immediate = spk_synth_immediate, + .synth_immediate = spk_serial_synth_immediate, .catch_up = spk_do_catch_up, .flush = spk_synth_flush, .is_alive = spk_synth_is_alive_restart, Index: linux-staging/drivers/staging/speakup/speakup_ltlk.c =================================================================== --- linux-staging.orig/drivers/staging/speakup/speakup_ltlk.c +++ linux-staging/drivers/staging/speakup/speakup_ltlk.c @@ -114,7 +114,7 @@ .io_ops = &spk_serial_io_ops, .probe = synth_probe, .release = spk_serial_release, - .synth_immediate = spk_synth_immediate, + .synth_immediate = spk_serial_synth_immediate, .catch_up = spk_do_catch_up, .flush = spk_synth_flush, .is_alive = spk_synth_is_alive_restart, @@ -139,7 +139,7 @@ unsigned char *t, i; unsigned char buf[50], rom_v[20]; - spk_synth_immediate(synth, "\x18\x01?"); + synth->synth_immediate(synth, "\x18\x01?"); for (i = 0; i < 50; i++) { buf[i] = spk_serial_in(); if (i > 2 && buf[i] == 0x7f) Index: linux-staging/drivers/staging/speakup/speakup_spkout.c =================================================================== --- linux-staging.orig/drivers/staging/speakup/speakup_spkout.c +++ linux-staging/drivers/staging/speakup/speakup_spkout.c @@ -105,7 +105,7 @@ .io_ops = &spk_serial_io_ops, .probe = spk_serial_synth_probe, .release = spk_serial_release, - .synth_immediate = spk_synth_immediate, + .synth_immediate = spk_serial_synth_immediate, .catch_up = spk_do_catch_up, .flush = synth_flush, .is_alive = spk_synth_is_alive_restart, Index: linux-staging/drivers/staging/speakup/speakup_txprt.c =================================================================== --- linux-staging.orig/drivers/staging/speakup/speakup_txprt.c +++ linux-staging/drivers/staging/speakup/speakup_txprt.c @@ -98,7 +98,7 @@ .io_ops = &spk_serial_io_ops, .probe = spk_serial_synth_probe, .release = spk_serial_release, - .synth_immediate = spk_synth_immediate, + .synth_immediate = spk_serial_synth_immediate, .catch_up = spk_do_catch_up, .flush = spk_synth_flush, .is_alive = spk_synth_is_alive_restart, Index: linux-staging/drivers/staging/speakup/spk_priv.h =================================================================== --- linux-staging.orig/drivers/staging/speakup/spk_priv.h +++ linux-staging/drivers/staging/speakup/spk_priv.h @@ -58,7 +58,7 @@ const char *buf, size_t count); int spk_serial_synth_probe(struct spk_synth *synth); -const char *spk_synth_immediate(struct spk_synth *synth, const char *buff); +const char *spk_serial_synth_immediate(struct spk_synth *synth, const char *buff); void spk_do_catch_up(struct spk_synth *synth); void spk_synth_flush(struct spk_synth *synth); int spk_synth_is_alive_nop(struct spk_synth *synth); Index: linux-staging/drivers/staging/speakup/synth.c =================================================================== --- linux-staging.orig/drivers/staging/speakup/synth.c +++ linux-staging/drivers/staging/speakup/synth.c @@ -44,35 +44,6 @@ static int do_synth_init(struct spk_synth *in_synth); -int spk_serial_synth_probe(struct spk_synth *synth) -{ - const struct old_serial_port *ser; - int failed = 0; - - if ((synth->ser >= SPK_LO_TTY) && (synth->ser <= SPK_HI_TTY)) { - ser = spk_serial_init(synth->ser); - if (!ser) { - failed = -1; - } else { - outb_p(0, ser->port); - mdelay(1); - outb_p('\r', ser->port); - } - } else { - failed = -1; - pr_warn("ttyS%i is an invalid port\n", synth->ser); - } - if (failed) { - pr_info("%s: not found\n", synth->long_name); - return -ENODEV; - } - pr_info("%s: ttyS%i, Driver Version %s\n", - synth->long_name, synth->ser, synth->version); - synth->alive = 1; - return 0; -} -EXPORT_SYMBOL_GPL(spk_serial_synth_probe); - /* * Main loop of the progression thread: keep eating from the buffer * and push to the serial port, waiting as needed @@ -147,23 +118,6 @@ } EXPORT_SYMBOL_GPL(spk_do_catch_up); -const char *spk_synth_immediate(struct spk_synth *synth, const char *buff) -{ - u_char ch; - - while ((ch = *buff)) { - if (ch == '\n') - ch = synth->procspeech; - if (spk_wait_for_xmitr(synth)) - outb(ch, speakup_info.port_tts); - else - return buff; - buff++; - } - return NULL; -} -EXPORT_SYMBOL_GPL(spk_synth_immediate); - void spk_synth_flush(struct spk_synth *synth) { synth->io_ops->synth_out(synth, synth->clear); ^ permalink raw reply [flat|nested] 3+ messages in thread
* [patch 0/4] staging: speakup: refactor to make raw serial i/o swappable @ Okash Khawaja ` [patch 4/4] staging: speakup: move those functions which do outgoing serial comms, into serialio.c Okash Khawaja 0 siblings, 1 reply; 3+ messages in thread From: Okash Khawaja @ UTC (permalink / raw) To: Greg Kroah-Hartman, Samuel Thibault, linux-kernel Cc: William Hubbs, Chris Brannon, Kirk Reiser, speakup, devel Hi, The following patches group together most of raw serial comms with external synth and makes rest of the code agnostic to it, so that raw serial comms can be easily replaced by an alternate way to communicate with external synths. Plan is to follow these patches with alternate implementation of comms with external synths and then migrate existing synths to use the new implementation. Okash ^ permalink raw reply [flat|nested] 3+ messages in thread
* [patch 4/4] staging: speakup: move those functions which do outgoing serial comms, into serialio.c [patch 0/4] staging: speakup: refactor to make raw serial i/o swappable Okash Khawaja @ ` Okash Khawaja [not found] ` <20170316021409.GA26547@kroah.com> 0 siblings, 1 reply; 3+ messages in thread From: Okash Khawaja @ UTC (permalink / raw) To: Greg Kroah-Hartman, Samuel Thibault, linux-kernel Cc: William Hubbs, Chris Brannon, Kirk Reiser, speakup, devel, Okash Khawaja [-- Attachment #1: 04_move_spk_synth_immediate_and_spk_serial_synth_probe_into_serialio --] [-- Type: text/plain, Size: 10992 bytes --] This moves spk_synth_immediate and spk_serial_synth_probe functions into serialio.c. These functions do outgoing serial comms. The move is a step towards collecting all serial comms in serialio.c. This also renames spk_synth_immediate to spk_serial_synth_immediate. Code inside those functions has not been changed. Along the way, this patch also fixes a couple of spots which were calling spk_synth_immediate directly, so that the calls now happen via the spk_syth struct. Signed-off-by: Okash Khawaja <okash.khawaja@gmail.com> Reviewed-by: Samuel Thibault <samuel.thibault@ens-lyon.org> Index: linux-4.11-rc2/drivers/staging/speakup/serialio.c =================================================================== --- linux-4.11-rc2.orig/drivers/staging/speakup/serialio.c +++ linux-4.11-rc2/drivers/staging/speakup/serialio.c @@ -136,6 +136,35 @@ outb(1, speakup_info.port_tts + UART_FCR); /* Turn FIFO On */ } +int spk_serial_synth_probe(struct spk_synth *synth) +{ + const struct old_serial_port *ser; + int failed = 0; + + if ((synth->ser >= SPK_LO_TTY) && (synth->ser <= SPK_HI_TTY)) { + ser = spk_serial_init(synth->ser); + if (ser == NULL) { + failed = -1; + } else { + outb_p(0, ser->port); + mdelay(1); + outb_p('\r', ser->port); + } + } else { + failed = -1; + pr_warn("ttyS%i is an invalid port\n", synth->ser); + } + if (failed) { + pr_info("%s: not found\n", synth->long_name); + return -ENODEV; + } + pr_info("%s: ttyS%i, Driver Version %s\n", + synth->long_name, synth->ser, synth->version); + synth->alive = 1; + return 0; +} +EXPORT_SYMBOL_GPL(spk_serial_synth_probe); + void spk_stop_serial_interrupt(void) { if (speakup_info.port_tts == 0) @@ -223,6 +252,23 @@ return 0; } +const char *spk_serial_synth_immediate(struct spk_synth *synth, const char *buff) +{ + u_char ch; + + while ((ch = *buff)) { + if (ch == '\n') + ch = synth->procspeech; + if (spk_wait_for_xmitr(synth)) + outb(ch, speakup_info.port_tts); + else + return buff; + buff++; + } + return NULL; +} +EXPORT_SYMBOL_GPL(spk_serial_synth_immediate); + void spk_serial_release(void) { spk_stop_serial_interrupt(); Index: linux-4.11-rc2/drivers/staging/speakup/speakup_acntsa.c =================================================================== --- linux-4.11-rc2.orig/drivers/staging/speakup/speakup_acntsa.c +++ linux-4.11-rc2/drivers/staging/speakup/speakup_acntsa.c @@ -102,7 +102,7 @@ .io_ops = &spk_serial_io_ops, .probe = synth_probe, .release = spk_serial_release, - .synth_immediate = spk_synth_immediate, + .synth_immediate = spk_serial_synth_immediate, .catch_up = spk_do_catch_up, .flush = spk_synth_flush, .is_alive = spk_synth_is_alive_restart, @@ -127,7 +127,7 @@ failed = spk_serial_synth_probe(synth); if (failed == 0) { - spk_synth_immediate(synth, "\033=R\r"); + synth->synth_immediate(synth, "\033=R\r"); mdelay(100); } synth->alive = !failed; Index: linux-4.11-rc2/drivers/staging/speakup/speakup_apollo.c =================================================================== --- linux-4.11-rc2.orig/drivers/staging/speakup/speakup_apollo.c +++ linux-4.11-rc2/drivers/staging/speakup/speakup_apollo.c @@ -111,7 +111,7 @@ .io_ops = &spk_serial_io_ops, .probe = spk_serial_synth_probe, .release = spk_serial_release, - .synth_immediate = spk_synth_immediate, + .synth_immediate = spk_serial_synth_immediate, .catch_up = do_catch_up, .flush = spk_synth_flush, .is_alive = spk_synth_is_alive_restart, Index: linux-4.11-rc2/drivers/staging/speakup/speakup_audptr.c =================================================================== --- linux-4.11-rc2.orig/drivers/staging/speakup/speakup_audptr.c +++ linux-4.11-rc2/drivers/staging/speakup/speakup_audptr.c @@ -107,7 +107,7 @@ .io_ops = &spk_serial_io_ops, .probe = synth_probe, .release = spk_serial_release, - .synth_immediate = spk_synth_immediate, + .synth_immediate = spk_serial_synth_immediate, .catch_up = spk_do_catch_up, .flush = synth_flush, .is_alive = spk_synth_is_alive_restart, @@ -144,7 +144,7 @@ unsigned char test = 0; char synth_id[40] = ""; - spk_synth_immediate(synth, "\x05[Q]"); + synth->synth_immediate(synth, "\x05[Q]"); synth_id[test] = spk_serial_in(); if (synth_id[test] == 'A') { do { Index: linux-4.11-rc2/drivers/staging/speakup/speakup_bns.c =================================================================== --- linux-4.11-rc2.orig/drivers/staging/speakup/speakup_bns.c +++ linux-4.11-rc2/drivers/staging/speakup/speakup_bns.c @@ -99,7 +99,7 @@ .io_ops = &spk_serial_io_ops, .probe = spk_serial_synth_probe, .release = spk_serial_release, - .synth_immediate = spk_synth_immediate, + .synth_immediate = spk_serial_synth_immediate, .catch_up = spk_do_catch_up, .flush = spk_synth_flush, .is_alive = spk_synth_is_alive_restart, Index: linux-4.11-rc2/drivers/staging/speakup/speakup_decext.c =================================================================== --- linux-4.11-rc2.orig/drivers/staging/speakup/speakup_decext.c +++ linux-4.11-rc2/drivers/staging/speakup/speakup_decext.c @@ -130,7 +130,7 @@ .io_ops = &spk_serial_io_ops, .probe = spk_serial_synth_probe, .release = spk_serial_release, - .synth_immediate = spk_synth_immediate, + .synth_immediate = spk_serial_synth_immediate, .catch_up = do_catch_up, .flush = synth_flush, .is_alive = spk_synth_is_alive_restart, @@ -224,7 +224,7 @@ static void synth_flush(struct spk_synth *synth) { in_escape = 0; - spk_synth_immediate(synth, "\033P;10z\033\\"); + synth->synth_immediate(synth, "\033P;10z\033\\"); } module_param_named(ser, synth_decext.ser, int, 0444); Index: linux-4.11-rc2/drivers/staging/speakup/speakup_dectlk.c =================================================================== --- linux-4.11-rc2.orig/drivers/staging/speakup/speakup_dectlk.c +++ linux-4.11-rc2/drivers/staging/speakup/speakup_dectlk.c @@ -133,7 +133,7 @@ .io_ops = &spk_serial_io_ops, .probe = spk_serial_synth_probe, .release = spk_serial_release, - .synth_immediate = spk_synth_immediate, + .synth_immediate = spk_serial_synth_immediate, .catch_up = do_catch_up, .flush = synth_flush, .is_alive = spk_synth_is_alive_restart, Index: linux-4.11-rc2/drivers/staging/speakup/speakup_dummy.c =================================================================== --- linux-4.11-rc2.orig/drivers/staging/speakup/speakup_dummy.c +++ linux-4.11-rc2/drivers/staging/speakup/speakup_dummy.c @@ -101,7 +101,7 @@ .io_ops = &spk_serial_io_ops, .probe = spk_serial_synth_probe, .release = spk_serial_release, - .synth_immediate = spk_synth_immediate, + .synth_immediate = spk_serial_synth_immediate, .catch_up = spk_do_catch_up, .flush = spk_synth_flush, .is_alive = spk_synth_is_alive_restart, Index: linux-4.11-rc2/drivers/staging/speakup/speakup_ltlk.c =================================================================== --- linux-4.11-rc2.orig/drivers/staging/speakup/speakup_ltlk.c +++ linux-4.11-rc2/drivers/staging/speakup/speakup_ltlk.c @@ -114,7 +114,7 @@ .io_ops = &spk_serial_io_ops, .probe = synth_probe, .release = spk_serial_release, - .synth_immediate = spk_synth_immediate, + .synth_immediate = spk_serial_synth_immediate, .catch_up = spk_do_catch_up, .flush = spk_synth_flush, .is_alive = spk_synth_is_alive_restart, @@ -139,7 +139,7 @@ unsigned char *t, i; unsigned char buf[50], rom_v[20]; - spk_synth_immediate(synth, "\x18\x01?"); + synth->synth_immediate(synth, "\x18\x01?"); for (i = 0; i < 50; i++) { buf[i] = spk_serial_in(); if (i > 2 && buf[i] == 0x7f) Index: linux-4.11-rc2/drivers/staging/speakup/speakup_spkout.c =================================================================== --- linux-4.11-rc2.orig/drivers/staging/speakup/speakup_spkout.c +++ linux-4.11-rc2/drivers/staging/speakup/speakup_spkout.c @@ -105,7 +105,7 @@ .io_ops = &spk_serial_io_ops, .probe = spk_serial_synth_probe, .release = spk_serial_release, - .synth_immediate = spk_synth_immediate, + .synth_immediate = spk_serial_synth_immediate, .catch_up = spk_do_catch_up, .flush = synth_flush, .is_alive = spk_synth_is_alive_restart, Index: linux-4.11-rc2/drivers/staging/speakup/speakup_txprt.c =================================================================== --- linux-4.11-rc2.orig/drivers/staging/speakup/speakup_txprt.c +++ linux-4.11-rc2/drivers/staging/speakup/speakup_txprt.c @@ -98,7 +98,7 @@ .io_ops = &spk_serial_io_ops, .probe = spk_serial_synth_probe, .release = spk_serial_release, - .synth_immediate = spk_synth_immediate, + .synth_immediate = spk_serial_synth_immediate, .catch_up = spk_do_catch_up, .flush = spk_synth_flush, .is_alive = spk_synth_is_alive_restart, Index: linux-4.11-rc2/drivers/staging/speakup/spk_priv.h =================================================================== --- linux-4.11-rc2.orig/drivers/staging/speakup/spk_priv.h +++ linux-4.11-rc2/drivers/staging/speakup/spk_priv.h @@ -57,7 +57,7 @@ const char *buf, size_t count); int spk_serial_synth_probe(struct spk_synth *synth); -const char *spk_synth_immediate(struct spk_synth *synth, const char *buff); +const char *spk_serial_synth_immediate(struct spk_synth *synth, const char *buff); void spk_do_catch_up(struct spk_synth *synth); void spk_synth_flush(struct spk_synth *synth); int spk_synth_is_alive_nop(struct spk_synth *synth); Index: linux-4.11-rc2/drivers/staging/speakup/synth.c =================================================================== --- linux-4.11-rc2.orig/drivers/staging/speakup/synth.c +++ linux-4.11-rc2/drivers/staging/speakup/synth.c @@ -44,35 +44,6 @@ static int do_synth_init(struct spk_synth *in_synth); -int spk_serial_synth_probe(struct spk_synth *synth) -{ - const struct old_serial_port *ser; - int failed = 0; - - if ((synth->ser >= SPK_LO_TTY) && (synth->ser <= SPK_HI_TTY)) { - ser = spk_serial_init(synth->ser); - if (ser == NULL) { - failed = -1; - } else { - outb_p(0, ser->port); - mdelay(1); - outb_p('\r', ser->port); - } - } else { - failed = -1; - pr_warn("ttyS%i is an invalid port\n", synth->ser); - } - if (failed) { - pr_info("%s: not found\n", synth->long_name); - return -ENODEV; - } - pr_info("%s: ttyS%i, Driver Version %s\n", - synth->long_name, synth->ser, synth->version); - synth->alive = 1; - return 0; -} -EXPORT_SYMBOL_GPL(spk_serial_synth_probe); - /* * Main loop of the progression thread: keep eating from the buffer * and push to the serial port, waiting as needed @@ -146,23 +117,6 @@ } EXPORT_SYMBOL_GPL(spk_do_catch_up); -const char *spk_synth_immediate(struct spk_synth *synth, const char *buff) -{ - u_char ch; - - while ((ch = *buff)) { - if (ch == '\n') - ch = synth->procspeech; - if (spk_wait_for_xmitr(synth)) - outb(ch, speakup_info.port_tts); - else - return buff; - buff++; - } - return NULL; -} -EXPORT_SYMBOL_GPL(spk_synth_immediate); - void spk_synth_flush(struct spk_synth *synth) { synth->io_ops->synth_out(synth, synth->clear); ^ permalink raw reply [flat|nested] 3+ messages in thread
[parent not found: <20170316021409.GA26547@kroah.com>]
* Re: [patch 4/4] staging: speakup: move those functions which do outgoing serial comms, into serialio.c [not found] ` <20170316021409.GA26547@kroah.com> @ ` Okash Khawaja 0 siblings, 0 replies; 3+ messages in thread From: Okash Khawaja @ UTC (permalink / raw) To: Greg Kroah-Hartman Cc: Samuel Thibault, linux-kernel, devel, Kirk Reiser, speakup, Chris Brannon On Thu, Mar 16, 2017 at 11:14:09AM +0900, Greg Kroah-Hartman wrote: > On Tue, Mar 14, 2017 at 01:41:55PM +0000, Okash Khawaja wrote: > > This moves spk_synth_immediate and spk_serial_synth_probe functions into > > serialio.c. These functions do outgoing serial comms. The move is a step > > towards collecting all serial comms in serialio.c. This also renames > > spk_synth_immediate to spk_serial_synth_immediate. > > > > Code inside those functions has not been changed. Along the way, this patch > > also fixes a couple of spots which were calling spk_synth_immediate directly, > > so that the calls now happen via the spk_syth struct. > > > > Signed-off-by: Okash Khawaja <okash.khawaja@gmail.com> > > Reviewed-by: Samuel Thibault <samuel.thibault@ens-lyon.org> > > > > Index: linux-4.11-rc2/drivers/staging/speakup/serialio.c > > This patch doesn't apply to my tree at all. The first 3 applied with > some fuzz, so I think you are not working against linux-next. Please > rebase your patch against linux-next, or my staging-testing branch, and > resend so I can apply it. Sure, will rebase against staging-testing. Just this patch or the patch set? ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~ UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <20170316070154.GA24362@kroah.com>
` [patch 4/4] staging: speakup: move those functions which do outgoing serial comms, into serialio.c Okash Khawaja
[patch 0/4] staging: speakup: refactor to make raw serial i/o swappable Okash Khawaja
` [patch 4/4] staging: speakup: move those functions which do outgoing serial comms, into serialio.c Okash Khawaja
[not found] ` <20170316021409.GA26547@kroah.com>
` Okash Khawaja
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).