From: Aleksey Makarov <aleksey.makarov@linaro.org> To: Russell King <linux@arm.linux.org.uk> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Aleksey Makarov <aleksey.makarov@linaro.org>, "Rafael J . Wysocki" <rjw@rjwysocki.net>, linux-serial@vger.kernel.org, linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Len Brown <lenb@kernel.org>, Leif Lindholm <leif.lindholm@linaro.org>, Graeme Gregory <graeme.gregory@linaro.org>, Al Stone <ahs3@redhat.com>, Christopher Covington <cov@codeaurora.org>, Yury Norov <ynorov@caviumnetworks.com>, Peter Hurley <peter@hurleysoftware.com>, Andy Shevchenko <andy.shevchenko@gmail.com>, "Zheng, Lv" <lv.zheng@intel.com>, Mark Salter <msalter@redhat.com>, Kefeng Wang <wangkefeng.wang@huawei.com>, Russell King <linux@armlinux.org.uk>, Jiri Slaby <jslaby@suse.com> Subject: Re: [PATCH v8 4/4] serial: pl011: add console matching function Date: Mon, 20 Jun 2016 15:26:39 +0300 [thread overview] Message-ID: <fd9443e7-67f1-93e7-834b-445f9c29d876@linaro.org> (raw) In-Reply-To: <c37d62c7-1e1b-0b10-a083-c5207fbbb820@gmail.com> On 06/02/2016 09:02 PM, Aleksey Makarov wrote: > > On 05/20/2016 04:03 PM, Aleksey Makarov wrote: Hi Russell, Can you review this patch please? Thank you Aleksey Makarov >> This patch adds function pl011_console_match() that implements >> method match of struct console. It allows to match consoles against >> data specified in a string, for example taken from command line or >> compiled by ACPI SPCR table handler. >> >> Signed-off-by: Aleksey Makarov <aleksey.makarov@linaro.org> >> Reviewed-by: Peter Hurley <peter@hurleysoftware.com> > > Hi Greg, Russell, > > Can you review this patch and consider ACKing it please? > It had an ACK from Greg in v7 but since then I changed it a bit. > > The patch by Christopher Covington [1] specifies that SBSA uart > does 32-bit access to registers and this breaks the match function. > In this series the function was changed to match when SPCR specifies > both mmio32 and mmio access. I removed Acked-by: Greg from this > patch because of these changes. > > The difference between v7 and v8: > > diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl011.c > index 4139b64..388edc8 100644 > --- a/drivers/tty/serial/amba-pl011.c > +++ b/drivers/tty/serial/amba-pl011.c > @@ -2328,10 +2329,10 @@ static int __init pl011_console_match(struct console *co, char *name, int idx, > > port = &amba_ports[i]->port; > > - if (port->iotype != iotype) > + if (iotype != UPIO_MEM && iotype != UPIO_MEM32) > continue; > - if ((iotype == UPIO_MEM || iotype == UPIO_MEM32) && > - (port->mapbase != addr)) > + > + if (port->mapbase != addr) > continue; > > co->index = i; > > [1] https://lkml.kernel.org/g/1457415800-8799-1-git-send-email-cov@codeaurora.org > > Thank you > Aleksey Makarov > >> --- >> drivers/tty/serial/amba-pl011.c | 56 +++++++++++++++++++++++++++++++++++++++++ >> 1 file changed, 56 insertions(+) >> >> diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl011.c >> index a2aa655..388edc8 100644 >> --- a/drivers/tty/serial/amba-pl011.c >> +++ b/drivers/tty/serial/amba-pl011.c >> @@ -2288,12 +2288,68 @@ static int __init pl011_console_setup(struct console *co, char *options) >> return uart_set_options(&uap->port, co, baud, parity, bits, flow); >> } >> >> +/** >> + * pl011_console_match - non-standard console matching >> + * @co: registering console >> + * @name: name from console command line >> + * @idx: index from console command line >> + * @options: ptr to option string from console command line >> + * >> + * Only attempts to match console command lines of the form: >> + * console=pl011,mmio|mmio32,<addr>[,<options>] >> + * console=pl011,0x<addr>[,<options>] >> + * This form is used to register an initial earlycon boot console and >> + * replace it with the amba_console at pl011 driver init. >> + * >> + * Performs console setup for a match (as required by interface) >> + * If no <options> are specified, then assume the h/w is already setup. >> + * >> + * Returns 0 if console matches; otherwise non-zero to use default matching >> + */ >> +static int __init pl011_console_match(struct console *co, char *name, int idx, >> + char *options) >> +{ >> + char match[] = "pl011"; /* pl011-specific earlycon name */ >> + unsigned char iotype; >> + unsigned long addr; >> + int i; >> + >> + if (strncmp(name, match, 5) != 0) >> + return -ENODEV; >> + >> + if (uart_parse_earlycon(options, &iotype, &addr, &options)) >> + return -ENODEV; >> + >> + /* try to match the port specified on the command line */ >> + for (i = 0; i < ARRAY_SIZE(amba_ports); i++) { >> + struct uart_port *port; >> + >> + if (!amba_ports[i]) >> + continue; >> + >> + port = &amba_ports[i]->port; >> + >> + if (iotype != UPIO_MEM && iotype != UPIO_MEM32) >> + continue; >> + >> + if (port->mapbase != addr) >> + continue; >> + >> + co->index = i; >> + port->cons = co; >> + return pl011_console_setup(co, options); >> + } >> + >> + return -ENODEV; >> +} >> + >> static struct uart_driver amba_reg; >> static struct console amba_console = { >> .name = "ttyAMA", >> .write = pl011_console_write, >> .device = uart_console_device, >> .setup = pl011_console_setup, >> + .match = pl011_console_match, >> .flags = CON_PRINTBUFFER, >> .index = -1, >> .data = &amba_reg, >>
WARNING: multiple messages have this Message-ID (diff)
From: aleksey.makarov@linaro.org (Aleksey Makarov) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH v8 4/4] serial: pl011: add console matching function Date: Mon, 20 Jun 2016 15:26:39 +0300 [thread overview] Message-ID: <fd9443e7-67f1-93e7-834b-445f9c29d876@linaro.org> (raw) In-Reply-To: <c37d62c7-1e1b-0b10-a083-c5207fbbb820@gmail.com> On 06/02/2016 09:02 PM, Aleksey Makarov wrote: > > On 05/20/2016 04:03 PM, Aleksey Makarov wrote: Hi Russell, Can you review this patch please? Thank you Aleksey Makarov >> This patch adds function pl011_console_match() that implements >> method match of struct console. It allows to match consoles against >> data specified in a string, for example taken from command line or >> compiled by ACPI SPCR table handler. >> >> Signed-off-by: Aleksey Makarov <aleksey.makarov@linaro.org> >> Reviewed-by: Peter Hurley <peter@hurleysoftware.com> > > Hi Greg, Russell, > > Can you review this patch and consider ACKing it please? > It had an ACK from Greg in v7 but since then I changed it a bit. > > The patch by Christopher Covington [1] specifies that SBSA uart > does 32-bit access to registers and this breaks the match function. > In this series the function was changed to match when SPCR specifies > both mmio32 and mmio access. I removed Acked-by: Greg from this > patch because of these changes. > > The difference between v7 and v8: > > diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl011.c > index 4139b64..388edc8 100644 > --- a/drivers/tty/serial/amba-pl011.c > +++ b/drivers/tty/serial/amba-pl011.c > @@ -2328,10 +2329,10 @@ static int __init pl011_console_match(struct console *co, char *name, int idx, > > port = &amba_ports[i]->port; > > - if (port->iotype != iotype) > + if (iotype != UPIO_MEM && iotype != UPIO_MEM32) > continue; > - if ((iotype == UPIO_MEM || iotype == UPIO_MEM32) && > - (port->mapbase != addr)) > + > + if (port->mapbase != addr) > continue; > > co->index = i; > > [1] https://lkml.kernel.org/g/1457415800-8799-1-git-send-email-cov at codeaurora.org > > Thank you > Aleksey Makarov > >> --- >> drivers/tty/serial/amba-pl011.c | 56 +++++++++++++++++++++++++++++++++++++++++ >> 1 file changed, 56 insertions(+) >> >> diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl011.c >> index a2aa655..388edc8 100644 >> --- a/drivers/tty/serial/amba-pl011.c >> +++ b/drivers/tty/serial/amba-pl011.c >> @@ -2288,12 +2288,68 @@ static int __init pl011_console_setup(struct console *co, char *options) >> return uart_set_options(&uap->port, co, baud, parity, bits, flow); >> } >> >> +/** >> + * pl011_console_match - non-standard console matching >> + * @co: registering console >> + * @name: name from console command line >> + * @idx: index from console command line >> + * @options: ptr to option string from console command line >> + * >> + * Only attempts to match console command lines of the form: >> + * console=pl011,mmio|mmio32,<addr>[,<options>] >> + * console=pl011,0x<addr>[,<options>] >> + * This form is used to register an initial earlycon boot console and >> + * replace it with the amba_console at pl011 driver init. >> + * >> + * Performs console setup for a match (as required by interface) >> + * If no <options> are specified, then assume the h/w is already setup. >> + * >> + * Returns 0 if console matches; otherwise non-zero to use default matching >> + */ >> +static int __init pl011_console_match(struct console *co, char *name, int idx, >> + char *options) >> +{ >> + char match[] = "pl011"; /* pl011-specific earlycon name */ >> + unsigned char iotype; >> + unsigned long addr; >> + int i; >> + >> + if (strncmp(name, match, 5) != 0) >> + return -ENODEV; >> + >> + if (uart_parse_earlycon(options, &iotype, &addr, &options)) >> + return -ENODEV; >> + >> + /* try to match the port specified on the command line */ >> + for (i = 0; i < ARRAY_SIZE(amba_ports); i++) { >> + struct uart_port *port; >> + >> + if (!amba_ports[i]) >> + continue; >> + >> + port = &amba_ports[i]->port; >> + >> + if (iotype != UPIO_MEM && iotype != UPIO_MEM32) >> + continue; >> + >> + if (port->mapbase != addr) >> + continue; >> + >> + co->index = i; >> + port->cons = co; >> + return pl011_console_setup(co, options); >> + } >> + >> + return -ENODEV; >> +} >> + >> static struct uart_driver amba_reg; >> static struct console amba_console = { >> .name = "ttyAMA", >> .write = pl011_console_write, >> .device = uart_console_device, >> .setup = pl011_console_setup, >> + .match = pl011_console_match, >> .flags = CON_PRINTBUFFER, >> .index = -1, >> .data = &amba_reg, >>
next prev parent reply other threads:[~2016-06-20 12:26 UTC|newest] Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top 2016-05-20 13:03 [PATCH v8 0/4] ACPI: parse the SPCR table Aleksey Makarov 2016-05-20 13:03 ` Aleksey Makarov 2016-05-20 13:03 ` [PATCH v8 1/4] of/serial: move earlycon early_param handling to serial Aleksey Makarov 2016-05-20 13:03 ` Aleksey Makarov 2016-05-20 13:03 ` [PATCH v8 2/4] ACPI: parse SPCR and enable matching console Aleksey Makarov 2016-05-20 13:03 ` Aleksey Makarov 2016-05-20 20:42 ` Rafael J. Wysocki 2016-05-20 20:42 ` Rafael J. Wysocki 2016-05-20 20:42 ` Rafael J. Wysocki 2016-05-20 13:03 ` [PATCH v8 3/4] ARM64: ACPI: enable ACPI_SPCR_TABLE Aleksey Makarov 2016-05-20 13:03 ` Aleksey Makarov 2016-05-20 13:03 ` [PATCH v8 4/4] serial: pl011: add console matching function Aleksey Makarov 2016-05-20 13:03 ` Aleksey Makarov 2016-06-02 18:02 ` Aleksey Makarov 2016-06-02 18:02 ` Aleksey Makarov 2016-06-20 12:26 ` Aleksey Makarov [this message] 2016-06-20 12:26 ` Aleksey Makarov 2016-06-20 15:19 ` Russell King - ARM Linux 2016-06-20 15:19 ` Russell King - ARM Linux 2016-06-20 15:19 ` Russell King - ARM Linux 2016-08-03 8:33 ` Graeme Gregory 2016-08-03 8:33 ` Graeme Gregory 2016-08-03 8:33 ` Graeme Gregory 2016-06-22 10:35 ` Aleksey Makarov 2016-06-22 10:35 ` Aleksey Makarov 2016-06-22 10:35 ` Aleksey Makarov 2016-06-22 12:18 ` Yury Norov 2016-06-22 12:18 ` Yury Norov 2016-06-22 12:18 ` Yury Norov 2016-06-22 14:08 ` Peter Hurley 2016-06-22 14:08 ` Peter Hurley 2016-06-22 20:45 ` Yury Norov 2016-06-22 20:45 ` Yury Norov 2016-06-22 20:45 ` Yury Norov 2016-07-11 14:40 ` Matthias Brugger 2016-07-11 14:40 ` Matthias Brugger 2016-07-11 15:50 ` Matthias Brugger 2016-07-11 15:50 ` Matthias Brugger 2016-05-27 13:41 ` [PATCH v8 0/4] ACPI: parse the SPCR table Aleksey Makarov 2016-05-27 13:41 ` Aleksey Makarov 2016-06-17 23:24 ` Timur Tabi 2016-06-17 23:24 ` Timur Tabi 2016-06-17 23:24 ` Timur Tabi 2016-06-20 16:04 ` Aleksey Makarov 2016-06-20 16:04 ` Aleksey Makarov 2016-06-20 16:04 ` Aleksey Makarov
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=fd9443e7-67f1-93e7-834b-445f9c29d876@linaro.org \ --to=aleksey.makarov@linaro.org \ --cc=ahs3@redhat.com \ --cc=andy.shevchenko@gmail.com \ --cc=cov@codeaurora.org \ --cc=graeme.gregory@linaro.org \ --cc=gregkh@linuxfoundation.org \ --cc=jslaby@suse.com \ --cc=leif.lindholm@linaro.org \ --cc=lenb@kernel.org \ --cc=linux-acpi@vger.kernel.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-serial@vger.kernel.org \ --cc=linux@arm.linux.org.uk \ --cc=linux@armlinux.org.uk \ --cc=lv.zheng@intel.com \ --cc=msalter@redhat.com \ --cc=peter@hurleysoftware.com \ --cc=rjw@rjwysocki.net \ --cc=wangkefeng.wang@huawei.com \ --cc=ynorov@caviumnetworks.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: linkBe 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.