Commit 27a1c392 authored by Ilpo Järvinen's avatar Ilpo Järvinen Committed by Greg Kroah-Hartman
Browse files

serial: 8250: Use C99 array initializer & define UART_REG_UNMAPPED



Use C99 array initializer insteads of comments and make unmapped checks
more obvious.

Reviewed-by: default avatarJiri Slaby <jirislaby@kernel.org>
Signed-off-by: default avatarIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
Link: https://lore.kernel.org/r/20220624205424.12686-5-ilpo.jarvinen@linux.intel.com


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent e23ee9d2
Loading
Loading
Loading
Loading
+20 −18
Original line number Diff line number Diff line
@@ -336,27 +336,29 @@ static void default_serial_dl_write(struct uart_8250_port *up, int value)

#ifdef CONFIG_SERIAL_8250_RT288X

#define UART_REG_UNMAPPED	-1

/* Au1x00/RT288x UART hardware has a weird register layout */
static const s8 au_io_in_map[8] = {
	 0,	/* UART_RX  */
	 2,	/* UART_IER */
	 3,	/* UART_IIR */
	 5,	/* UART_LCR */
	 6,	/* UART_MCR */
	 7,	/* UART_LSR */
	 8,	/* UART_MSR */
	-1,	/* UART_SCR (unmapped) */
	[UART_RX]	= 0,
	[UART_IER]	= 2,
	[UART_IIR]	= 3,
	[UART_LCR]	= 5,
	[UART_MCR]	= 6,
	[UART_LSR]	= 7,
	[UART_MSR]	= 8,
	[UART_SCR]	= UART_REG_UNMAPPED,
};

static const s8 au_io_out_map[8] = {
	 1,	/* UART_TX  */
	 2,	/* UART_IER */
	 4,	/* UART_FCR */
	 5,	/* UART_LCR */
	 6,	/* UART_MCR */
	-1,	/* UART_LSR (unmapped) */
	-1,	/* UART_MSR (unmapped) */
	-1,	/* UART_SCR (unmapped) */
	[UART_TX]	= 1,
	[UART_IER]	= 2,
	[UART_FCR]	= 4,
	[UART_LCR]	= 5,
	[UART_MCR]	= 6,
	[UART_LSR]	= UART_REG_UNMAPPED,
	[UART_MSR]	= UART_REG_UNMAPPED,
	[UART_SCR]	= UART_REG_UNMAPPED,
};

unsigned int au_serial_in(struct uart_port *p, int offset)
@@ -364,7 +366,7 @@ unsigned int au_serial_in(struct uart_port *p, int offset)
	if (offset >= ARRAY_SIZE(au_io_in_map))
		return UINT_MAX;
	offset = au_io_in_map[offset];
	if (offset < 0)
	if (offset == UART_REG_UNMAPPED)
		return UINT_MAX;
	return __raw_readl(p->membase + (offset << p->regshift));
}
@@ -374,7 +376,7 @@ void au_serial_out(struct uart_port *p, int offset, int value)
	if (offset >= ARRAY_SIZE(au_io_out_map))
		return;
	offset = au_io_out_map[offset];
	if (offset < 0)
	if (offset == UART_REG_UNMAPPED)
		return;
	__raw_writel(value, p->membase + (offset << p->regshift));
}