[patch 5/8] staging: speakup: move those functions which do outgoing serial comms, into serialio.c

Samuel Thibault samuel.thibault at ens-lyon.org
Sun Mar 12 08:26:15 EDT 2017


okash.khawaja at gmail.com, on dim. 12 mars 2017 12:16:49 +0000, 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 at gmail.com>

Reviewed-by: Samuel Thibault <samuel.thibault at ens-lyon.org>

> Index: linux-4.10.1/drivers/staging/speakup/serialio.c
> ===================================================================
> --- linux-4.10.1.orig/drivers/staging/speakup/serialio.c
> +++ linux-4.10.1/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.10.1/drivers/staging/speakup/speakup_acntsa.c
> ===================================================================
> --- linux-4.10.1.orig/drivers/staging/speakup/speakup_acntsa.c
> +++ linux-4.10.1/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.10.1/drivers/staging/speakup/speakup_apollo.c
> ===================================================================
> --- linux-4.10.1.orig/drivers/staging/speakup/speakup_apollo.c
> +++ linux-4.10.1/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.10.1/drivers/staging/speakup/speakup_audptr.c
> ===================================================================
> --- linux-4.10.1.orig/drivers/staging/speakup/speakup_audptr.c
> +++ linux-4.10.1/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.10.1/drivers/staging/speakup/speakup_bns.c
> ===================================================================
> --- linux-4.10.1.orig/drivers/staging/speakup/speakup_bns.c
> +++ linux-4.10.1/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.10.1/drivers/staging/speakup/speakup_decext.c
> ===================================================================
> --- linux-4.10.1.orig/drivers/staging/speakup/speakup_decext.c
> +++ linux-4.10.1/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, S_IRUGO);
> Index: linux-4.10.1/drivers/staging/speakup/speakup_dectlk.c
> ===================================================================
> --- linux-4.10.1.orig/drivers/staging/speakup/speakup_dectlk.c
> +++ linux-4.10.1/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.10.1/drivers/staging/speakup/speakup_dummy.c
> ===================================================================
> --- linux-4.10.1.orig/drivers/staging/speakup/speakup_dummy.c
> +++ linux-4.10.1/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.10.1/drivers/staging/speakup/speakup_ltlk.c
> ===================================================================
> --- linux-4.10.1.orig/drivers/staging/speakup/speakup_ltlk.c
> +++ linux-4.10.1/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.10.1/drivers/staging/speakup/speakup_spkout.c
> ===================================================================
> --- linux-4.10.1.orig/drivers/staging/speakup/speakup_spkout.c
> +++ linux-4.10.1/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.10.1/drivers/staging/speakup/speakup_txprt.c
> ===================================================================
> --- linux-4.10.1.orig/drivers/staging/speakup/speakup_txprt.c
> +++ linux-4.10.1/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.10.1/drivers/staging/speakup/spk_priv.h
> ===================================================================
> --- linux-4.10.1.orig/drivers/staging/speakup/spk_priv.h
> +++ linux-4.10.1/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-4.10.1/drivers/staging/speakup/synth.c
> ===================================================================
> --- linux-4.10.1.orig/drivers/staging/speakup/synth.c
> +++ linux-4.10.1/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
> @@ -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);
> 

-- 
Samuel
How do I type "for i in *.dvi do xdvi i done" in a GUI?
(Discussion in comp.os.linux.misc on the intuitiveness of interfaces.)


More information about the Speakup mailing list