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

Commit a205a56d authored by Ralf Baechle's avatar Ralf Baechle Committed by Greg Kroah-Hartman
Browse files

serial: Remove RM9000 series serial driver.



Now that support for RM9000 and platforms based on it has been removed,
remove the serial driver for it as well.  It's really only been a quirk
for an almost 8250 compatible UART anyway.

Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>

 drivers/tty/serial/8250/8250.c  | 70 +----------------------------------------
 drivers/tty/serial/8250/Kconfig |  9 ------
 include/linux/serial_core.h     |  1 -
 3 files changed, 1 insertion(+), 79 deletions(-)
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 6d8df4b6
Loading
Loading
Loading
Loading
+1 −69
Original line number Diff line number Diff line
@@ -239,13 +239,6 @@ static const struct serial8250_config uart_config[] = {
		.fcr		= UART_FCR_ENABLE_FIFO | UART_FCR_R_TRIG_10,
		.flags		= UART_CAP_FIFO | UART_CAP_UUE | UART_CAP_RTOIE,
	},
	[PORT_RM9000] = {
		.name		= "RM9000",
		.fifo_size	= 16,
		.tx_loadsz	= 16,
		.fcr		= UART_FCR_ENABLE_FIFO | UART_FCR_R_TRIG_10,
		.flags		= UART_CAP_FIFO,
	},
	[PORT_OCTEON] = {
		.name		= "OCTEON",
		.fifo_size	= 64,
@@ -364,56 +357,6 @@ static void au_serial_dl_write(struct uart_8250_port *up, int value)

#endif

#ifdef CONFIG_SERIAL_8250_RM9K

static const u8
	regmap_in[8] = {
		[UART_RX]	= 0x00,
		[UART_IER]	= 0x0c,
		[UART_IIR]	= 0x14,
		[UART_LCR]	= 0x1c,
		[UART_MCR]	= 0x20,
		[UART_LSR]	= 0x24,
		[UART_MSR]	= 0x28,
		[UART_SCR]	= 0x2c
	},
	regmap_out[8] = {
		[UART_TX] 	= 0x04,
		[UART_IER]	= 0x0c,
		[UART_FCR]	= 0x18,
		[UART_LCR]	= 0x1c,
		[UART_MCR]	= 0x20,
		[UART_LSR]	= 0x24,
		[UART_MSR]	= 0x28,
		[UART_SCR]	= 0x2c
	};

static unsigned int rm9k_serial_in(struct uart_port *p, int offset)
{
	offset = regmap_in[offset] << p->regshift;
	return readl(p->membase + offset);
}

static void rm9k_serial_out(struct uart_port *p, int offset, int value)
{
	offset = regmap_out[offset] << p->regshift;
	writel(value, p->membase + offset);
}

static int rm9k_serial_dl_read(struct uart_8250_port *up)
{
	return ((__raw_readl(up->port.membase + 0x10) << 8) |
		(__raw_readl(up->port.membase + 0x08) & 0xff)) & 0xffff;
}

static void rm9k_serial_dl_write(struct uart_8250_port *up, int value)
{
	__raw_writel(value, up->port.membase + 0x08);
	__raw_writel(value >> 8, up->port.membase + 0x10);
}

#endif

static unsigned int hub6_serial_in(struct uart_port *p, int offset)
{
	offset = offset << p->regshift;
@@ -491,15 +434,6 @@ static void set_io_from_upio(struct uart_port *p)
		p->serial_out = mem32_serial_out;
		break;

#ifdef CONFIG_SERIAL_8250_RM9K
	case UPIO_RM9000:
		p->serial_in = rm9k_serial_in;
		p->serial_out = rm9k_serial_out;
		up->dl_read = rm9k_serial_dl_read;
		up->dl_write = rm9k_serial_dl_write;
		break;
#endif

#ifdef CONFIG_MIPS_ALCHEMY
	case UPIO_AU:
		p->serial_in = au_serial_in;
@@ -1343,9 +1277,7 @@ static void serial8250_start_tx(struct uart_port *port)
			unsigned char lsr;
			lsr = serial_in(up, UART_LSR);
			up->lsr_saved_flags |= lsr & LSR_SAVE_FLAGS;
			if ((port->type == PORT_RM9000) ?
				(lsr & UART_LSR_THRE) :
				(lsr & UART_LSR_TEMT))
			if (lsr & UART_LSR_TEMT)
				serial8250_tx_chars(up);
		}
	}
+0 −9
Original line number Diff line number Diff line
@@ -249,15 +249,6 @@ config SERIAL_8250_ACORN
	  system, say Y to this option.  The driver can handle 1, 2, or 3 port
	  cards.  If unsure, say N.

config SERIAL_8250_RM9K
	bool "Support for MIPS RM9xxx integrated serial port"
	depends on SERIAL_8250 != n && SERIAL_RM9000
	select SERIAL_8250_SHARE_IRQ
	help
	  Selecting this option will add support for the integrated serial
	  port hardware found on MIPS RM9122 and similar processors.
	  If unsure, say N.

config SERIAL_8250_FSL
	bool
	depends on SERIAL_8250_CONSOLE && PPC_UDBG_16550
+0 −1
Original line number Diff line number Diff line
@@ -136,7 +136,6 @@ struct uart_port {
#define UPIO_MEM32		(3)
#define UPIO_AU			(4)			/* Au1x00 type IO */
#define UPIO_TSI		(5)			/* Tsi108/109 type IO */
#define UPIO_RM9000		(6)			/* RM9000 type IO */

	unsigned int		read_status_mask;	/* driver specific */
	unsigned int		ignore_status_mask;	/* driver specific */