diff options
author | Okash Khawaja <okash.khawaja@gmail.com> | 2017-03-14 13:41:53 +0000 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2017-03-16 11:11:22 +0900 |
commit | 1e441594e509c35a222e397d224de17cee103740 (patch) | |
tree | 58602e5db12efb4708720b887c6255efb11f5c5c /drivers/staging/speakup/serialio.c | |
parent | staging: speakup: spk_serial_out and spk_wait_for_xmitr to take synth arg (diff) | |
download | linux-dev-1e441594e509c35a222e397d224de17cee103740.tar.xz linux-dev-1e441594e509c35a222e397d224de17cee103740.zip |
staging: speakup: add spk_io_ops struct to spk_synth
This patch adds spk_io_ops struct which contain those methods whose job is to
communicate with synth device. Currently, all comms with external synth
device use raw serial i/o. The idea is to group all methods which do the
actual communication with external device into this new struct. Then migrating
a serial-based synth over to an alternative to raw serial i/o will mean
swapping serial spk_io_ops instance with the io_ops instance of the new
method, making the migration simpler.
At the moment, this struct only contains one method, synth_out but more will
be added in future when migrating synths which require input functionality.
Also at the moment, synth_out method has one implementation which uses
serial i/o. Plan is to add an alternative.
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>
Diffstat (limited to 'drivers/staging/speakup/serialio.c')
-rw-r--r-- | drivers/staging/speakup/serialio.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/staging/speakup/serialio.c b/drivers/staging/speakup/serialio.c index f51ab5c25b49..d7736f7a35fe 100644 --- a/drivers/staging/speakup/serialio.c +++ b/drivers/staging/speakup/serialio.c @@ -24,6 +24,12 @@ static const struct old_serial_port rs_table[] = { static const struct old_serial_port *serstate; static int timeouts; +static int spk_serial_out(struct spk_synth *in_synth, const char ch); +struct spk_io_ops spk_serial_io_ops = { + .synth_out = spk_serial_out, +}; +EXPORT_SYMBOL_GPL(spk_serial_io_ops); + const struct old_serial_port *spk_serial_init(int index) { int baud = 9600, quot = 0; @@ -214,7 +220,6 @@ int spk_serial_out(struct spk_synth *in_synth, const char ch) } return 0; } -EXPORT_SYMBOL_GPL(spk_serial_out); void spk_serial_release(void) { |