Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1311078

[PATCH v6 10/12] serial: 8250_early: Use port->regshift

Path csiph.com!aioe.org!bofh.it!news.nic.it!robomod
From Peter Hurley <peter@hurleysoftware.com>
Newsgroups linux.kernel
Subject [PATCH v6 10/12] serial: 8250_early: Use port->regshift
Date Sun, 17 Jan 2016 00:30:03 +0100
Message-ID <qRIsb-2KH-33@gated-at.bofh.it> (permalink)
References <qRGJI-1Au-1@gated-at.bofh.it> <qRIsa-2KH-13@gated-at.bofh.it>
Dkim-Signature v=1; a=rsa-sha256; c=relaxed/relaxed; d=hurleysoftware-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=3D59oreyMCXhm0CGLlhjvdFa4HPUvk56Jecd7RveNXY=; b=yb9GxT7ZmPCsLftZuwS0ZBV6lpSHAdWHKSY+3nBYZpw0BedlyFp6enAvgE+8IR5ajs cl4eJe2jB15DM2158rz5awE1W9pL+c4jcXm9V9M+vyFEB2OZ04/Y4k2RQbxpjBrB28cb E5qupxsTmPX64WaQs0rryDmfvP3UgIc4Xwb+bc9M70qC0CTm4Hs/GX9BQl7vXGoDz6Tm kajStyU9FwgSag9vyEwqoqTzOEgPVS87OW1jV5b0J6oCYdF7y7bx9fTk2LTDaMlAFcTv SK5Do/sAbYyZYFFF8Kzsjg26GOeiO72l667P89QtJmU/nxBBOrr1gTViByybCb8VZJ3X kZMw==
X-Google-Dkim-Signature v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=3D59oreyMCXhm0CGLlhjvdFa4HPUvk56Jecd7RveNXY=; b=bu6e6wEyutEBmQ1ONovjP4qZRhpRwXE3dwfDbwoxzzjx0+6XfBY0+Y5NauSHjEeSLk CtOtvP6SBA+MkiuKsIZYh67lLAOjS8Rrny/CfSBnxQM5mz0hCtyX4GdZ0gjj+6V9wTjt 5eYuL4+hK+Fo1PDO9uVHmQFTRURhRL+rYFR8cViTTcUDrkjwFL0F/g8X/o/4Sw8gKFuj CKPwWnSX60n2RFD1vzoZ9/uFgeWdzzMsSw403RENSJFYkU60lPpH2Vg/J6UynRs2dFkL 1sw75laZFR/vZ7OiGEalYR94lSZ8evTKcw+DqiFnukvKBYyOBa6/ST9p+84pkKeIXbKP 3lAg==
X-Gm-Message-State ALoCoQnP0FVGfegbwmSJITeRMqilNKWe6Qegj+17spwFKZx57R2fR896TiijeDWRfJCvfqp3Z9zJZ7EkBVCEM5v/D2ZZVZTlpA==
X-Received by 10.66.190.66 with SMTP id go2mr26019377pac.114.1452986681031; Sat, 16 Jan 2016 15:24:41 -0800 (PST)
X-Mailer git-send-email 2.7.0
Sender robomod@news.nic.it
List-ID <linux-kernel.vger.kernel.org>
X-Mailing-List linux-kernel@vger.kernel.org
Approved robomod@news.nic.it
Lines 64
Organization linux.* mail to news gateway
X-Original-Cc Jiri Slaby <jslaby@suse.cz>, linux-serial@vger.kernel.org, linux-kernel@vger.kernel.org, Kevin Cernekee <cernekee@gmail.com>, Jon Hunter <jonathanh@nvidia.com>, Paul Burton <paul.burton@imgtec.com>, Masahiro Yamada <yamada.masahiro@socionext.com>, Sebastian Frias <sf84@laposte.net>, Peter Hurley <peter@hurleysoftware.com>
X-Original-Date Sat, 16 Jan 2016 15:23:47 -0800
X-Original-Message-ID <1452986629-17210-11-git-send-email-peter@hurleysoftware.com>
X-Original-References <1452980244-20512-1-git-send-email-peter@hurleysoftware.com> <1452986629-17210-1-git-send-email-peter@hurleysoftware.com>
X-Original-Sender linux-kernel-owner@vger.kernel.org
Xref csiph.com linux.kernel:1311078

Show key headers only | View raw


earlycon initializes struct uart_port::regshift to the correct
value for UPIO_MEM32 already. Use the port field rather than
hard-coded value.

This enables broader support for various i/o access methods in
8250 earlycon (eg., omap8250 earlycon).

Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
---
 drivers/tty/serial/8250/8250_early.c | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

