summaryrefslogtreecommitdiffstats
path: root/drivers/staging
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2020-07-29 02:35:31 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2020-07-29 14:02:41 +0200
commit2067fd92d75b6d9085a43caf050bca5d88c491b8 (patch)
tree9c15bdf3efa0fc8e4dc57966d0f0cfce4a32de54 /drivers/staging
parent408a68c5f64fe2f7921449d655ffef5038144f06 (diff)
staging/speakup: Move out of staging
The nasty TODO items are done. Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org> Link: https://lore.kernel.org/r/20200729003531.907370-1-samuel.thibault@ens-lyon.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging')
-rw-r--r--drivers/staging/Kconfig2
-rw-r--r--drivers/staging/Makefile1
-rw-r--r--drivers/staging/speakup/DefaultKeyAssignments46
-rw-r--r--drivers/staging/speakup/Kconfig200
-rw-r--r--drivers/staging/speakup/Makefile32
-rw-r--r--drivers/staging/speakup/TODO22
-rw-r--r--drivers/staging/speakup/buffers.c124
-rw-r--r--drivers/staging/speakup/devsynth.c92
-rw-r--r--drivers/staging/speakup/fakekey.c87
-rw-r--r--drivers/staging/speakup/i18n.c625
-rw-r--r--drivers/staging/speakup/i18n.h235
-rw-r--r--drivers/staging/speakup/keyhelp.c209
-rw-r--r--drivers/staging/speakup/kobjects.c1056
-rw-r--r--drivers/staging/speakup/main.c2460
-rw-r--r--drivers/staging/speakup/selection.c144
-rw-r--r--drivers/staging/speakup/serialio.c316
-rw-r--r--drivers/staging/speakup/serialio.h41
-rw-r--r--drivers/staging/speakup/speakup.h121
-rw-r--r--drivers/staging/speakup/speakup_acnt.h19
-rw-r--r--drivers/staging/speakup/speakup_acntpc.c319
-rw-r--r--drivers/staging/speakup/speakup_acntsa.c144
-rw-r--r--drivers/staging/speakup/speakup_apollo.c208
-rw-r--r--drivers/staging/speakup/speakup_audptr.c171
-rw-r--r--drivers/staging/speakup/speakup_bns.c128
-rw-r--r--drivers/staging/speakup/speakup_decext.c240
-rw-r--r--drivers/staging/speakup/speakup_decpc.c495
-rw-r--r--drivers/staging/speakup/speakup_dectlk.c311
-rw-r--r--drivers/staging/speakup/speakup_dtlk.c390
-rw-r--r--drivers/staging/speakup/speakup_dtlk.h63
-rw-r--r--drivers/staging/speakup/speakup_dummy.c134
-rw-r--r--drivers/staging/speakup/speakup_keypc.c318
-rw-r--r--drivers/staging/speakup/speakup_ltlk.c175
-rw-r--r--drivers/staging/speakup/speakup_soft.c430
-rw-r--r--drivers/staging/speakup/speakup_spkout.c139
-rw-r--r--drivers/staging/speakup/speakup_txprt.c127
-rw-r--r--drivers/staging/speakup/speakupmap.h66
-rw-r--r--drivers/staging/speakup/speakupmap.map93
-rw-r--r--drivers/staging/speakup/spk_priv.h84
-rw-r--r--drivers/staging/speakup/spk_priv_keyinfo.h100
-rw-r--r--drivers/staging/speakup/spk_ttyio.c384
-rw-r--r--drivers/staging/speakup/spk_types.h221
-rw-r--r--drivers/staging/speakup/spkguide.txt1575
-rw-r--r--drivers/staging/speakup/synth.c490
-rw-r--r--drivers/staging/speakup/sysfs-driver-speakup375
-rw-r--r--drivers/staging/speakup/thread.c62
-rw-r--r--drivers/staging/speakup/varhandlers.c339
46 files changed, 0 insertions, 13413 deletions
diff --git a/drivers/staging/Kconfig b/drivers/staging/Kconfig
index b3fb4d41e231..e6c831c6cccc 100644
--- a/drivers/staging/Kconfig
+++ b/drivers/staging/Kconfig
@@ -56,8 +56,6 @@ source "drivers/staging/sm750fb/Kconfig"
source "drivers/staging/emxx_udc/Kconfig"
-source "drivers/staging/speakup/Kconfig"
-
source "drivers/staging/nvec/Kconfig"
source "drivers/staging/media/Kconfig"
diff --git a/drivers/staging/Makefile b/drivers/staging/Makefile
index 3d8c7ea21a10..a3b1fd0622f9 100644
--- a/drivers/staging/Makefile
+++ b/drivers/staging/Makefile
@@ -20,7 +20,6 @@ obj-$(CONFIG_VME_BUS) += vme/
obj-$(CONFIG_IIO) += iio/
obj-$(CONFIG_FB_SM750) += sm750fb/
obj-$(CONFIG_USB_EMXX) += emxx_udc/
-obj-$(CONFIG_SPEAKUP) += speakup/
obj-$(CONFIG_MFD_NVEC) += nvec/
obj-$(CONFIG_ANDROID) += android/
obj-$(CONFIG_STAGING_BOARD) += board/
diff --git a/drivers/staging/speakup/DefaultKeyAssignments b/drivers/staging/speakup/DefaultKeyAssignments
deleted file mode 100644
index 101c803b21fd..000000000000
--- a/drivers/staging/speakup/DefaultKeyAssignments
+++ /dev/null
@@ -1,46 +0,0 @@
-This file is intended to give you an overview of the default keys used
-by speakup for it's review functions. You may change them to be
-anything you want but that will take some familiarity with key
-mapping.
-
-We have remapped the insert or zero key on the keypad to act as a
-shift key. Well, actually as an altgr key. So in the following list
-InsKeyPad-period means hold down the insert key like a shift key and
-hit the keypad period.
-
-KeyPad-8 Say current Line
-InsKeyPad-8 say from top of screen to reading cursor.
-KeyPad-7 Say Previous Line (UP one line)
-KeyPad-9 Say Next Line (down one line)
-KeyPad-5 Say Current Word
-InsKeyPad-5 Spell Current Word
-KeyPad-4 Say Previous Word (left one word)
-InsKeyPad-4 say from left edge of line to reading cursor.
-KeyPad-6 Say Next Word (right one word)
-InsKeyPad-6 Say from reading cursor to right edge of line.
-KeyPad-2 Say Current Letter
-InsKeyPad-2 say current letter phonetically
-KeyPad-1 Say Previous Character (left one letter)
-KeyPad-3 Say Next Character (right one letter)
-KeyPad-plus Say Entire Screen
-InsKeyPad-plus Say from reading cursor line to bottom of screen.
-KeyPad-Minus Park reading cursor (toggle)
-InsKeyPad-minus Say character hex and decimal value.
-KeyPad-period Say Position (current line, position and console)
-InsKeyPad-period say colour attributes of current position.
-InsKeyPad-9 Move reading cursor to top of screen (insert pgup)
-InsKeyPad-3 Move reading cursor to bottom of screen (insert pgdn)
-InsKeyPad-7 Move reading cursor to left edge of screen (insert home)
-InsKeyPad-1 Move reading cursor to right edge of screen (insert end)
-ControlKeyPad-1 Move reading cursor to last character on current line.
-KeyPad-Enter Shut Up (until another key is hit) and sync reading cursor
-InsKeyPad-Enter Shut Up (until toggled back on).
-InsKeyPad-star n<x|y> go to line (y) or column (x). Where 'n' is any
- allowed value for the row or column for your current screen.
-KeyPad-/ Mark and Cut screen region.
-InsKeyPad-/ Paste screen region into any console.
-
-Hitting any key while speakup is outputting speech will quiet the
-synth until it has caught up with what is being printed on the
-console.
-
diff --git a/drivers/staging/speakup/Kconfig b/drivers/staging/speakup/Kconfig
deleted file mode 100644
index 0803c2013cf4..000000000000
--- a/drivers/staging/speakup/Kconfig
+++ /dev/null
@@ -1,200 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0
-menu "Speakup console speech"
-
-config SPEAKUP
- depends on VT
- tristate "Speakup core"
- help
- This is the Speakup screen reader. Think of it as a
- video console for blind people. If built in to the
- kernel, it can speak everything on the text console from
- boot up to shutdown. For more information on Speakup,
- point your browser at <http://www.linux-speakup.org/>.
- There is also a mailing list at the above url that you
- can subscribe to.
-
- Supported synthesizers are accent sa, accent pc,
- appollo II., Auddapter, Braille 'n Speak, Dectalk
- external (old), Dectalk PC (full length isa board),
- Dectalk express, Doubletalk, Doubletalk LT or
- Litetalk, Keynote Gold internal PC, software
- synthesizers, Speakout, transport, and a dummy module
- that can be used with a plain text terminal.
-
- Speakup can either be built in or compiled as a module
- by answering y or m. If you answer y here, then you
- must answer either y or m to at least one of the
- synthesizer drivers below. If you answer m here, then
- the synthesizer drivers below can only be built as
- modules.
-
- These drivers are not standalone drivers, but must be
- used in conjunction with Speakup. Think of them as
- video cards for blind people.
-
-
- The Dectalk pc driver can only be built as a module, and
- requires software to be pre-loaded on to the card before
- the module can be loaded. See the decpc choice below
- for more details.
-
- If you are not a blind person, or don't have access to
- one of the listed synthesizers, you should say n.
-
-if SPEAKUP
-config SPEAKUP_SYNTH_ACNTSA
- tristate "Accent SA synthesizer support"
- help
- This is the Speakup driver for the Accent SA
- synthesizer. You can say y to build it into the kernel,
- or m to build it as a module. See the configuration
- help on the Speakup choice above for more info.
-
-config SPEAKUP_SYNTH_ACNTPC
- tristate "Accent PC synthesizer support"
- depends on ISA || COMPILE_TEST
- help
- This is the Speakup driver for the accent pc
- synthesizer. You can say y to build it into the kernel,
- or m to build it as a module. See the configuration
- help on the Speakup choice above for more info.
-
-config SPEAKUP_SYNTH_APOLLO
- tristate "Apollo II synthesizer support"
- help
- This is the Speakup driver for the Apollo II
- synthesizer. You can say y to build it into the kernel,
- or m to build it as a module. See the configuration
- help on the Speakup choice above for more info.
-
-config SPEAKUP_SYNTH_AUDPTR
- tristate "Audapter synthesizer support"
- help
- This is the Speakup driver for the Audapter synthesizer.
- You can say y to build it into the kernel, or m to
- build it as a module. See the configuration help on the
- Speakup choice above for more info.
-
-config SPEAKUP_SYNTH_BNS
- tristate "Braille 'n' Speak synthesizer support"
- help
- This is the Speakup driver for the Braille 'n' Speak
- synthesizer. You can say y to build it into the kernel,
- or m to build it as a module. See the configuration
- help on the Speakup choice above for more info.
-
-config SPEAKUP_SYNTH_DECTLK
- tristate "DECtalk Express synthesizer support"
- help
-
- This is the Speakup driver for the DecTalk Express
- synthesizer. You can say y to build it into the kernel,
- or m to build it as a module. See the configuration
- help on the Speakup choice above for more info.
-
-config SPEAKUP_SYNTH_DECEXT
- tristate "DECtalk External (old) synthesizer support"
- help
-
- This is the Speakup driver for the DecTalk External
- (old) synthesizer. You can say y to build it into the
- kernel, or m to build it as a module. See the
- configuration help on the Speakup choice above for more
- info.
-
-config SPEAKUP_SYNTH_DECPC
- depends on m
- depends on ISA || COMPILE_TEST
- tristate "DECtalk PC (big ISA card) synthesizer support"
- help
-
- This is the Speakup driver for the DecTalk PC (full
- length ISA) synthesizer. You can say m to build it as
- a module. See the configuration help on the Speakup
- choice above for more info.
-
- In order to use the DecTalk PC driver, you must download
- the dec_pc.tgz file from linux-speakup.org. It is in
- the pub/linux/goodies directory. The dec_pc.tgz file
- contains the software which must be pre-loaded on to the
- DecTalk PC board in order to use it with this driver.
- This driver must be built as a module, and can not be
- loaded until the file system is mounted and the DecTalk
- PC software has been pre-loaded on to the board.
-
- See the README file in the dec_pc.tgz file for more
- details.
-
-config SPEAKUP_SYNTH_DTLK
- tristate "DoubleTalk PC synthesizer support"
- depends on ISA || COMPILE_TEST
- help
-
- This is the Speakup driver for the internal DoubleTalk
- PC synthesizer. You can say y to build it into the
- kernel, or m to build it as a module. See the
- configuration help on the Speakup choice above for more
- info.
-
-config SPEAKUP_SYNTH_KEYPC
- tristate "Keynote Gold PC synthesizer support"
- depends on ISA || COMPILE_TEST
- help
-
- This is the Speakup driver for the Keynote Gold
- PC synthesizer. You can say y to build it into the
- kernel, or m to build it as a module. See the
- configuration help on the Speakup choice above for more
- info.
-
-config SPEAKUP_SYNTH_LTLK
- tristate "DoubleTalk LT/LiteTalk synthesizer support"
-help
-
- This is the Speakup driver for the LiteTalk/DoubleTalk
- LT synthesizer. You can say y to build it into the
- kernel, or m to build it as a module. See the
- configuration help on the Speakup choice above for more
- info.
-
-config SPEAKUP_SYNTH_SOFT
- tristate "Userspace software synthesizer support"
- help
-
- This is the software synthesizer device node. It will
- register a device /dev/softsynth which midware programs
- and speech daemons may open and read to provide kernel
- output to software synths such as espeak, festival,
- flite and so forth. You can select 'y' or 'm' to have
- it built-in to the kernel or loaded as a module.
-
-config SPEAKUP_SYNTH_SPKOUT
- tristate "Speak Out synthesizer support"
- help
-
- This is the Speakup driver for the Speakout synthesizer.
- You can say y to build it into the kernel, or m to
- build it as a module. See the configuration help on the
- Speakup choice above for more info.
-
-config SPEAKUP_SYNTH_TXPRT
- tristate "Transport synthesizer support"
- help
-
- This is the Speakup driver for the Transport
- synthesizer. You can say y to build it into the kernel,
- or m to build it as a module. See the configuration
- help on the Speakup choice above for more info.
-
-config SPEAKUP_SYNTH_DUMMY
- tristate "Dummy synthesizer driver (for testing)"
- help
-
- This is a dummy Speakup driver for plugging a mere serial
- terminal. This is handy if you want to test speakup but
- don't have the hardware. You can say y to build it into
- the kernel, or m to build it as a module. See the
- configuration help on the Speakup choice above for more info.
-
-endif # SPEAKUP
-endmenu
diff --git a/drivers/staging/speakup/Makefile b/drivers/staging/speakup/Makefile
deleted file mode 100644
index 5befb4933b85..000000000000
--- a/drivers/staging/speakup/Makefile
+++ /dev/null
@@ -1,32 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0
-obj-$(CONFIG_SPEAKUP_SYNTH_ACNTSA) += speakup_acntsa.o
-obj-$(CONFIG_SPEAKUP_SYNTH_ACNTPC) += speakup_acntpc.o
-obj-$(CONFIG_SPEAKUP_SYNTH_APOLLO) += speakup_apollo.o
-obj-$(CONFIG_SPEAKUP_SYNTH_AUDPTR) += speakup_audptr.o
-obj-$(CONFIG_SPEAKUP_SYNTH_BNS) += speakup_bns.o
-obj-$(CONFIG_SPEAKUP_SYNTH_DECTLK) += speakup_dectlk.o
-obj-$(CONFIG_SPEAKUP_SYNTH_DECEXT) += speakup_decext.o
-obj-$(CONFIG_SPEAKUP_SYNTH_DECPC) += speakup_decpc.o
-obj-$(CONFIG_SPEAKUP_SYNTH_DTLK) += speakup_dtlk.o
-obj-$(CONFIG_SPEAKUP_SYNTH_KEYPC) += speakup_keypc.o
-obj-$(CONFIG_SPEAKUP_SYNTH_LTLK) += speakup_ltlk.o
-obj-$(CONFIG_SPEAKUP_SYNTH_SOFT) += speakup_soft.o
-obj-$(CONFIG_SPEAKUP_SYNTH_SPKOUT) += speakup_spkout.o
-obj-$(CONFIG_SPEAKUP_SYNTH_TXPRT) += speakup_txprt.o
-obj-$(CONFIG_SPEAKUP_SYNTH_DUMMY) += speakup_dummy.o
-
-obj-$(CONFIG_SPEAKUP) += speakup.o
-speakup-y := \
- buffers.o \
- devsynth.o \
- i18n.o \
- fakekey.o \
- main.o \
- keyhelp.o \
- kobjects.o \
- selection.o \
- serialio.o \
- spk_ttyio.o \
- synth.o \
- thread.o \
- varhandlers.o
diff --git a/drivers/staging/speakup/TODO b/drivers/staging/speakup/TODO
deleted file mode 100644
index d4ca093bf0bd..000000000000
--- a/drivers/staging/speakup/TODO
+++ /dev/null
@@ -1,22 +0,0 @@
-Speakup project home: http://www.linux-speakup.org
-
-Mailing List: speakup@linux-speakup.org
-
-Speakup is a kernel based screen review package for the linux operating
-system. It allows blind users to interact with applications on the
-linux console by means of synthetic speech.
-
-Currently, speakup has one issue we know of.
-
-It seems to only happen on SMP systems. It seems that text in the output buffer
-gets garbled because a lock is not set. This bug happens regularly, but no one
-has been able to find a situation which produces it consistently.
-
-Patches, suggestions, corrections, etc, are definitely welcome.
-
-We prefer that you contact us on the mailing list; however, if you do
-not want to subscribe to a mailing list, send your email to all of the
-following:
-
-okash.khawaja@gmail.com, w.d.hubbs@gmail.com, chris@the-brannons.com,
-kirk@reisers.ca and samuel.thibault@ens-lyon.org.
diff --git a/drivers/staging/speakup/buffers.c b/drivers/staging/speakup/buffers.c
deleted file mode 100644
index 1371ced2f5ca..000000000000
--- a/drivers/staging/speakup/buffers.c
+++ /dev/null
@@ -1,124 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-#include <linux/console.h>
-#include <linux/types.h>
-#include <linux/wait.h>
-
-#include "speakup.h"
-#include "spk_priv.h"
-
-#define SYNTH_BUF_SIZE 8192 /* currently 8K bytes */
-
-static u16 synth_buffer[SYNTH_BUF_SIZE]; /* guess what this is for! */
-static u16 *buff_in = synth_buffer;
-static u16 *buff_out = synth_buffer;
-static u16 *buffer_end = synth_buffer + SYNTH_BUF_SIZE - 1;
-
-/* These try to throttle applications by stopping the TTYs
- * Note: we need to make sure that we will restart them eventually, which is
- * usually not possible to do from the notifiers. TODO: it should be possible
- * starting from linux 2.6.26.
- *
- * So we only stop when we know alive == 1 (else we discard the data anyway),
- * and the alive synth will eventually call start_ttys from the thread context.
- */
-void speakup_start_ttys(void)
-{
- int i;
-
- for (i = 0; i < MAX_NR_CONSOLES; i++) {
- if (speakup_console[i] && speakup_console[i]->tty_stopped)
- continue;
- if (vc_cons[i].d && vc_cons[i].d->port.tty)
- start_tty(vc_cons[i].d->port.tty);
- }
-}
-EXPORT_SYMBOL_GPL(speakup_start_ttys);
-
-static void speakup_stop_ttys(void)
-{
- int i;
-
- for (i = 0; i < MAX_NR_CONSOLES; i++)
- if (vc_cons[i].d && vc_cons[i].d->port.tty)
- stop_tty(vc_cons[i].d->port.tty);
-}
-
-static int synth_buffer_free(void)
-{
- int chars_free;
-
- if (buff_in >= buff_out)
- chars_free = SYNTH_BUF_SIZE - (buff_in - buff_out);
- else
- chars_free = buff_out - buff_in;
- return chars_free;
-}
-
-int synth_buffer_empty(void)
-{
- return (buff_in == buff_out);
-}
-EXPORT_SYMBOL_GPL(synth_buffer_empty);
-
-void synth_buffer_add(u16 ch)
-{
- if (!synth->alive) {
- /* This makes sure that we won't stop TTYs if there is no synth
- * to restart them
- */
- return;
- }
- if (synth_buffer_free() <= 100) {
- synth_start();
- speakup_stop_ttys();
- }
- if (synth_buffer_free() <= 1)
- return;
- *buff_in++ = ch;
- if (buff_in > buffer_end)
- buff_in = synth_buffer;
- /* We have written something to the speech synthesis, so we are not
- * paused any more.
- */
- spk_paused = false;
-}
-
-u16 synth_buffer_getc(void)
-{
- u16 ch;
-
- if (buff_out == buff_in)
- return 0;
- ch = *buff_out++;
- if (buff_out > buffer_end)
- buff_out = synth_buffer;
- return ch;
-}
-EXPORT_SYMBOL_GPL(synth_buffer_getc);
-
-u16 synth_buffer_peek(void)
-{
- if (buff_out == buff_in)
- return 0;
- return *buff_out;
-}
-EXPORT_SYMBOL_GPL(synth_buffer_peek);
-
-void synth_buffer_skip_nonlatin1(void)
-{
- while (buff_out != buff_in) {
- if (*buff_out < 0x100)
- return;
- buff_out++;
- if (buff_out > buffer_end)
- buff_out = synth_buffer;
- }
-}
-EXPORT_SYMBOL_GPL(synth_buffer_skip_nonlatin1);
-
-void synth_buffer_clear(void)
-{
- buff_in = synth_buffer;
- buff_out = synth_buffer;
-}
-EXPORT_SYMBOL_GPL(synth_buffer_clear);
diff --git a/drivers/staging/speakup/devsynth.c b/drivers/staging/speakup/devsynth.c
deleted file mode 100644
index d30571663585..000000000000
--- a/drivers/staging/speakup/devsynth.c
+++ /dev/null
@@ -1,92 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-#include <linux/errno.h>
-#include <linux/miscdevice.h> /* for misc_register, and MISC_DYNAMIC_MINOR */
-#include <linux/types.h>
-#include <linux/uaccess.h>
-
-#include "speakup.h"
-#include "spk_priv.h"
-
-static int misc_registered;
-static int dev_opened;
-
-static ssize_t speakup_file_write(struct file *fp, const char __user *buffer,
- size_t nbytes, loff_t *ppos)
-{
- size_t count = nbytes;
- const char __user *ptr = buffer;
- size_t bytes;
- unsigned long flags;
- u_char buf[256];
-
- if (!synth)
- return -ENODEV;
- while (count > 0) {
- bytes = min(count, sizeof(buf));
- if (copy_from_user(buf, ptr, bytes))
- return -EFAULT;
- count -= bytes;
- ptr += bytes;
- spin_lock_irqsave(&speakup_info.spinlock, flags);
- synth_write(buf, bytes);
- spin_unlock_irqrestore(&speakup_info.spinlock, flags);
- }
- return (ssize_t)nbytes;
-}
-
-static ssize_t speakup_file_read(struct file *fp, char __user *buf,
- size_t nbytes, loff_t *ppos)
-{
- return 0;
-}
-
-static int speakup_file_open(struct inode *ip, struct file *fp)
-{
- if (!synth)
- return -ENODEV;
- if (xchg(&dev_opened, 1))
- return -EBUSY;
- return 0;
-}
-
-static int speakup_file_release(struct inode *ip, struct file *fp)
-{
- dev_opened = 0;
- return 0;
-}
-
-static const struct file_operations synth_fops = {
- .read = speakup_file_read,
- .write = speakup_file_write,
- .open = speakup_file_open,
- .release = speakup_file_release,
-};
-
-static struct miscdevice synth_device = {
- .minor = MISC_DYNAMIC_MINOR,
- .name = "synth",
- .fops = &synth_fops,
-};
-
-void speakup_register_devsynth(void)
-{
- if (misc_registered != 0)
- return;
-/* zero it so if register fails, deregister will not ref invalid ptrs */
- if (misc_register(&synth_device)) {
- pr_warn("Couldn't initialize miscdevice /dev/synth.\n");
- } else {
- pr_info("initialized device: /dev/synth, node (MAJOR %d, MINOR %d)\n",
- MISC_MAJOR, synth_device.minor);
- misc_registered = 1;
- }
-}
-
-void speakup_unregister_devsynth(void)
-{
- if (!misc_registered)
- return;
- pr_info("speakup: unregistering synth device /dev/synth\n");
- misc_deregister(&synth_device);
- misc_registered = 0;
-}
diff --git a/drivers/staging/speakup/fakekey.c b/drivers/staging/speakup/fakekey.c
deleted file mode 100644
index cd029968462f..000000000000
--- a/drivers/staging/speakup/fakekey.c
+++ /dev/null
@@ -1,87 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0+
-/* fakekey.c
- * Functions for simulating keypresses.
- *
- * Copyright (C) 2010 the Speakup Team
- */
-#include <linux/types.h>
-#include <linux/slab.h>
-#include <linux/preempt.h>
-#include <linux/percpu.h>
-#include <linux/input.h>
-
-#include "speakup.h"
-
-#define PRESSED 1
-#define RELEASED 0
-
-static DEFINE_PER_CPU(int, reporting_keystroke);
-
-static struct input_dev *virt_keyboard;
-
-int speakup_add_virtual_keyboard(void)
-{
- int err;
-
- virt_keyboard = input_allocate_device();
-
- if (!virt_keyboard)
- return -ENOMEM;
-
- virt_keyboard->name = "Speakup";
- virt_keyboard->id.bustype = BUS_VIRTUAL;
- virt_keyboard->phys = "speakup/input0";
- virt_keyboard->dev.parent = NULL;
-
- __set_bit(EV_KEY, virt_keyboard->evbit);
- __set_bit(KEY_DOWN, virt_keyboard->keybit);
-
- err = input_register_device(virt_keyboard);
- if (err) {
- input_free_device(virt_keyboard);
- virt_keyboard = NULL;
- }
-
- return err;
-}
-
-void speakup_remove_virtual_keyboard(void)
-{
- if (virt_keyboard) {
- input_unregister_device(virt_keyboard);
- virt_keyboard = NULL;
- }
-}
-
-/*
- * Send a simulated down-arrow to the application.
- */
-void speakup_fake_down_arrow(void)
-{
- unsigned long flags;
-
- /* disable keyboard interrupts */
- local_irq_save(flags);
- /* don't change CPU */
- preempt_disable();
-
- __this_cpu_write(reporting_keystroke, true);
- input_report_key(virt_keyboard, KEY_DOWN, PRESSED);
- input_report_key(virt_keyboard, KEY_DOWN, RELEASED);
- input_sync(virt_keyboard);
- __this_cpu_write(reporting_keystroke, false);
-
- /* reenable preemption */
- preempt_enable();
- /* reenable keyboard interrupts */
- local_irq_restore(flags);
-}
-
-/*
- * Are we handling a simulated keypress on the current CPU?
- * Returns a boolean.
- */
-bool speakup_fake_key_pressed(void)
-{
- return this_cpu_read(reporting_keystroke);
-}
diff --git a/drivers/staging/speakup/i18n.c b/drivers/staging/speakup/i18n.c
deleted file mode 100644
index ee240d36f947..000000000000
--- a/drivers/staging/speakup/i18n.c
+++ /dev/null
@@ -1,625 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/* Internationalization implementation. Includes definitions of English
- * string arrays, and the i18n pointer.
- */
-
-#include <linux/slab.h> /* For kmalloc. */
-#include <linux/ctype.h>
-#include <linux/module.h>
-#include <linux/string.h>
-#include "speakup.h"
-#include "spk_priv.h"
-
-static char *speakup_msgs[MSG_LAST_INDEX];
-static char *speakup_default_msgs[MSG_LAST_INDEX] = {
- [MSG_BLANK] = "blank",
- [MSG_IAM_ALIVE] = "I'm aLive!",
- [MSG_YOU_KILLED_SPEAKUP] = "You killed speakup!",
- [MSG_HEY_THATS_BETTER] = "hey. That's better!",
- [MSG_YOU_TURNED_ME_OFF] = "You turned me off!",
- [MSG_PARKED] = "parked!",
- [MSG_UNPARKED] = "unparked!",
- [MSG_MARK] = "mark",
- [MSG_CUT] = "cut",
- [MSG_MARK_CLEARED] = "mark, cleared",
- [MSG_PASTE] = "paste",
- [MSG_BRIGHT] = "bright",
- [MSG_ON_BLINKING] = "on blinking",
- [MSG_OFF] = "off",
- [MSG_ON] = "on",
- [MSG_NO_WINDOW] = "no window",
- [MSG_CURSORING_OFF] = "cursoring off",
- [MSG_CURSORING_ON] = "cursoring on",
- [MSG_HIGHLIGHT_TRACKING] = "highlight tracking",
- [MSG_READ_WINDOW] = "read windo",
- [MSG_READ_ALL] = "read all",
- [MSG_EDIT_DONE] = "edit done",
- [MSG_WINDOW_ALREADY_SET] = "window already set, clear then reset",
- [MSG_END_BEFORE_START] = "error end before start",
- [MSG_WINDOW_CLEARED] = "window cleared",
- [MSG_WINDOW_SILENCED] = "window silenced",
- [MSG_WINDOW_SILENCE_DISABLED] = "window silence disabled",
- [MSG_ERROR] = "error",
- [MSG_GOTO_CANCELED] = "goto canceled",
- [MSG_GOTO] = "go to?",
- [MSG_LEAVING_HELP] = "leaving help",
- [MSG_IS_UNASSIGNED] = "is unassigned",
- [MSG_HELP_INFO] =
- "press space to exit, up or down to scroll, or a letter to go to a command",
- [MSG_EDGE_TOP] = "top,",
- [MSG_EDGE_BOTTOM] = "bottom,",
- [MSG_EDGE_LEFT] = "left,",