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: Anton Würfel <anton.wuerfel@fau.de>
Signed-off-by: Phillip Raffeck <phillip.raffeck@fau.de>
Suggested-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: linux-kernel@i4.cs.fau.de
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Anton Wuerfel 2016-01-14 16:08:24 +01:00 committed by Greg Kroah-Hartman
parent b3d67936bf
commit b3bd666807
5 changed files with 49 additions and 62 deletions

View file

@ -92,6 +92,18 @@ struct serial8250_config {
#define SERIAL8250_SHARE_IRQS 0 #define SERIAL8250_SHARE_IRQS 0
#endif #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) static inline int serial_in(struct uart_8250_port *up, int offset)
{ {
return up->port.serial_in(&up->port, offset); return up->port.serial_in(&up->port, offset);

View file

@ -10,18 +10,11 @@
#include <linux/init.h> #include <linux/init.h>
#include <linux/serial_8250.h> #include <linux/serial_8250.h>
#define PORT(_base,_irq) \ #include "8250.h"
{ \
.iobase = _base, \
.irq = _irq, \
.uartclk = 1843200, \
.iotype = UPIO_PORT, \
.flags = UPF_BOOT_AUTOCONF, \
}
static struct plat_serial8250_port accent_data[] = { static struct plat_serial8250_port accent_data[] = {
PORT(0x330, 4), SERIAL8250_PORT(0x330, 4),
PORT(0x338, 4), SERIAL8250_PORT(0x338, 4),
{ }, { },
}; };

View file

@ -10,32 +10,25 @@
#include <linux/init.h> #include <linux/init.h>
#include <linux/serial_8250.h> #include <linux/serial_8250.h>
#define PORT(_base,_irq) \ #include "8250.h"
{ \
.iobase = _base, \
.irq = _irq, \
.uartclk = 1843200, \
.iotype = UPIO_PORT, \
.flags = UPF_BOOT_AUTOCONF, \
}
static struct plat_serial8250_port boca_data[] = { static struct plat_serial8250_port boca_data[] = {
PORT(0x100, 12), SERIAL8250_PORT(0x100, 12),
PORT(0x108, 12), SERIAL8250_PORT(0x108, 12),
PORT(0x110, 12), SERIAL8250_PORT(0x110, 12),
PORT(0x118, 12), SERIAL8250_PORT(0x118, 12),
PORT(0x120, 12), SERIAL8250_PORT(0x120, 12),
PORT(0x128, 12), SERIAL8250_PORT(0x128, 12),
PORT(0x130, 12), SERIAL8250_PORT(0x130, 12),
PORT(0x138, 12), SERIAL8250_PORT(0x138, 12),
PORT(0x140, 12), SERIAL8250_PORT(0x140, 12),
PORT(0x148, 12), SERIAL8250_PORT(0x148, 12),
PORT(0x150, 12), SERIAL8250_PORT(0x150, 12),
PORT(0x158, 12), SERIAL8250_PORT(0x158, 12),
PORT(0x160, 12), SERIAL8250_PORT(0x160, 12),
PORT(0x168, 12), SERIAL8250_PORT(0x168, 12),
PORT(0x170, 12), SERIAL8250_PORT(0x170, 12),
PORT(0x178, 12), SERIAL8250_PORT(0x178, 12),
{ }, { },
}; };

View file

@ -13,20 +13,13 @@
#include <linux/init.h> #include <linux/init.h>
#include <linux/serial_8250.h> #include <linux/serial_8250.h>
#define PORT(_base,_irq) \ #include "8250.h"
{ \
.iobase = _base, \
.irq = _irq, \
.uartclk = 1843200, \
.iotype = UPIO_PORT, \
.flags = UPF_BOOT_AUTOCONF, \
}
static struct plat_serial8250_port exar_data[] = { static struct plat_serial8250_port exar_data[] = {
PORT(0x100, 5), SERIAL8250_PORT(0x100, 5),
PORT(0x108, 5), SERIAL8250_PORT(0x108, 5),
PORT(0x110, 5), SERIAL8250_PORT(0x110, 5),
PORT(0x118, 5), SERIAL8250_PORT(0x118, 5),
{ }, { },
}; };

View file

@ -10,24 +10,20 @@
#include <linux/init.h> #include <linux/init.h>
#include <linux/serial_8250.h> #include <linux/serial_8250.h>
#define PORT(_base,_irq) \ #include "8250.h"
{ \
.iobase = _base, \ #define SERIAL8250_FOURPORT(_base, _irq) \
.irq = _irq, \ SERIAL8250_PORT_FLAGS(_base, _irq, UPF_FOURPORT)
.uartclk = 1843200, \
.iotype = UPIO_PORT, \
.flags = UPF_BOOT_AUTOCONF | UPF_FOURPORT, \
}
static struct plat_serial8250_port fourport_data[] = { static struct plat_serial8250_port fourport_data[] = {
PORT(0x1a0, 9), SERIAL8250_FOURPORT(0x1a0, 9),
PORT(0x1a8, 9), SERIAL8250_FOURPORT(0x1a8, 9),
PORT(0x1b0, 9), SERIAL8250_FOURPORT(0x1b0, 9),
PORT(0x1b8, 9), SERIAL8250_FOURPORT(0x1b8, 9),
PORT(0x2a0, 5), SERIAL8250_FOURPORT(0x2a0, 5),
PORT(0x2a8, 5), SERIAL8250_FOURPORT(0x2a8, 5),
PORT(0x2b0, 5), SERIAL8250_FOURPORT(0x2b0, 5),
PORT(0x2b8, 5), SERIAL8250_FOURPORT(0x2b8, 5),
{ }, { },
}; };