OSDN Git Service

staging: speakup: make input functionality swappable
authorOkash Khawaja <okash.khawaja@gmail.com>
Sat, 29 Apr 2017 19:52:58 +0000 (20:52 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 15 May 2017 10:31:43 +0000 (12:31 +0200)
commitca693dcd5c02645063210e2352ff4909d9ddc7e9
tree35d64c9b7b31a3babba861d56af0410281bd7ff3
parent2a3e1437c1e3f5ef30d2bb533ca083d5da9c86f2
staging: speakup: make input functionality swappable

This moves functions which take input from external synth, into struct
spk_io_ops. The calling code then uses serial implementation of those methods
through spk_io_ops. That way we can add a parallel TTY-based implementation and
simply replace serial with TTY. That is what the next patch in this series does.

speakup_decext.c has get_last_char function which reads the most recent
available character from the synth. This patch changes that by defining
read_buff_add callback method of spk_syth and letting that update the last_char
global character read from the synth. read_buff_add is called from ISR, so
there is a possibility for last_char to be stale. Therefore it is marked as
volatile. It also pulls a repeated get_index implementation into synth.c, to
be used as a utility function.

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>
drivers/staging/speakup/serialio.c
drivers/staging/speakup/speakup_audptr.c
drivers/staging/speakup/speakup_decext.c
drivers/staging/speakup/speakup_dectlk.c
drivers/staging/speakup/speakup_dtlk.c
drivers/staging/speakup/speakup_ltlk.c
drivers/staging/speakup/speakup_soft.c
drivers/staging/speakup/speakup_spkout.c
drivers/staging/speakup/spk_priv.h
drivers/staging/speakup/spk_types.h
drivers/staging/speakup/synth.c