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

Commit b3bd6668 authored by Anton Wuerfel's avatar Anton Wuerfel Committed by Greg Kroah-Hartman
Browse files

tty: serial: 8250: Add generic port init macro



This patch removes redundant 8250 port initialization macros and
replaces them by a single generic base-macro, which is specialized
as needed.

Signed-off-by: default avatarAnton Würfel <anton.wuerfel@fau.de>
Signed-off-by: default avatarPhillip Raffeck <phillip.raffeck@fau.de>
Suggested-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: linux-kernel@i4.cs.fau.de
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent b3d67936
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -92,6 +92,18 @@ struct serial8250_config {
#define SERIAL8250_SHARE_IRQS 0
#endif

#define SERIAL8250_PORT_FLAGS(_base, _irq, _flags)		\
	{							\
		.iobase		= _base,			\
		.irq		= _irq,				\
		.uartclk	= 1843200,			\
		.iotype		= UPIO_PORT,			\
		.flags		= UPF_BOOT_AUTOCONF | (_flags),	\
	}

#define SERIAL8250_PORT(_base, _irq) SERIAL8250_PORT_FLAGS(_base, _irq, 0)


static inline int serial_in(struct uart_8250_port *up, int offset)
{
	return up->port.serial_in(&up->port, offset);
+3 −10
Original line number Diff line number Diff line
@@ -10,18 +10,11 @@
#include <linux/init.h>
#include <linux/serial_8250.h>

#define PORT(_base,_irq)				\
	{						\
		.iobase		= _base,		\
		.irq		= _irq,			\
		.uartclk	= 1843200,		\
		.iotype		= UPIO_PORT,		\
		.flags		= UPF_BOOT_AUTOCONF,	\
	}
#include "8250.h"

static struct plat_serial8250_port accent_data[] = {
	PORT(0x330, 4),
	PORT(0x338, 4),
	SERIAL8250_PORT(0x330, 4),
	SERIAL8250_PORT(0x338, 4),
	{ },
};

+17 −24
Original line number Diff line number Diff line
@@ -10,32 +10,25 @@
#include <linux/init.h>
#include <linux/serial_8250.h>

#define PORT(_base,_irq)				\
	{						\
		.iobase		= _base,		\
		.irq		= _irq,			\
		.uartclk	= 1843200,		\
		.iotype		= UPIO_PORT,		\
		.flags		= UPF_BOOT_AUTOCONF,	\
	}
#include "8250.h"

static struct plat_serial8250_port boca_data[] = {
	PORT(0x100, 12),
	PORT(0x108, 12),
	PORT(0x110, 12),
	PORT(0x118, 12),
	PORT(0x120, 12),
	PORT(0x128, 12),
	PORT(0x130, 12),
	PORT(0x138, 12),
	PORT(0x140, 12),
	PORT(0x148, 12),
	PORT(0x150, 12),
	PORT(0x158, 12),
	PORT(0x160, 12),
	PORT(0x168, 12),
	PORT(0x170, 12),
	PORT(0x178, 12),
	SERIAL8250_PORT(0x100, 12),
	SERIAL8250_PORT(0x108, 12),
	SERIAL8250_PORT(0x110, 12),
	SERIAL8250_PORT(0x118, 12),
	SERIAL8250_PORT(0x120, 12),
	SERIAL8250_PORT(0x128, 12),
	SERIAL8250_PORT(0x130, 12),
	SERIAL8250_PORT(0x138, 12),
	SERIAL8250_PORT(0x140, 12),
	SERIAL8250_PORT(0x148, 12),
	SERIAL8250_PORT(0x150, 12),
	SERIAL8250_PORT(0x158, 12),
	SERIAL8250_PORT(0x160, 12),
	SERIAL8250_PORT(0x168, 12),
	SERIAL8250_PORT(0x170, 12),
	SERIAL8250_PORT(0x178, 12),
	{ },
};

+5 −12
Original line number Diff line number Diff line
@@ -13,20 +13,13 @@
#include <linux/init.h>
#include <linux/serial_8250.h>

#define PORT(_base,_irq)				\
	{						\
		.iobase		= _base,		\
		.irq		= _irq,			\
		.uartclk	= 1843200,		\
		.iotype		= UPIO_PORT,		\
		.flags		= UPF_BOOT_AUTOCONF,	\
	}
#include "8250.h"

static struct plat_serial8250_port exar_data[] = {
	PORT(0x100, 5),
	PORT(0x108, 5),
	PORT(0x110, 5),
	PORT(0x118, 5),
	SERIAL8250_PORT(0x100, 5),
	SERIAL8250_PORT(0x108, 5),
	SERIAL8250_PORT(0x110, 5),
	SERIAL8250_PORT(0x118, 5),
	{ },
};

+12 −16
Original line number Diff line number Diff line
@@ -10,24 +10,20 @@
#include <linux/init.h>
#include <linux/serial_8250.h>

#define PORT(_base,_irq)						\
	{								\
		.iobase		= _base,				\
		.irq		= _irq,					\
		.uartclk	= 1843200,				\
		.iotype		= UPIO_PORT,				\
		.flags		= UPF_BOOT_AUTOCONF | UPF_FOURPORT,	\
	}
#include "8250.h"

#define SERIAL8250_FOURPORT(_base, _irq) \
	SERIAL8250_PORT_FLAGS(_base, _irq, UPF_FOURPORT)

static struct plat_serial8250_port fourport_data[] = {
	PORT(0x1a0, 9),
	PORT(0x1a8, 9),
	PORT(0x1b0, 9),
	PORT(0x1b8, 9),
	PORT(0x2a0, 5),
	PORT(0x2a8, 5),
	PORT(0x2b0, 5),
	PORT(0x2b8, 5),
	SERIAL8250_FOURPORT(0x1a0, 9),
	SERIAL8250_FOURPORT(0x1a8, 9),
	SERIAL8250_FOURPORT(0x1b0, 9),
	SERIAL8250_FOURPORT(0x1b8, 9),
	SERIAL8250_FOURPORT(0x2a0, 5),
	SERIAL8250_FOURPORT(0x2a8, 5),
	SERIAL8250_FOURPORT(0x2b0, 5),
	SERIAL8250_FOURPORT(0x2b8, 5),
	{ },
};