From: Peter Hurley <peter@hurleysoftware.com>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Masahiro Yamada <yamada.masahiro@socionext.com>
Cc: Rob Herring <robh+dt@kernel.org>,
Grant Likely <grant.likely@linaro.org>,
linux-serial@vger.kernel.org, linux-kernel@vger.kernel.org,
Kevin Cernekee <cernekee@gmail.com>,
Jon Hunter <jonathanh@nvidia.com>,
Sebastian Frias <sf84@laposte.net>,
Paul Burton <paul.burton@imgtec.com>,
Peter Hurley <peter@hurleysoftware.com>
Subject: [PATCH v4 02/11] serial: earlycon: Fixup earlycon console name and index
Date: Tue, 12 Jan 2016 11:41:03 -0800 [thread overview]
Message-ID: <1452627672-9482-3-git-send-email-peter@hurleysoftware.com> (raw)
In-Reply-To: <1452627672-9482-1-git-send-email-peter@hurleysoftware.com>
Properly initialize the struct console 'name' and 'index' fields for
the registering earlycon. For earlycons w/o trailing numerals, the
index is set to 0; otherwise, the index is set to the value of the
trailing numeral. For example, the 'exynos4210' earlycon name == "exynos"
and index == 4210. Earlycons with embedded numerals will have all
non-trailing numerals as part of the name; for example, the 's3c2412'
earlycon name == "s3c" and index == 2412.
This ackward scheme was initially added for the uart8250 earlycon;
adopt this scheme for the other earlycon "drivers".
Introduce earlycon_init() which performs the string scanning and
initializes the name and index fields; encapsulate the other console
field initializations within.
Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
---
drivers/tty/serial/earlycon.c | 25 ++++++++++++++++++++++---
1 file changed, 22 insertions(+), 3 deletions(-)
diff --git a/drivers/tty/serial/earlycon.c b/drivers/tty/serial/earlycon.c
index d50b700..90b064f 100644
--- a/drivers/tty/serial/earlycon.c
+++ b/drivers/tty/serial/earlycon.c
@@ -27,9 +27,9 @@
#include <asm/serial.h>
static struct console early_con = {
- .name = "uart", /* 8250 console switch requires this name */
+ .name = "uart", /* fixed up at earlycon registration */
.flags = CON_PRINTBUFFER | CON_BOOT,
- .index = -1,
+ .index = 0,
};
static struct earlycon_device early_console_dev = {
@@ -53,6 +53,25 @@ static void __iomem * __init earlycon_map(unsigned long paddr, size_t size)
return base;
}
+static void __init earlycon_init(struct earlycon_device *device,
+ const char *name)
+{
+ struct console *earlycon = device->con;
+ const char *s;
+ size_t len;
+
+ /* scan backwards from end of string for first non-numeral */
+ for (s = name + strlen(name);
+ s > name && s[-1] >= '0' && s[-1] <= '9';
+ s--)
+ ;
+ if (*s)
+ earlycon->index = simple_strtoul(s, NULL, 10);
+ len = s - name;
+ strlcpy(earlycon->name, name, min(len + 1, sizeof(earlycon->name)));
+ earlycon->data = &early_console_dev;
+}
+
static int __init parse_options(struct earlycon_device *device, char *options)
{
struct uart_port *port = &device->port;
@@ -119,7 +138,7 @@ static int __init register_earlycon(char *buf, const struct earlycon_id *match)
if (port->mapbase)
port->membase = earlycon_map(port->mapbase, 64);
- early_console_dev.con->data = &early_console_dev;
+ earlycon_init(&early_console_dev, match->name);
err = match->setup(&early_console_dev, buf);
if (err < 0)
return err;
--
2.7.0
next prev parent reply other threads:[~2016-01-12 19:41 UTC|newest]
Thread overview: 80+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-04-08 17:45 [PATCH v3 00/13] Earlycon cleanup Peter Hurley
2015-04-08 17:45 ` [PATCH v3 01/13] of: earlycon: Fix 'stdout-path' with ':' path terminator Peter Hurley
2015-04-08 21:24 ` Rob Herring
2015-04-28 13:07 ` Peter Hurley
2015-04-28 13:28 ` Greg Kroah-Hartman
2015-04-28 13:58 ` Peter Hurley
2015-04-28 14:02 ` Rob Herring
2015-07-22 10:16 ` Sudeep Holla
2015-04-08 17:45 ` [PATCH v3 02/13] earlycon: Use common framework for earlycon declarations Peter Hurley
2015-04-08 17:45 ` [PATCH v3 03/13] serial: earlycon: Fixup earlycon console name and index Peter Hurley
2015-04-08 17:45 ` [PATCH v3 04/13] of: " Peter Hurley
2015-04-08 17:45 ` [PATCH v3 05/13] of: earlycon: Add options string handling Peter Hurley
2015-04-08 17:45 ` [PATCH v3 06/13] of: earlycon: of_setup_earlycon() requires CONFIG_OF_EARLY_FLATTREE Peter Hurley
2015-04-08 17:45 ` [PATCH v3 07/13] of: earlycon: Initialize port fields from DT properties Peter Hurley
2015-04-08 17:45 ` [PATCH v3 08/13] of: earlycon: Move address translation to of_setup_earlycon() Peter Hurley
2015-04-08 17:45 ` [PATCH v3 09/13] serial: earlycon: Common log banner for command line and DT Peter Hurley
2015-04-08 17:45 ` [PATCH v3 10/13] serial: earlycon: Show the earlycon "driver" in banner Peter Hurley
2015-04-08 17:45 ` [PATCH v3 11/13] of: earlycon: Log more helpful message if earlycon not found Peter Hurley
2015-04-08 17:45 ` [PATCH v3 12/13] serial: 8250_early: Use port->regshift Peter Hurley
2015-04-28 11:38 ` Greg Kroah-Hartman
2015-04-08 17:45 ` [PATCH v3 13/13] serial: 8250_omap: Add omap8250 earlycon Peter Hurley
2015-04-08 18:07 ` [PATCH v3 00/13] Earlycon cleanup Peter Hurley
2016-01-12 19:41 ` [PATCH v4 00/11] " Peter Hurley
2016-01-12 19:41 ` [PATCH v4 01/11] earlycon: Use common framework for earlycon declarations Peter Hurley
2016-01-12 19:41 ` Peter Hurley [this message]
2016-01-12 19:41 ` [PATCH v4 03/11] of: earlycon: Fixup earlycon console name and index Peter Hurley
2016-01-12 19:41 ` [PATCH v4 04/11] of: earlycon: Add options string handling Peter Hurley
2016-01-12 19:41 ` [PATCH v4 05/11] of: earlycon: Initialize port fields from DT properties Peter Hurley
2016-01-12 23:49 ` Rob Herring
2016-01-13 16:35 ` Peter Hurley
2016-01-12 19:41 ` [PATCH v4 06/11] of: earlycon: Move address translation to of_setup_earlycon() Peter Hurley
2016-01-12 19:41 ` [PATCH v4 07/11] serial: earlycon: Common log banner for command line and DT Peter Hurley
2016-01-12 19:41 ` [PATCH v4 08/11] serial: earlycon: Show the earlycon "driver" in banner Peter Hurley
2016-01-12 19:41 ` [PATCH v4 09/11] serial: 8250_early: Use port->regshift Peter Hurley
2016-01-12 19:41 ` [PATCH v4 10/11] of: earlycon: Log more helpful message if stdout-path node not found Peter Hurley
2016-01-12 23:38 ` Rob Herring
2016-01-12 19:41 ` [PATCH v4 11/11] serial: 8250_omap: Add omap8250 earlycon Peter Hurley
2016-01-12 19:51 ` Peter Hurley
2016-01-13 9:19 ` Jon Hunter
2016-01-13 9:19 ` Jon Hunter
2016-01-13 9:57 ` Jon Hunter
2016-01-13 9:57 ` Jon Hunter
2016-01-13 10:09 ` Jon Hunter
2016-01-13 10:09 ` Jon Hunter
2016-01-13 17:06 ` Peter Hurley
2016-01-13 17:15 ` Jon Hunter
2016-01-13 17:15 ` Jon Hunter
2016-01-12 23:52 ` [PATCH v4 00/11] Earlycon cleanup Rob Herring
2016-01-16 21:37 ` [PATCH v5 " Peter Hurley
2016-01-16 21:37 ` [PATCH v5 01/11] earlycon: Use common framework for earlycon declarations Peter Hurley
2016-01-16 21:37 ` [PATCH v5 02/11] serial: earlycon: Fixup earlycon console name and index Peter Hurley
2016-01-16 21:37 ` [PATCH v5 03/11] of: " Peter Hurley
2016-01-16 21:37 ` [PATCH v5 04/11] of: earlycon: Add options string handling Peter Hurley
2016-01-16 21:37 ` [PATCH v5 05/11] of: earlycon: Initialize port fields from DT properties Peter Hurley
2016-01-16 21:54 ` kbuild test robot
2016-01-16 21:54 ` kbuild test robot
2016-01-16 21:37 ` [PATCH v5 06/11] of: earlycon: Move address translation to of_setup_earlycon() Peter Hurley
2016-01-16 22:02 ` kbuild test robot
2016-01-16 22:02 ` kbuild test robot
2016-01-16 21:37 ` [PATCH v5 07/11] serial: earlycon: Common log banner for command line and DT Peter Hurley
2016-01-16 21:37 ` [PATCH v5 08/11] serial: earlycon: Show the earlycon "driver" in banner Peter Hurley
2016-01-16 21:37 ` [PATCH v5 09/11] serial: 8250_early: Use port->regshift Peter Hurley
2016-01-16 21:37 ` [PATCH v5 10/11] of: earlycon: Log more helpful message if stdout-path node not found Peter Hurley
2016-01-16 21:37 ` [PATCH v5 11/11] serial: 8250_omap: Add omap8250 earlycon Peter Hurley
2016-01-16 23:23 ` [PATCH v6 00/12] Earlycon cleanup Peter Hurley
2016-01-16 23:23 ` [PATCH v6 01/12] of: earlycon: of_setup_earlycon() requires CONFIG_OF_EARLY_FLATTREE Peter Hurley
2016-01-16 23:23 ` [PATCH v6 02/12] earlycon: Use common framework for earlycon declarations Peter Hurley
2016-01-16 23:23 ` [PATCH v6 03/12] serial: earlycon: Fixup earlycon console name and index Peter Hurley
2016-01-16 23:23 ` [PATCH v6 04/12] of: " Peter Hurley
2016-01-16 23:23 ` [PATCH v6 05/12] of: earlycon: Add options string handling Peter Hurley
2016-01-16 23:23 ` [PATCH v6 06/12] of: earlycon: Initialize port fields from DT properties Peter Hurley
2016-01-16 23:23 ` [PATCH v6 07/12] of: earlycon: Move address translation to of_setup_earlycon() Peter Hurley
2016-01-16 23:23 ` [PATCH v6 08/12] serial: earlycon: Common log banner for command line and DT Peter Hurley
2016-01-16 23:23 ` [PATCH v6 09/12] serial: earlycon: Show the earlycon "driver" in banner Peter Hurley
2016-01-16 23:23 ` [PATCH v6 10/12] serial: 8250_early: Use port->regshift Peter Hurley
2016-01-16 23:23 ` [PATCH v6 11/12] of: earlycon: Log more helpful message if stdout-path node not found Peter Hurley
2016-01-16 23:23 ` [PATCH v6 12/12] serial: 8250_omap: Add omap8250 earlycon Peter Hurley
2016-02-05 9:19 ` [PATCH v6 00/12] Earlycon cleanup Jon Hunter
2016-02-05 9:19 ` Jon Hunter
2016-02-07 6:08 ` Greg Kroah-Hartman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1452627672-9482-3-git-send-email-peter@hurleysoftware.com \
--to=peter@hurleysoftware.com \
--cc=cernekee@gmail.com \
--cc=grant.likely@linaro.org \
--cc=gregkh@linuxfoundation.org \
--cc=jonathanh@nvidia.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-serial@vger.kernel.org \
--cc=paul.burton@imgtec.com \
--cc=robh+dt@kernel.org \
--cc=sf84@laposte.net \
--cc=yamada.masahiro@socionext.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.