This merely adds the missing synth parameter to all io functions.
Signed-off-by: Samuel Thibault <[email protected]>
Index: linux-5.10/drivers/accessibility/speakup/spk_ttyio.c
===================================================================
--- linux-5.10.orig/drivers/accessibility/speakup/spk_ttyio.c
+++ linux-5.10/drivers/accessibility/speakup/spk_ttyio.c
@@ -114,11 +114,11 @@ static struct tty_ldisc_ops spk_ttyio_ld
static int spk_ttyio_out(struct spk_synth *in_synth, const char ch);
static int spk_ttyio_out_unicode(struct spk_synth *in_synth, u16 ch);
-static void spk_ttyio_send_xchar(char ch);
-static void spk_ttyio_tiocmset(unsigned int set, unsigned int clear);
-static unsigned char spk_ttyio_in(void);
-static unsigned char spk_ttyio_in_nowait(void);
-static void spk_ttyio_flush_buffer(void);
+static void spk_ttyio_send_xchar(struct spk_synth *in_synth, char ch);
+static void spk_ttyio_tiocmset(struct spk_synth *in_synth, unsigned int set, unsigned int clear);
+static unsigned char spk_ttyio_in(struct spk_synth *in_synth);
+static unsigned char spk_ttyio_in_nowait(struct spk_synth *in_synth);
+static void spk_ttyio_flush_buffer(struct spk_synth *in_synth);
static int spk_ttyio_wait_for_xmitr(struct spk_synth *in_synth);
struct spk_io_ops spk_ttyio_ops = {
@@ -281,7 +281,7 @@ static int check_tty(struct tty_struct *
return 0;
}
-static void spk_ttyio_send_xchar(char ch)
+static void spk_ttyio_send_xchar(struct spk_synth *in_synth, char ch)
{
mutex_lock(&speakup_tty_mutex);
if (check_tty(speakup_tty)) {
@@ -294,7 +294,7 @@ static void spk_ttyio_send_xchar(char ch
mutex_unlock(&speakup_tty_mutex);
}
-static void spk_ttyio_tiocmset(unsigned int set, unsigned int clear)
+static void spk_ttyio_tiocmset(struct spk_synth *in_synth, unsigned int set, unsigned int clear)
{
mutex_lock(&speakup_tty_mutex);
if (check_tty(speakup_tty)) {
@@ -312,7 +312,7 @@ static int spk_ttyio_wait_for_xmitr(stru
return 1;
}
-static unsigned char ttyio_in(int timeout)
+static unsigned char ttyio_in(struct spk_synth *in_synth, int timeout)
{
struct spk_ldisc_data *ldisc_data = speakup_tty->disc_data;
char rv;
@@ -339,19 +339,19 @@ static unsigned char ttyio_in(int timeou
return rv;
}
-static unsigned char spk_ttyio_in(void)
+static unsigned char spk_ttyio_in(struct spk_synth *in_synth)
{
return ttyio_in(SPK_SYNTH_TIMEOUT);
}
-static unsigned char spk_ttyio_in_nowait(void)
+static unsigned char spk_ttyio_in_nowait(struct spk_synth *in_synth)
{
u8 rv = ttyio_in(0);
return (rv == 0xff) ? 0 : rv;
}
-static void spk_ttyio_flush_buffer(void)
+static void spk_ttyio_flush_buffer(struct spk_synth *in_synth)
{
mutex_lock(&speakup_tty_mutex);
if (check_tty(speakup_tty)) {
@@ -379,7 +379,7 @@ int spk_ttyio_synth_probe(struct spk_syn
}
EXPORT_SYMBOL_GPL(spk_ttyio_synth_probe);
-void spk_ttyio_release(void)
+void spk_ttyio_release(struct spk_synth *in_synth)
{
if (!speakup_tty)
return;
@@ -395,15 +395,15 @@ void spk_ttyio_release(void)
}
EXPORT_SYMBOL_GPL(spk_ttyio_release);
-const char *spk_ttyio_synth_immediate(struct spk_synth *synth, const char *buff)
+const char *spk_ttyio_synth_immediate(struct spk_synth *in_synth, const char *buff)
{
u_char ch;
while ((ch = *buff)) {
if (ch == '\n')
- ch = synth->procspeech;
+ ch = in_synth->procspeech;
if (tty_write_room(speakup_tty) < 1 ||
- !synth->io_ops->synth_out(synth, ch))
+ !in_synth->io_ops->synth_out(in_synth, ch))
return buff;
buff++;
}
Index: linux-5.10/drivers/accessibility/speakup/serialio.c
===================================================================
--- linux-5.10.orig/drivers/accessibility/speakup/serialio.c
+++ linux-5.10/drivers/accessibility/speakup/serialio.c
@@ -27,11 +27,11 @@ static const struct old_serial_port *ser
static int timeouts;
static int spk_serial_out(struct spk_synth *in_synth, const char ch);
-static void spk_serial_send_xchar(char ch);
-static void spk_serial_tiocmset(unsigned int set, unsigned int clear);
-static unsigned char spk_serial_in(void);
-static unsigned char spk_serial_in_nowait(void);
-static void spk_serial_flush_buffer(void);
+static void spk_serial_send_xchar(struct spk_synth *in_synth, char ch);
+static void spk_serial_tiocmset(struct spk_synth *in_synth, unsigned int set, unsigned int clear);
+static unsigned char spk_serial_in(struct spk_synth *in_synth);
+static unsigned char spk_serial_in_nowait(struct spk_synth *in_synth);
+static void spk_serial_flush_buffer(struct spk_synth *in_synth);
static int spk_serial_wait_for_xmitr(struct spk_synth *in_synth);
struct spk_io_ops spk_serial_io_ops = {
@@ -150,7 +150,7 @@ static void start_serial_interrupt(int i
outb(1, speakup_info.port_tts + UART_FCR); /* Turn FIFO On */
}
-static void spk_serial_send_xchar(char ch)
+static void spk_serial_send_xchar(struct spk_synth *synth, char ch)
{
int timeout = SPK_XMITR_TIMEOUT;
@@ -162,7 +162,7 @@ static void spk_serial_send_xchar(char c
outb(ch, speakup_info.port_tts);
}
-static void spk_serial_tiocmset(unsigned int set, unsigned int clear)
+static void spk_serial_tiocmset(struct spk_synth *in_synth, unsigned int set, unsigned int clear)
{
int old = inb(speakup_info.port_tts + UART_MCR);
@@ -275,7 +275,7 @@ static unsigned char spk_serial_in_nowai
return inb_p(speakup_info.port_tts + UART_RX);
}
-static void spk_serial_flush_buffer(void)
+static void spk_serial_flush_buffer(struct spk_synth *in_synth)
{
/* TODO: flush the UART 16550 buffer */
}
Index: linux-5.10/drivers/accessibility/speakup/speakup_apollo.c
===================================================================
--- linux-5.10.orig/drivers/accessibility/speakup/speakup_apollo.c
+++ linux-5.10/drivers/accessibility/speakup/speakup_apollo.c
@@ -163,8 +163,8 @@ static void do_catch_up(struct spk_synth
full_time_val = full_time->u.n.value;
spin_unlock_irqrestore(&speakup_info.spinlock, flags);
if (!synth->io_ops->synth_out(synth, ch)) {
- synth->io_ops->tiocmset(0, UART_MCR_RTS);
- synth->io_ops->tiocmset(UART_MCR_RTS, 0);
+ synth->io_ops->tiocmset(synth, 0, UART_MCR_RTS);
+ synth->io_ops->tiocmset(synth, UART_MCR_RTS, 0);
schedule_timeout(msecs_to_jiffies(full_time_val));
continue;
}
Index: linux-5.10/drivers/accessibility/speakup/speakup_audptr.c
===================================================================
--- linux-5.10.orig/drivers/accessibility/speakup/speakup_audptr.c
+++ linux-5.10/drivers/accessibility/speakup/speakup_audptr.c
@@ -119,8 +119,8 @@ static struct spk_synth synth_audptr = {
static void synth_flush(struct spk_synth *synth)
{
- synth->io_ops->flush_buffer();
- synth->io_ops->send_xchar(SYNTH_CLEAR);
+ synth->io_ops->flush_buffer(synth);
+ synth->io_ops->send_xchar(synth, SYNTH_CLEAR);
synth->io_ops->synth_out(synth, PROCSPEECH);
}
@@ -130,11 +130,11 @@ static void synth_version(struct spk_syn
char synth_id[40] = "";
synth->synth_immediate(synth, "\x05[Q]");
- synth_id[test] = synth->io_ops->synth_in();
+ synth_id[test] = synth->io_ops->synth_in(synth);
if (synth_id[test] == 'A') {
do {
/* read version string from synth */
- synth_id[++test] = synth->io_ops->synth_in();
+ synth_id[++test] = synth->io_ops->synth_in(synth);
} while (synth_id[test] != '\n' && test < 32);
synth_id[++test] = 0x00;
}
Index: linux-5.10/drivers/accessibility/speakup/speakup_spkout.c
===================================================================
--- linux-5.10.orig/drivers/accessibility/speakup/speakup_spkout.c
+++ linux-5.10/drivers/accessibility/speakup/speakup_spkout.c
@@ -117,8 +117,8 @@ static struct spk_synth synth_spkout = {
static void synth_flush(struct spk_synth *synth)
{
- synth->io_ops->flush_buffer();
- synth->io_ops->send_xchar(SYNTH_CLEAR);
+ synth->io_ops->flush_buffer(synth);
+ synth->io_ops->send_xchar(synth, SYNTH_CLEAR);
}
module_param_named(ser, synth_spkout.ser, int, 0444);
Index: linux-5.10/drivers/accessibility/speakup/spk_types.h
===================================================================
--- linux-5.10.orig/drivers/accessibility/speakup/spk_types.h
+++ linux-5.10/drivers/accessibility/speakup/spk_types.h
@@ -157,11 +157,11 @@ struct spk_synth;
struct spk_io_ops {
int (*synth_out)(struct spk_synth *synth, const char ch);
int (*synth_out_unicode)(struct spk_synth *synth, u16 ch);
- void (*send_xchar)(char ch);
- void (*tiocmset)(unsigned int set, unsigned int clear);
- unsigned char (*synth_in)(void);
- unsigned char (*synth_in_nowait)(void);
- void (*flush_buffer)(void);
+ void (*send_xchar)(struct spk_synth *synth, char ch);
+ void (*tiocmset)(struct spk_synth *synth, unsigned int set, unsigned int clear);
+ unsigned char (*synth_in)(struct spk_synth *synth);
+ unsigned char (*synth_in_nowait)(struct spk_synth *synth);
+ void (*flush_buffer)(struct spk_synth *synth);
int (*wait_for_xmitr)(struct spk_synth *synth);
};
@@ -188,7 +188,7 @@ struct spk_synth {
int *default_vol;
struct spk_io_ops *io_ops;
int (*probe)(struct spk_synth *synth);
- void (*release)(void);
+ void (*release)(struct spk_synth *synth);
const char *(*synth_immediate)(struct spk_synth *synth,
const char *buff);
void (*catch_up)(struct spk_synth *synth);
Index: linux-5.10/drivers/accessibility/speakup/speakup_decext.c
===================================================================
--- linux-5.10.orig/drivers/accessibility/speakup/speakup_decext.c
+++ linux-5.10/drivers/accessibility/speakup/speakup_decext.c
@@ -218,7 +218,7 @@ static void do_catch_up(struct spk_synth
static void synth_flush(struct spk_synth *synth)
{
in_escape = 0;
- synth->io_ops->flush_buffer();
+ synth->io_ops->flush_buffer(synth);
synth->synth_immediate(synth, "\033P;10z\033\\");
}
Index: linux-5.10/drivers/accessibility/speakup/speakup_dectlk.c
===================================================================
--- linux-5.10.orig/drivers/accessibility/speakup/speakup_dectlk.c
+++ linux-5.10/drivers/accessibility/speakup/speakup_dectlk.c
@@ -289,7 +289,7 @@ static void synth_flush(struct spk_synth
synth->io_ops->synth_out(synth, ']');
in_escape = 0;
is_flushing = 1;
- synth->io_ops->flush_buffer();
+ synth->io_ops->flush_buffer(synth);
synth->io_ops->synth_out(synth, SYNTH_CLEAR);
}
Index: linux-5.10/drivers/accessibility/speakup/speakup_dtlk.c
===================================================================
--- linux-5.10.orig/drivers/accessibility/speakup/speakup_dtlk.c
+++ linux-5.10/drivers/accessibility/speakup/speakup_dtlk.c
@@ -24,7 +24,7 @@
#define PROCSPEECH 0x00
static int synth_probe(struct spk_synth *synth);
-static void dtlk_release(void);
+static void dtlk_release(struct spk_synth *synth);
static const char *synth_immediate(struct spk_synth *synth, const char *buf);
static void do_catch_up(struct spk_synth *synth);
static void synth_flush(struct spk_synth *synth);
@@ -365,7 +365,7 @@ static int synth_probe(struct spk_synth
return 0;
}
-static void dtlk_release(void)
+static void dtlk_release(struct spk_synth *synth)
{
spk_stop_serial_interrupt();
if (speakup_info.port_tts)
Index: linux-5.10/drivers/accessibility/speakup/speakup_ltlk.c
===================================================================
--- linux-5.10.orig/drivers/accessibility/speakup/speakup_ltlk.c
+++ linux-5.10/drivers/accessibility/speakup/speakup_ltlk.c
@@ -132,7 +132,7 @@ static void synth_interrogate(struct spk
synth->synth_immediate(synth, "\x18\x01?");
for (i = 0; i < 50; i++) {
- buf[i] = synth->io_ops->synth_in();
+ buf[i] = synth->io_ops->synth_in(synth);
if (i > 2 && buf[i] == 0x7f)
break;
}
Index: linux-5.10/drivers/accessibility/speakup/synth.c
===================================================================
--- linux-5.10.orig/drivers/accessibility/speakup/synth.c
+++ linux-5.10/drivers/accessibility/speakup/synth.c
@@ -137,14 +137,14 @@ EXPORT_SYMBOL_GPL(spk_do_catch_up_unicod
void spk_synth_flush(struct spk_synth *synth)
{
- synth->io_ops->flush_buffer();
+ synth->io_ops->flush_buffer(synth);
synth->io_ops->synth_out(synth, synth->clear);
}
EXPORT_SYMBOL_GPL(spk_synth_flush);
unsigned char spk_synth_get_index(struct spk_synth *synth)
{
- return synth->io_ops->synth_in_nowait();
+ return synth->io_ops->synth_in_nowait(synth);
}
EXPORT_SYMBOL_GPL(spk_synth_get_index);
@@ -440,7 +440,7 @@ void synth_release(void)
sysfs_remove_group(speakup_kobj, &synth->attributes);
for (var = synth->vars; var->var_id != MAXVARS; var++)
speakup_unregister_var(var->var_id);
- synth->release();
+ synth->release(synth);
synth = NULL;
}
Index: linux-5.10/drivers/accessibility/speakup/speakup_acntpc.c
===================================================================
--- linux-5.10.orig/drivers/accessibility/speakup/speakup_acntpc.c
+++ linux-5.10/drivers/accessibility/speakup/speakup_acntpc.c
@@ -25,7 +25,7 @@
#define PROCSPEECH '\r'
static int synth_probe(struct spk_synth *synth);
-static void accent_release(void);
+static void accent_release(struct spk_synth *synth);
static const char *synth_immediate(struct spk_synth *synth, const char *buf);
static void do_catch_up(struct spk_synth *synth);
static void synth_flush(struct spk_synth *synth);
@@ -294,7 +294,7 @@ static int synth_probe(struct spk_synth
return 0;
}
-static void accent_release(void)
+static void accent_release(struct spk_synth *synth)
{
spk_stop_serial_interrupt();
if (speakup_info.port_tts)
Index: linux-5.10/drivers/accessibility/speakup/speakup_decpc.c
===================================================================
--- linux-5.10.orig/drivers/accessibility/speakup/speakup_decpc.c
+++ linux-5.10/drivers/accessibility/speakup/speakup_decpc.c
@@ -125,7 +125,7 @@ enum { PRIMARY_DIC = 0, USER_DIC, COMMAN
#define SYNTH_IO_EXTENT 8
static int synth_probe(struct spk_synth *synth);
-static void dtpc_release(void);
+static void dtpc_release(struct spk_synth *synth);
static const char *synth_immediate(struct spk_synth *synth, const char *buf);
static void do_catch_up(struct spk_synth *synth);
static void synth_flush(struct spk_synth *synth);
@@ -474,7 +474,7 @@ static int synth_probe(struct spk_synth
return 0;
}
-static void dtpc_release(void)
+static void dtpc_release(struct spk_synth *synth)
{
spk_stop_serial_interrupt();
if (speakup_info.port_tts)
Index: linux-5.10/drivers/accessibility/speakup/speakup_keypc.c
===================================================================
--- linux-5.10.orig/drivers/accessibility/speakup/speakup_keypc.c
+++ linux-5.10/drivers/accessibility/speakup/speakup_keypc.c
@@ -24,7 +24,7 @@
#define SYNTH_CLEAR 0x03
static int synth_probe(struct spk_synth *synth);
-static void keynote_release(void);
+static void keynote_release(struct spk_synth *synth);
static const char *synth_immediate(struct spk_synth *synth, const char *buf);
static void do_catch_up(struct spk_synth *synth);
static void synth_flush(struct spk_synth *synth);
@@ -295,7 +295,7 @@ static int synth_probe(struct spk_synth
return 0;
}
-static void keynote_release(void)
+static void keynote_release(struct spk_synth *synth)
{
spk_stop_serial_interrupt();
if (synth_port)
Index: linux-5.10/drivers/accessibility/speakup/speakup_soft.c
===================================================================
--- linux-5.10.orig/drivers/accessibility/speakup/speakup_soft.c
+++ linux-5.10/drivers/accessibility/speakup/speakup_soft.c
@@ -24,7 +24,7 @@
#define CLEAR_SYNTH 0x18
static int softsynth_probe(struct spk_synth *synth);
-static void softsynth_release(void);
+static void softsynth_release(struct spk_synth *synth);
static int softsynth_is_alive(struct spk_synth *synth);
static unsigned char get_index(struct spk_synth *synth);
@@ -402,7 +402,7 @@ static int softsynth_probe(struct spk_sy
return 0;
}
-static void softsynth_release(void)
+static void softsynth_release(struct spk_synth *synth)
{
misc_deregister(&synth_device);
misc_deregister(&synthu_device);
Index: linux-5.10/drivers/accessibility/speakup/spk_priv.h
===================================================================
--- linux-5.10.orig/drivers/accessibility/speakup/spk_priv.h
+++ linux-5.10/drivers/accessibility/speakup/spk_priv.h
@@ -34,8 +34,8 @@
const struct old_serial_port *spk_serial_init(int index);
void spk_stop_serial_interrupt(void);
-void spk_serial_release(void);
-void spk_ttyio_release(void);
+void spk_serial_release(struct spk_synth *synth);
+void spk_ttyio_release(struct spk_synth *synth);
void spk_ttyio_register_ldisc(void);
void spk_ttyio_unregister_ldisc(void);
On Wed, Dec 09, 2020 at 09:58:30PM +0100, [email protected] wrote:
> This merely adds the missing synth parameter to all io functions.
>
> Signed-off-by: Samuel Thibault <[email protected]>
>
The build still breaks when this patch is applied:
CC [M] drivers/accessibility/speakup/spk_ttyio.o
In file included from drivers/accessibility/speakup/spk_ttyio.c:9:
drivers/accessibility/speakup/spk_ttyio.c: In function ‘spk_ttyio_in’:
drivers/accessibility/speakup/spk_priv.h:31:27: warning: passing argument 1 of ‘ttyio_in’ makes pointer from integer without a cast [-Wint-conversion]
31 | #define SPK_SYNTH_TIMEOUT 100000 /* in micro-seconds */
| ^~~~~~
| |
| int
drivers/accessibility/speakup/spk_ttyio.c:344:18: note: in expansion of macro ‘SPK_SYNTH_TIMEOUT’
344 | return ttyio_in(SPK_SYNTH_TIMEOUT);
| ^~~~~~~~~~~~~~~~~
drivers/accessibility/speakup/spk_ttyio.c:315:49: note: expected ‘struct spk_synth *’ but argument is of type ‘int’
315 | static unsigned char ttyio_in(struct spk_synth *in_synth, int timeout)
| ~~~~~~~~~~~~~~~~~~^~~~~~~~
drivers/accessibility/speakup/spk_ttyio.c:344:9: error: too few arguments to function ‘ttyio_in’
344 | return ttyio_in(SPK_SYNTH_TIMEOUT);
| ^~~~~~~~
drivers/accessibility/speakup/spk_ttyio.c:315:22: note: declared here
315 | static unsigned char ttyio_in(struct spk_synth *in_synth, int timeout)
| ^~~~~~~~
drivers/accessibility/speakup/spk_ttyio.c: In function ‘spk_ttyio_in_nowait’:
drivers/accessibility/speakup/spk_ttyio.c:349:10: error: too few arguments to function ‘ttyio_in’
349 | u8 rv = ttyio_in(0);
| ^~~~~~~~
drivers/accessibility/speakup/spk_ttyio.c:315:22: note: declared here
315 | static unsigned char ttyio_in(struct spk_synth *in_synth, int timeout)
| ^~~~~~~~
drivers/accessibility/speakup/spk_ttyio.c: In function ‘spk_ttyio_in’:
drivers/accessibility/speakup/spk_ttyio.c:345:1: error: control reaches end of non-void function [-Werror=return-type]
345 | }
| ^
cc1: some warnings being treated as errors
make[3]: *** [scripts/Makefile.build:279: drivers/accessibility/speakup/spk_ttyio.o] Error 1
make[2]: *** [scripts/Makefile.build:496: drivers/accessibility/speakup] Error 2
make[1]: *** [scripts/Makefile.build:496: drivers/accessibility] Error 2
make: *** [Makefile:1805: drivers] Error 2
You can't break the build on any patches in a series :(
thanks,
greg k-h
Greg KH, le jeu. 10 déc. 2020 16:23:11 +0100, a ecrit:
> The build still breaks when this patch is applied:
> drivers/accessibility/speakup/spk_ttyio.c:344:18: note: in expansion of macro ‘SPK_SYNTH_TIMEOUT’
> 344 | return ttyio_in(SPK_SYNTH_TIMEOUT);
Sorry, I had a refresh missing. I don't contribute often enough to Linux
any more, my quilt-fu is lacking :)
I'll resend the series.
Samuel
Greg KH, le jeu. 10 déc. 2020 16:23:11 +0100, a ecrit:
> On Wed, Dec 09, 2020 at 09:58:30PM +0100, [email protected] wrote:
> > This merely adds the missing synth parameter to all io functions.
> >
> > Signed-off-by: Samuel Thibault <[email protected]>
> >
>
> The build still breaks when this patch is applied:
?? I'll have to check
> You can't break the build on any patches in a series :(
Sure ! In my tests the build passes fine without any warning at each
patch...
Samuel
On Thu, Dec 10, 2020 at 09:03:00PM +0100, Samuel Thibault wrote:
> Greg KH, le jeu. 10 déc. 2020 16:23:11 +0100, a ecrit:
> > The build still breaks when this patch is applied:
>
> > drivers/accessibility/speakup/spk_ttyio.c:344:18: note: in expansion of macro ‘SPK_SYNTH_TIMEOUT’
> > 344 | return ttyio_in(SPK_SYNTH_TIMEOUT);
>
> Sorry, I had a refresh missing. I don't contribute often enough to Linux
> any more, my quilt-fu is lacking :)
>
> I'll resend the series.
Did you resend this? I can't find it...
thanks,
greg k-h
Greg KH, le mar. 05 janv. 2021 14:39:47 +0100, a ecrit:
> On Thu, Dec 10, 2020 at 09:03:00PM +0100, Samuel Thibault wrote:
> > Greg KH, le jeu. 10 déc. 2020 16:23:11 +0100, a ecrit:
> > > The build still breaks when this patch is applied:
> >
> > > drivers/accessibility/speakup/spk_ttyio.c:344:18: note: in expansion of macro ‘SPK_SYNTH_TIMEOUT’
> > > 344 | return ttyio_in(SPK_SYNTH_TIMEOUT);
> >
> > Sorry, I had a refresh missing. I don't contribute often enough to Linux
> > any more, my quilt-fu is lacking :)
> >
> > I'll resend the series.
>
> Did you resend this? I can't find it...
I believe so, but I'll resend again anyway (with some more changes iirc)
Samuel