Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a50ef316 authored by Okash Khawaja's avatar Okash Khawaja Committed by Greg Kroah-Hartman
Browse files

staging: speakup: move spk_stop_serial_interrupt into synth-specific release function



This moves call to spk_stop_serial_interrupt() function out of synth_release()
and into release() method of specific spk_synth instances. This is because
the spk_stop_serial_interrupt() call is specific to current serial i/o
implementation. Moving it into each synth's release() method gives the
decision of calling  spk_stop_serial_interrupt() to that synth.

Signed-off-by: default avatarOkash Khawaja <okash.khawaja@gmail.com>
Reviewed-by: default avatarSamuel Thibault <samuel.thibault@ens-lyon.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 1e441594
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -148,6 +148,7 @@ void spk_stop_serial_interrupt(void)
	/* Free IRQ */
	free_irq(serstate->irq, (void *)synth_readbuf_handler);
}
EXPORT_SYMBOL_GPL(spk_stop_serial_interrupt);

int spk_wait_for_xmitr(struct spk_synth *in_synth)
{
@@ -223,6 +224,7 @@ int spk_serial_out(struct spk_synth *in_synth, const char ch)

void spk_serial_release(void)
{
	spk_stop_serial_interrupt();
	if (speakup_info.port_tts == 0)
		return;
	synth_release_region(speakup_info.port_tts, 8);
+1 −0
Original line number Diff line number Diff line
@@ -304,6 +304,7 @@ static int synth_probe(struct spk_synth *synth)

static void accent_release(void)
{
	spk_stop_serial_interrupt();
	if (speakup_info.port_tts)
		synth_release_region(speakup_info.port_tts-1, SYNTH_IO_EXTENT);
	speakup_info.port_tts = 0;
+1 −0
Original line number Diff line number Diff line
@@ -481,6 +481,7 @@ static int synth_probe(struct spk_synth *synth)

static void dtpc_release(void)
{
	spk_stop_serial_interrupt();
	if (speakup_info.port_tts)
		synth_release_region(speakup_info.port_tts, SYNTH_IO_EXTENT);
	speakup_info.port_tts = 0;
+1 −0
Original line number Diff line number Diff line
@@ -375,6 +375,7 @@ static int synth_probe(struct spk_synth *synth)

static void dtlk_release(void)
{
	spk_stop_serial_interrupt();
	if (speakup_info.port_tts)
		synth_release_region(speakup_info.port_tts-1, SYNTH_IO_EXTENT);
	speakup_info.port_tts = 0;
+1 −0
Original line number Diff line number Diff line
@@ -306,6 +306,7 @@ static int synth_probe(struct spk_synth *synth)

static void keynote_release(void)
{
	spk_stop_serial_interrupt();
	if (synth_port)
		synth_release_region(synth_port, SYNTH_IO_EXTENT);
	synth_port = 0;
Loading