OSDN Git Service

staging: speakup: move those functions which do outgoing serial comms, into serialio.c
authorOkash Khawaja <okash.khawaja@gmail.com>
Thu, 16 Mar 2017 08:10:17 +0000 (08:10 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 17 Mar 2017 06:19:09 +0000 (15:19 +0900)
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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
13 files changed:
drivers/staging/speakup/serialio.c
drivers/staging/speakup/speakup_acntsa.c
drivers/staging/speakup/speakup_apollo.c
drivers/staging/speakup/speakup_audptr.c
drivers/staging/speakup/speakup_bns.c
drivers/staging/speakup/speakup_decext.c
drivers/staging/speakup/speakup_dectlk.c
drivers/staging/speakup/speakup_dummy.c
drivers/staging/speakup/speakup_ltlk.c
drivers/staging/speakup/speakup_spkout.c
drivers/staging/speakup/speakup_txprt.c
drivers/staging/speakup/spk_priv.h
drivers/staging/speakup/synth.c

index e197200..e860e48 100644 (file)
@@ -136,6 +136,35 @@ static void start_serial_interrupt(int irq)
        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 @@ int spk_serial_out(struct spk_synth *in_synth, const char ch)
        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 6a66801..de67ffd 100644 (file)
@@ -102,7 +102,7 @@ static struct spk_synth synth_acntsa = {
        .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 @@ static int synth_probe(struct spk_synth *synth)
 
        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 c78a2ff..9cfdbbf 100644 (file)
@@ -111,7 +111,7 @@ static struct spk_synth synth_apollo = {
        .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 76e21f6..da3fd94 100644 (file)
@@ -107,7 +107,7 @@ static struct spk_synth synth_audptr = {
        .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 @@ static void synth_version(struct spk_synth *synth)
        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 6c46f67..a972a51 100644 (file)
@@ -99,7 +99,7 @@ static struct spk_synth synth_bns = {
        .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 4cf0384..fdbf330 100644 (file)
@@ -130,7 +130,7 @@ static struct spk_synth synth_decext = {
        .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 do_catch_up(struct spk_synth *synth)
 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 f36d579..386ac9d 100644 (file)
@@ -133,7 +133,7 @@ static struct spk_synth synth_dectlk = {
        .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 8d64dd8..8db7aa3 100644 (file)
@@ -101,7 +101,7 @@ static struct spk_synth synth_dummy = {
        .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 ca4c048..cb4f295 100644 (file)
@@ -114,7 +114,7 @@ static struct spk_synth synth_ltlk = {
        .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 @@ static void synth_interrogate(struct spk_synth *synth)
        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 8faeca4..d08ddc1 100644 (file)
@@ -105,7 +105,7 @@ static struct spk_synth synth_spkout = {
        .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 75364c8..3f531fb 100644 (file)
@@ -98,7 +98,7 @@ static struct spk_synth synth_txprt = {
        .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 7e12fec..995f586 100644 (file)
@@ -58,7 +58,7 @@ ssize_t spk_var_store(struct kobject *kobj, struct kobj_attribute *attr,
                      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 989681d..352e9ee 100644 (file)
@@ -44,35 +44,6 @@ EXPORT_SYMBOL_GPL(speakup_info);
 
 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 @@ void spk_do_catch_up(struct spk_synth *synth)
 }
 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);