diff --git a/drivers/tty/serial/8250/8250_early.c b/drivers/tty/serial/8250/8250_early.c
index af62131..180143c 100644
--- a/drivers/tty/serial/8250/8250_early.c
+++ b/drivers/tty/serial/8250/8250_early.c
@@ -39,15 +39,17 @@
 
 static unsigned int __init serial8250_early_in(struct uart_port *port, int offset)
 {
+	offset <<= port->regshift;
+
 	switch (port->iotype) {
 	case UPIO_MEM:
 		return readb(port->membase + offset);
 	case UPIO_MEM16:
-		return readw(port->membase + (offset << 1));
+		return readw(port->membase + offset);
 	case UPIO_MEM32:
-		return readl(port->membase + (offset << 2));
+		return readl(port->membase + offset);
 	case UPIO_MEM32BE:
-		return ioread32be(port->membase + (offset << 2));
+		return ioread32be(port->membase + offset);
 	case UPIO_PORT:
 		return inb(port->iobase + offset);
 	default:
@@ -57,18 +59,20 @@ static unsigned int __init serial8250_early_in(struct uart_port *port, int offse
 
 static void __init serial8250_early_out(struct uart_port *port, int offset, int value)
 {
+	offset <<= port->regshift;
+
 	switch (port->iotype) {
 	case UPIO_MEM:
 		writeb(value, port->membase + offset);
 		break;
 	case UPIO_MEM16:
-		writew(value, port->membase + (offset << 1));
+		writew(value, port->membase + offset);
 		break;
 	case UPIO_MEM32:
-		writel(value, port->membase + (offset << 2));
+		writel(value, port->membase + offset);
 		break;
 	case UPIO_MEM32BE:
-		iowrite32be(value, port->membase + (offset << 2));
+		iowrite32be(value, port->membase + offset);
 		break;
 	case UPIO_PORT:
 		outb(value, port->iobase + offset);
-- 
2.7.0

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH v5 00/11] Earlycon cleanup Peter Hurley <peter@hurleysoftware.com> - 2016-01-16 22:40 +0100
  [PATCH v5 11/11] serial: 8250_omap: Add omap8250 earlycon Peter Hurley <peter@hurleysoftware.com> - 2016-01-16 22:40 +0100
  [PATCH v5 06/11] of: earlycon: Move address translation to of_setup_earlycon() Peter Hurley <peter@hurleysoftware.com> - 2016-01-16 22:40 +0100
    Re: [PATCH v5 06/11] of: earlycon: Move address translation to  of_setup_earlycon() kbuild test robot <lkp@intel.com> - 2016-01-16 23:10 +0100
  [PATCH v5 07/11] serial: earlycon: Common log banner for command line and DT Peter Hurley <peter@hurleysoftware.com> - 2016-01-16 22:40 +0100
  [PATCH v5 01/11] earlycon: Use common framework for earlycon declarations Peter Hurley <peter@hurleysoftware.com> - 2016-01-16 22:50 +0100
  [PATCH v5 05/11] of: earlycon: Initialize port fields from DT properties Peter Hurley <peter@hurleysoftware.com> - 2016-01-16 22:50 +0100
    Re: [PATCH v5 05/11] of: earlycon: Initialize port fields from DT  properties kbuild test robot <lkp@intel.com> - 2016-01-16 23:00 +0100
  [PATCH v5 02/11] serial: earlycon: Fixup earlycon console name and index Peter Hurley <peter@hurleysoftware.com> - 2016-01-16 22:50 +0100
  [PATCH v5 03/11] of: earlycon: Fixup earlycon console name and index Peter Hurley <peter@hurleysoftware.com> - 2016-01-16 22:50 +0100
  [PATCH v5 04/11] of: earlycon: Add options string handling Peter Hurley <peter@hurleysoftware.com> - 2016-01-16 22:50 +0100
  [PATCH v5 09/11] serial: 8250_early: Use port->regshift Peter Hurley <peter@hurleysoftware.com> - 2016-01-16 22:50 +0100
  [PATCH v5 08/11] serial: earlycon: Show the earlycon "driver" in banner Peter Hurley <peter@hurleysoftware.com> - 2016-01-16 22:50 +0100
  [PATCH v5 10/11] of: earlycon: Log more helpful message if stdout-path node not found Peter Hurley <peter@hurleysoftware.com> - 2016-01-16 22:50 +0100
  [PATCH v6 11/12] of: earlycon: Log more helpful message if stdout-path node not found Peter Hurley <peter@hurleysoftware.com> - 2016-01-17 00:30 +0100
  [PATCH v6 05/12] of: earlycon: Add options string handling Peter Hurley <peter@hurleysoftware.com> - 2016-01-17 00:30 +0100
  [PATCH v6 04/12] of: earlycon: Fixup earlycon console name and index Peter Hurley <peter@hurleysoftware.com> - 2016-01-17 00:30 +0100
  [PATCH v6 09/12] serial: earlycon: Show the earlycon "driver" in banner Peter Hurley <peter@hurleysoftware.com> - 2016-01-17 00:30 +0100
  [PATCH v6 00/12] Earlycon cleanup Peter Hurley <peter@hurleysoftware.com> - 2016-01-17 00:30 +0100
    [PATCH v6 02/12] earlycon: Use common framework for earlycon declarations Peter Hurley <peter@hurleysoftware.com> - 2016-01-17 00:30 +0100
    [PATCH v6 10/12] serial: 8250_early: Use port->regshift Peter Hurley <peter@hurleysoftware.com> - 2016-01-17 00:30 +0100
    [PATCH v6 07/12] of: earlycon: Move address translation to of_setup_earlycon() Peter Hurley <peter@hurleysoftware.com> - 2016-01-17 00:30 +0100
    [PATCH v6 01/12] of: earlycon: of_setup_earlycon() requires CONFIG_OF_EARLY_FLATTREE Peter Hurley <peter@hurleysoftware.com> - 2016-01-17 00:30 +0100
    [PATCH v6 03/12] serial: earlycon: Fixup earlycon console name and index Peter Hurley <peter@hurleysoftware.com> - 2016-01-17 00:30 +0100
    [PATCH v6 08/12] serial: earlycon: Common log banner for command line and DT Peter Hurley <peter@hurleysoftware.com> - 2016-01-17 00:30 +0100
    [PATCH v6 06/12] of: earlycon: Initialize port fields from DT properties Peter Hurley <peter@hurleysoftware.com> - 2016-01-17 00:30 +0100
    [PATCH v6 12/12] serial: 8250_omap: Add omap8250 earlycon Peter Hurley <peter@hurleysoftware.com> - 2016-01-17 00:30 +0100

csiph-web