Commit 27563ab6 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull char/misc driver fixes from Greg KH:
 "Here are some small char and misc and other driver subsystem fixes for
  5.9-rc3.

  The majority of these are tiny habanalabs driver fixes, but also in
  here are:

   - speakup build fixes now that it is out of staging and got exposed
     to more build systems all of a sudden

   - mei driver fix

  All of these have been in linux-next for a while with no reported
  issues"

* tag 'char-misc-5.9-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
  habanalabs: correctly report inbound pci region cfg error
  habanalabs: check correct vmalloc return code
  habanalabs: validate FW file size
  habanalabs: fix incorrect check on failed workqueue create
  habanalabs: set max power according to card type
  habanalabs: proper handling of alloc size in coresight
  habanalabs: set clock gating according to mask
  habanalabs: verify user input in cs_ioctl_signal_wait
  habanalabs: Fix a loop in gaudi_extract_ecc_info()
  habanalabs: Fix memory corruption in debugfs
  habanalabs: validate packet id during CB parse
  habanalabs: Validate user address before mapping
  habanalabs: unmap PCI bars upon iATU failure
  mei: hdcp: fix mei_hdcp_verify_mprime() input parameter
  speakup: only build serialio when ISA is enabled
  speakup: Fix wait_for_xmitr for ttyio case
parents 51c4518a 9c97ceca
Loading
Loading
Loading
Loading
+9 −4
Original line number Diff line number Diff line
@@ -42,6 +42,11 @@ config SPEAKUP
		one of the listed synthesizers, you should say n.

if SPEAKUP

config SPEAKUP_SERIALIO
	def_bool y
	depends on ISA || COMPILE_TEST

config SPEAKUP_SYNTH_ACNTSA
	tristate "Accent SA synthesizer support"
	help
@@ -52,7 +57,7 @@ config SPEAKUP_SYNTH_ACNTSA

config SPEAKUP_SYNTH_ACNTPC
	tristate "Accent PC synthesizer support"
	depends on ISA || COMPILE_TEST
	depends on SPEAKUP_SERIALIO
	help
		This is the Speakup driver for the accent pc
		synthesizer.  You can say y to build it into the kernel,
@@ -104,7 +109,7 @@ config SPEAKUP_SYNTH_DECEXT

config SPEAKUP_SYNTH_DECPC
	depends on m
	depends on ISA || COMPILE_TEST
	depends on SPEAKUP_SERIALIO
	tristate "DECtalk PC (big ISA card) synthesizer support"
	help

@@ -127,7 +132,7 @@ config SPEAKUP_SYNTH_DECPC

config SPEAKUP_SYNTH_DTLK
	tristate "DoubleTalk PC synthesizer support"
	depends on ISA || COMPILE_TEST
	depends on SPEAKUP_SERIALIO
	help

		This is the Speakup driver for the internal DoubleTalk
@@ -138,7 +143,7 @@ config SPEAKUP_SYNTH_DTLK

config SPEAKUP_SYNTH_KEYPC
	tristate "Keynote Gold PC synthesizer support"
	depends on ISA || COMPILE_TEST
	depends on SPEAKUP_SERIALIO
	help

		This is the Speakup driver for the Keynote Gold
+1 −1
Original line number Diff line number Diff line
@@ -25,8 +25,8 @@ speakup-y := \
	keyhelp.o \
	kobjects.o \
	selection.o \
	serialio.o \
	spk_ttyio.o \
	synth.o \
	thread.o \
	varhandlers.o
speakup-$(CONFIG_SPEAKUP_SERIALIO) += serialio.o
+5 −3
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@ static void spk_serial_tiocmset(unsigned int set, unsigned int clear);
static unsigned char spk_serial_in(void);
static unsigned char spk_serial_in_nowait(void);
static void spk_serial_flush_buffer(void);
static int spk_serial_wait_for_xmitr(struct spk_synth *in_synth);

struct spk_io_ops spk_serial_io_ops = {
	.synth_out = spk_serial_out,
@@ -40,6 +41,7 @@ struct spk_io_ops spk_serial_io_ops = {
	.synth_in = spk_serial_in,
	.synth_in_nowait = spk_serial_in_nowait,
	.flush_buffer = spk_serial_flush_buffer,
	.wait_for_xmitr = spk_serial_wait_for_xmitr,
};
EXPORT_SYMBOL_GPL(spk_serial_io_ops);

@@ -211,7 +213,7 @@ void spk_stop_serial_interrupt(void)
}
EXPORT_SYMBOL_GPL(spk_stop_serial_interrupt);

int spk_wait_for_xmitr(struct spk_synth *in_synth)
static int spk_serial_wait_for_xmitr(struct spk_synth *in_synth)
{
	int tmout = SPK_XMITR_TIMEOUT;

@@ -280,7 +282,7 @@ static void spk_serial_flush_buffer(void)

static int spk_serial_out(struct spk_synth *in_synth, const char ch)
{
	if (in_synth->alive && spk_wait_for_xmitr(in_synth)) {
	if (in_synth->alive && spk_serial_wait_for_xmitr(in_synth)) {
		outb_p(ch, speakup_info.port_tts);
		return 1;
	}
@@ -295,7 +297,7 @@ const char *spk_serial_synth_immediate(struct spk_synth *synth,
	while ((ch = *buff)) {
		if (ch == '\n')
			ch = synth->procspeech;
		if (spk_wait_for_xmitr(synth))
		if (spk_serial_wait_for_xmitr(synth))
			outb(ch, speakup_info.port_tts);
		else
			return buff;
+0 −1
Original line number Diff line number Diff line
@@ -34,7 +34,6 @@

const struct old_serial_port *spk_serial_init(int index);
void spk_stop_serial_interrupt(void);
int spk_wait_for_xmitr(struct spk_synth *in_synth);
void spk_serial_release(void);
void spk_ttyio_release(void);
void spk_ttyio_register_ldisc(void);
+7 −0
Original line number Diff line number Diff line
@@ -116,6 +116,7 @@ static void spk_ttyio_tiocmset(unsigned int set, unsigned int clear);
static unsigned char spk_ttyio_in(void);
static unsigned char spk_ttyio_in_nowait(void);
static void spk_ttyio_flush_buffer(void);
static int spk_ttyio_wait_for_xmitr(struct spk_synth *in_synth);

struct spk_io_ops spk_ttyio_ops = {
	.synth_out = spk_ttyio_out,
@@ -125,6 +126,7 @@ struct spk_io_ops spk_ttyio_ops = {
	.synth_in = spk_ttyio_in,
	.synth_in_nowait = spk_ttyio_in_nowait,
	.flush_buffer = spk_ttyio_flush_buffer,
	.wait_for_xmitr = spk_ttyio_wait_for_xmitr,
};
EXPORT_SYMBOL_GPL(spk_ttyio_ops);

@@ -286,6 +288,11 @@ static void spk_ttyio_tiocmset(unsigned int set, unsigned int clear)
	mutex_unlock(&speakup_tty_mutex);
}

static int spk_ttyio_wait_for_xmitr(struct spk_synth *in_synth)
{
	return 1;
}

static unsigned char ttyio_in(int timeout)
{
	struct spk_ldisc_data *ldisc_data = speakup_tty->disc_data;
Loading