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

Commit c88d8df0 authored by Max Filippov's avatar Max Filippov Committed by Chris Zankel
Browse files

xtensa: ISS: fix rs_put_char



ISS serial console prints garbage instead of symbols printed via
rs_put_char. gcc optimizes away putting prined symbol into memory buffer
because there's no evidence that the buffer is used afterwards.

Make rs_put_char and rs_write use simc_write that has explicit wmb.

Signed-off-by: default avatarMax Filippov <jcmvbkbc@gmail.com>
Signed-off-by: default avatarChris Zankel <chris@zankel.net>
parent 50c08f8e
Loading
Loading
Loading
Loading
+2 −7
Original line number Diff line number Diff line
@@ -91,7 +91,7 @@ static int rs_write(struct tty_struct * tty,
{
	/* see drivers/char/serialX.c to reference original version */

	__simc (SYS_write, 1, (unsigned long)buf, count, 0, 0);
	simc_write(1, buf, count);
	return count;
}

@@ -122,12 +122,7 @@ static void rs_poll(unsigned long priv)

static int rs_put_char(struct tty_struct *tty, unsigned char ch)
{
	char buf[2];

	buf[0] = ch;
	buf[1] = '\0';		/* Is this NULL necessary? */
	__simc (SYS_write, 1, (unsigned long) buf, 1, 0, 0);
	return 1;
	return rs_write(tty, &ch, 1);
}

static void rs_flush_chars(struct tty_struct *tty)