TTY: speakup, do not use serialP
authorJiri Slaby <jslaby@suse.cz>
Mon, 5 Mar 2012 13:52:11 +0000 (14:52 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 8 Mar 2012 19:47:02 +0000 (11:47 -0800)
The structures there are going away. And speakup has enough troubles
already.

So define a structure similar to what 8250 does: old_serial_port.
There define an array of speed, port base and so on needed for
configuration. Then use this structure instead of serial_state defined
in serialP.h.

Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Cc: William Hubbs <w.d.hubbs@gmail.com>
Cc: Chris Brannon <chris@the-brannons.com>
Cc: Kirk Reiser <kirk@braille.uwo.ca>
Cc: Samuel Thibault <samuel.thibault@ens-lyon.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/speakup/serialio.c
drivers/staging/speakup/serialio.h
drivers/staging/speakup/spk_priv.h
drivers/staging/speakup/synth.c

index 7f3d87bf592739821ca05e72b9beb4c52c254605..a97d3d5b58a48f9665625518b8d4b27b5ab782a0 100644 (file)
@@ -8,21 +8,20 @@
 
 static void start_serial_interrupt(int irq);
 
-static struct serial_state rs_table[] = {
+static const struct old_serial_port rs_table[] = {
        SERIAL_PORT_DFNS
 };
-static struct serial_state *serstate;
+static const struct old_serial_port *serstate;
 static int timeouts;
 
-struct serial_state *spk_serial_init(int index)
+const struct old_serial_port *spk_serial_init(int index)
 {
        int baud = 9600, quot = 0;
        unsigned int cval = 0;
        int cflag = CREAD | HUPCL | CLOCAL | B9600 | CS8;
-       struct serial_state *ser = NULL;
+       const struct old_serial_port *ser = rs_table + index;
        int err;
 
-       ser = rs_table + index;
        /*      Divisor, bytesize and parity */
        quot = ser->baud_base / baud;
        cval = cflag & (CSIZE | CSTOPB);
@@ -41,7 +40,7 @@ struct serial_state *spk_serial_init(int index)
                __release_region(&ioport_resource, ser->port, 8);
                err = synth_request_region(ser->port, 8);
                if (err) {
-                       pr_warn("Unable to allocate port at %lx, errno %i",
+                       pr_warn("Unable to allocate port at %x, errno %i",
                                ser->port, err);
                        return NULL;
                }
index d785b1f6a3b3c62ef3c9bc5a158da8e4b71e9c37..614271f9b99f8a86d3b927445ed6eb9b79919904 100644 (file)
@@ -4,11 +4,22 @@
 #include <linux/serial.h>      /* for rs_table, serial constants &
                                   serial_uart_config */
 #include <linux/serial_reg.h>  /* for more serial constants */
-#include <linux/serialP.h>     /* for struct serial_state */
 #ifndef __sparc__
 #include <asm/serial.h>
 #endif
 
+/*
+ * this is cut&paste from 8250.h. Get rid of the structure, the definitions
+ * and this whole broken driver.
+ */
+struct old_serial_port {
+       unsigned int uart; /* unused */
+       unsigned int baud_base;
+       unsigned int port;
+       unsigned int irq;
+       unsigned int flags; /* unused */
+};
+
 /* countdown values for serial timeouts in us */
 #define SPK_SERIAL_TIMEOUT 100000
 /* countdown values transmitter/dsr timeouts in us */
index 16ace4af68a943543bb66521bc8bca003d4e9770..a47c5b78d57d78ff63d336f2d1a012f5dcdd9481 100644 (file)
@@ -44,7 +44,7 @@
 
 #define KT_SPKUP 15
 
-extern struct serial_state *spk_serial_init(int index);
+extern const struct old_serial_port *spk_serial_init(int index);
 extern void stop_serial_interrupt(void);
 extern int wait_for_xmitr(void);
 extern unsigned char spk_serial_in(void);
index 2222d6919ef58d820afbee1ef4ab97307771527d..331eae7887008338446be4de9c0aea139fccd261 100644 (file)
@@ -34,7 +34,7 @@ static int do_synth_init(struct spk_synth *in_synth);
 
 int serial_synth_probe(struct spk_synth *synth)
 {
-       struct serial_state *ser;
+       const struct old_serial_port *ser;
        int failed = 0;
 
        if ((synth->ser >= SPK_LO_TTY) && (synth->ser <= SPK_HI_TTY)) {