]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - drivers/staging/speakup/speakup_dtlk.c
Merge tag 'hwparam-20170420' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowell...
[karo-tx-linux.git] / drivers / staging / speakup / speakup_dtlk.c
index 9c097fda07b08db44a786117edb41b1e148cd03f..33180937222d1a930eba0d79a4a4197606aca548 100644 (file)
@@ -43,6 +43,7 @@ static int port_forced;
 static unsigned int synth_portlist[] = {
                 0x25e, 0x29e, 0x2de, 0x31e, 0x35e, 0x39e, 0
 };
+
 static u_char synth_status;
 
 static struct var_t vars[] = {
@@ -128,6 +129,7 @@ static struct spk_synth synth_dtlk = {
        .startup = SYNTH_START,
        .checkval = SYNTH_CHECK,
        .vars = vars,
+       .io_ops = &spk_serial_io_ops,
        .probe = synth_probe,
        .release = dtlk_release,
        .synth_immediate = synth_immediate,
@@ -209,6 +211,7 @@ static void do_catch_up(struct spk_synth *synth)
                        synth->flush(synth);
                        continue;
                }
+               synth_buffer_skip_nonlatin1();
                if (synth_buffer_empty()) {
                        spin_unlock_irqrestore(&speakup_info.spinlock, flags);
                        break;
@@ -297,7 +300,7 @@ static struct synth_settings *synth_interrogate(struct spk_synth *synth)
        t += 2;
        for (i = 0; *t != '\r'; t++) {
                status.rom_version[i] = *t;
-               if (i < sizeof(status.rom_version)-1)
+               if (i < sizeof(status.rom_version) - 1)
                        i++;
        }
        status.rom_version[i] = 0;
@@ -373,6 +376,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;