All of lore.kernel.org
 help / color / mirror / Atom feed
From: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
To: Yu Tu <yu.tu@amlogic.com>
Cc: linux-serial@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linux-amlogic@lists.infradead.org, linux-kernel@vger.kernel.org,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Jiri Slaby <jirislaby@kernel.org>,
	Neil Armstrong <narmstrong@baylibre.com>,
	Vyacheslav <adeep@lexina.in>, Kevin Hilman <khilman@baylibre.com>,
	Jerome Brunet <jbrunet@baylibre.com>
Subject: Re: [PATCH V3 4/6] tty: serial: meson: The UART baud rate calculation is described using the common clock code. Also added S4 chip uart Compatible.
Date: Fri, 31 Dec 2021 00:13:36 +0100	[thread overview]
Message-ID: <CAFBinCCL-QaeSRCLzfyNXcRQZ7YC1D85rP2y4OGkAjCmQEqGgQ@mail.gmail.com> (raw)
In-Reply-To: <20211230102110.3861-5-yu.tu@amlogic.com>

On Thu, Dec 30, 2021 at 11:21 AM Yu Tu <yu.tu@amlogic.com> wrote:
[...]
> @@ -270,14 +284,11 @@ static void meson_uart_reset(struct uart_port *port)
>  static int meson_uart_startup(struct uart_port *port)
>  {
>         u32 val;
> -       int ret = 0;
> +       int ret;
>
> -       val = readl(port->membase + AML_UART_CONTROL);
> -       val |= AML_UART_CLEAR_ERR;
> -       writel(val, port->membase + AML_UART_CONTROL);
> -       val &= ~AML_UART_CLEAR_ERR;
> -       writel(val, port->membase + AML_UART_CONTROL);
> +       meson_uart_reset(port);
I suggest splitting this into a separate patch. In general I think
it's a good idea to re-use meson_uart_reset here if possible.
However, if during testing it turns out that this doesn't work then we
can revert this single patch which updates meson_uart_startup() only -
instead of reverting the whole transition to the common clock
framework.

[...]
>  static int meson_uart_request_port(struct uart_port *port)
>  {
> +       struct meson_uart_data *private_data = port->private_data;
> +       int ret;
> +
> +       ret = clk_prepare_enable(private_data->pclk);
> +       if (ret)
> +               return ret;
> +
> +       ret = clk_prepare_enable(private_data->baud_clk);
> +       if (ret) {
> +               clk_disable_unprepare(private_data->pclk);
> +               return ret;
> +       }
This code is from my original suggestion - and I had a doubt there
which I forgot to add as a comment originally:
Can you confirm that accessing the UART controller registers works
even when "pclk" is turned off?
I am asking this because the common clock framework can access the
clocks at any time.
And I have seen SoCs which would hang when trying to access a module's
registers while the module's pclk is turned off.

[...]
>         port->fifosize = 64;
commit 27d44e05d7b85d ("tty: serial: meson: retrieve port FIFO size
from DT") [0] from May 2021 has changed this line to:
  port->fifosize = fifosize;
So your patch currently does not apply to linux-next (or even Linus'
mainline tree).

[...]
>  static const struct of_device_id meson_uart_dt_match[] = {
> -       { .compatible = "amlogic,meson6-uart" },
> -       { .compatible = "amlogic,meson8-uart" },
> -       { .compatible = "amlogic,meson8b-uart" },
> -       { .compatible = "amlogic,meson-gx-uart" },
> +       {
> +               .compatible = "amlogic,meson6-uart",
> +               .data = (void *)false,
> +       },
> +       {
> +               .compatible = "amlogic,meson8-uart",
> +               .data = (void *)false,
> +       },
> +       {
> +               .compatible = "amlogic,meson8b-uart",
> +               .data = (void *)false,
> +       },
> +       {
> +               .compatible = "amlogic,meson-gxbb-uart",
> +               .data = (void *)false,
> +       },
> +       {
> +               .compatible = "amlogic,meson-gxl-uart",
> +               .data = (void *)true,
> +       },
> +       {
> +               .compatible = "amlogic,meson-g12a-uart",
> +               .data = (void *)true,
> +       },
> +       {
> +               .compatible = "amlogic,meson-s4-uart",
> +               .data = (void *)true,
> +       },
> +       /*
> +        * deprecated, don't use anymore because it doesn't differentiate
> +        * between GXBB and GXL which have different revisions of the UART IP.
> +        */
> +       {
> +               .compatible = "amlogic,meson-gx-uart",
> +               .data = (void *)false,
> +       },
For this change I think it's also best to split it into separate
changes, similar to the dt-bindings:
1) deprecate and replace "amlogic,meson-gx-uart"
2) another one to add the S4 compatible string
3) and a third one with the big common clock framework change (adding
the .data attributes)

This is about the "Separate each logical change into a separate patch"
rule from the Linux kernel patch submission guide [1]
Also I hope that it will make it (at least a bit) easier for others to
also review this patch.


Best regards,
Martin


[0] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/drivers/tty/serial/meson_uart.c?id=27d44e05d7b85d9d4cfe0a3c0663ea49752ece93
[1] https://www.kernel.org/doc/html/v4.17/process/submitting-patches.html#separate-your-changes

WARNING: multiple messages have this Message-ID (diff)
From: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
To: Yu Tu <yu.tu@amlogic.com>
Cc: linux-serial@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	 linux-amlogic@lists.infradead.org, linux-kernel@vger.kernel.org,
	 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Jiri Slaby <jirislaby@kernel.org>,
	 Neil Armstrong <narmstrong@baylibre.com>,
	Vyacheslav <adeep@lexina.in>,
	 Kevin Hilman <khilman@baylibre.com>,
	Jerome Brunet <jbrunet@baylibre.com>
Subject: Re: [PATCH V3 4/6] tty: serial: meson: The UART baud rate calculation is described using the common clock code. Also added S4 chip uart Compatible.
Date: Fri, 31 Dec 2021 00:13:36 +0100	[thread overview]
Message-ID: <CAFBinCCL-QaeSRCLzfyNXcRQZ7YC1D85rP2y4OGkAjCmQEqGgQ@mail.gmail.com> (raw)
In-Reply-To: <20211230102110.3861-5-yu.tu@amlogic.com>

On Thu, Dec 30, 2021 at 11:21 AM Yu Tu <yu.tu@amlogic.com> wrote:
[...]
> @@ -270,14 +284,11 @@ static void meson_uart_reset(struct uart_port *port)
>  static int meson_uart_startup(struct uart_port *port)
>  {
>         u32 val;
> -       int ret = 0;
> +       int ret;
>
> -       val = readl(port->membase + AML_UART_CONTROL);
> -       val |= AML_UART_CLEAR_ERR;
> -       writel(val, port->membase + AML_UART_CONTROL);
> -       val &= ~AML_UART_CLEAR_ERR;
> -       writel(val, port->membase + AML_UART_CONTROL);
> +       meson_uart_reset(port);
I suggest splitting this into a separate patch. In general I think
it's a good idea to re-use meson_uart_reset here if possible.
However, if during testing it turns out that this doesn't work then we
can revert this single patch which updates meson_uart_startup() only -
instead of reverting the whole transition to the common clock
framework.

[...]
>  static int meson_uart_request_port(struct uart_port *port)
>  {
> +       struct meson_uart_data *private_data = port->private_data;
> +       int ret;
> +
> +       ret = clk_prepare_enable(private_data->pclk);
> +       if (ret)
> +               return ret;
> +
> +       ret = clk_prepare_enable(private_data->baud_clk);
> +       if (ret) {
> +               clk_disable_unprepare(private_data->pclk);
> +               return ret;
> +       }
This code is from my original suggestion - and I had a doubt there
which I forgot to add as a comment originally:
Can you confirm that accessing the UART controller registers works
even when "pclk" is turned off?
I am asking this because the common clock framework can access the
clocks at any time.
And I have seen SoCs which would hang when trying to access a module's
registers while the module's pclk is turned off.

[...]
>         port->fifosize = 64;
commit 27d44e05d7b85d ("tty: serial: meson: retrieve port FIFO size
from DT") [0] from May 2021 has changed this line to:
  port->fifosize = fifosize;
So your patch currently does not apply to linux-next (or even Linus'
mainline tree).

[...]
>  static const struct of_device_id meson_uart_dt_match[] = {
> -       { .compatible = "amlogic,meson6-uart" },
> -       { .compatible = "amlogic,meson8-uart" },
> -       { .compatible = "amlogic,meson8b-uart" },
> -       { .compatible = "amlogic,meson-gx-uart" },
> +       {
> +               .compatible = "amlogic,meson6-uart",
> +               .data = (void *)false,
> +       },
> +       {
> +               .compatible = "amlogic,meson8-uart",
> +               .data = (void *)false,
> +       },
> +       {
> +               .compatible = "amlogic,meson8b-uart",
> +               .data = (void *)false,
> +       },
> +       {
> +               .compatible = "amlogic,meson-gxbb-uart",
> +               .data = (void *)false,
> +       },
> +       {
> +               .compatible = "amlogic,meson-gxl-uart",
> +               .data = (void *)true,
> +       },
> +       {
> +               .compatible = "amlogic,meson-g12a-uart",
> +               .data = (void *)true,
> +       },
> +       {
> +               .compatible = "amlogic,meson-s4-uart",
> +               .data = (void *)true,
> +       },
> +       /*
> +        * deprecated, don't use anymore because it doesn't differentiate
> +        * between GXBB and GXL which have different revisions of the UART IP.
> +        */
> +       {
> +               .compatible = "amlogic,meson-gx-uart",
> +               .data = (void *)false,
> +       },
For this change I think it's also best to split it into separate
changes, similar to the dt-bindings:
1) deprecate and replace "amlogic,meson-gx-uart"
2) another one to add the S4 compatible string
3) and a third one with the big common clock framework change (adding
the .data attributes)

This is about the "Separate each logical change into a separate patch"
rule from the Linux kernel patch submission guide [1]
Also I hope that it will make it (at least a bit) easier for others to
also review this patch.


Best regards,
Martin


[0] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/drivers/tty/serial/meson_uart.c?id=27d44e05d7b85d9d4cfe0a3c0663ea49752ece93
[1] https://www.kernel.org/doc/html/v4.17/process/submitting-patches.html#separate-your-changes

_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic

WARNING: multiple messages have this Message-ID (diff)
From: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
To: Yu Tu <yu.tu@amlogic.com>
Cc: linux-serial@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	 linux-amlogic@lists.infradead.org, linux-kernel@vger.kernel.org,
	 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Jiri Slaby <jirislaby@kernel.org>,
	 Neil Armstrong <narmstrong@baylibre.com>,
	Vyacheslav <adeep@lexina.in>,
	 Kevin Hilman <khilman@baylibre.com>,
	Jerome Brunet <jbrunet@baylibre.com>
Subject: Re: [PATCH V3 4/6] tty: serial: meson: The UART baud rate calculation is described using the common clock code. Also added S4 chip uart Compatible.
Date: Fri, 31 Dec 2021 00:13:36 +0100	[thread overview]
Message-ID: <CAFBinCCL-QaeSRCLzfyNXcRQZ7YC1D85rP2y4OGkAjCmQEqGgQ@mail.gmail.com> (raw)
In-Reply-To: <20211230102110.3861-5-yu.tu@amlogic.com>

On Thu, Dec 30, 2021 at 11:21 AM Yu Tu <yu.tu@amlogic.com> wrote:
[...]
> @@ -270,14 +284,11 @@ static void meson_uart_reset(struct uart_port *port)
>  static int meson_uart_startup(struct uart_port *port)
>  {
>         u32 val;
> -       int ret = 0;
> +       int ret;
>
> -       val = readl(port->membase + AML_UART_CONTROL);
> -       val |= AML_UART_CLEAR_ERR;
> -       writel(val, port->membase + AML_UART_CONTROL);
> -       val &= ~AML_UART_CLEAR_ERR;
> -       writel(val, port->membase + AML_UART_CONTROL);
> +       meson_uart_reset(port);
I suggest splitting this into a separate patch. In general I think
it's a good idea to re-use meson_uart_reset here if possible.
However, if during testing it turns out that this doesn't work then we
can revert this single patch which updates meson_uart_startup() only -
instead of reverting the whole transition to the common clock
framework.

[...]
>  static int meson_uart_request_port(struct uart_port *port)
>  {
> +       struct meson_uart_data *private_data = port->private_data;
> +       int ret;
> +
> +       ret = clk_prepare_enable(private_data->pclk);
> +       if (ret)
> +               return ret;
> +
> +       ret = clk_prepare_enable(private_data->baud_clk);
> +       if (ret) {
> +               clk_disable_unprepare(private_data->pclk);
> +               return ret;
> +       }
This code is from my original suggestion - and I had a doubt there
which I forgot to add as a comment originally:
Can you confirm that accessing the UART controller registers works
even when "pclk" is turned off?
I am asking this because the common clock framework can access the
clocks at any time.
And I have seen SoCs which would hang when trying to access a module's
registers while the module's pclk is turned off.

[...]
>         port->fifosize = 64;
commit 27d44e05d7b85d ("tty: serial: meson: retrieve port FIFO size
from DT") [0] from May 2021 has changed this line to:
  port->fifosize = fifosize;
So your patch currently does not apply to linux-next (or even Linus'
mainline tree).

[...]
>  static const struct of_device_id meson_uart_dt_match[] = {
> -       { .compatible = "amlogic,meson6-uart" },
> -       { .compatible = "amlogic,meson8-uart" },
> -       { .compatible = "amlogic,meson8b-uart" },
> -       { .compatible = "amlogic,meson-gx-uart" },
> +       {
> +               .compatible = "amlogic,meson6-uart",
> +               .data = (void *)false,
> +       },
> +       {
> +               .compatible = "amlogic,meson8-uart",
> +               .data = (void *)false,
> +       },
> +       {
> +               .compatible = "amlogic,meson8b-uart",
> +               .data = (void *)false,
> +       },
> +       {
> +               .compatible = "amlogic,meson-gxbb-uart",
> +               .data = (void *)false,
> +       },
> +       {
> +               .compatible = "amlogic,meson-gxl-uart",
> +               .data = (void *)true,
> +       },
> +       {
> +               .compatible = "amlogic,meson-g12a-uart",
> +               .data = (void *)true,
> +       },
> +       {
> +               .compatible = "amlogic,meson-s4-uart",
> +               .data = (void *)true,
> +       },
> +       /*
> +        * deprecated, don't use anymore because it doesn't differentiate
> +        * between GXBB and GXL which have different revisions of the UART IP.
> +        */
> +       {
> +               .compatible = "amlogic,meson-gx-uart",
> +               .data = (void *)false,
> +       },
For this change I think it's also best to split it into separate
changes, similar to the dt-bindings:
1) deprecate and replace "amlogic,meson-gx-uart"
2) another one to add the S4 compatible string
3) and a third one with the big common clock framework change (adding
the .data attributes)

This is about the "Separate each logical change into a separate patch"
rule from the Linux kernel patch submission guide [1]
Also I hope that it will make it (at least a bit) easier for others to
also review this patch.


Best regards,
Martin


[0] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/drivers/tty/serial/meson_uart.c?id=27d44e05d7b85d9d4cfe0a3c0663ea49752ece93
[1] https://www.kernel.org/doc/html/v4.17/process/submitting-patches.html#separate-your-changes

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  parent reply	other threads:[~2021-12-30 23:13 UTC|newest]

Thread overview: 117+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-30 10:21 [PATCH V3 0/6] the UART driver compatible with the Amlogic Meson Yu Tu
2021-12-30 10:21 ` Yu Tu
2021-12-30 10:21 ` Yu Tu
2021-12-30 10:21 ` [PATCH V3 1/6] tty: serial: meson: Drop the legacy compatible strings and clock code Yu Tu
2021-12-30 10:21   ` Yu Tu
2021-12-30 10:21   ` Yu Tu
2021-12-30 22:22   ` Martin Blumenstingl
2021-12-30 22:22     ` Martin Blumenstingl
2021-12-30 22:22     ` Martin Blumenstingl
2021-12-31 10:27     ` Yu Tu
2021-12-31 10:27       ` Yu Tu
2021-12-31 10:27       ` Yu Tu
2021-12-31 15:35       ` Martin Blumenstingl
2021-12-31 15:35         ` Martin Blumenstingl
2021-12-31 15:35         ` Martin Blumenstingl
2022-01-03 14:59         ` Neil Armstrong
2022-01-03 14:59           ` Neil Armstrong
2022-01-03 14:59           ` Neil Armstrong
2022-01-03 15:19           ` Greg Kroah-Hartman
2022-01-03 15:19             ` Greg Kroah-Hartman
2022-01-03 15:19             ` Greg Kroah-Hartman
2022-01-03 15:29             ` Neil Armstrong
2022-01-03 15:29               ` Neil Armstrong
2022-01-03 15:29               ` Neil Armstrong
2022-01-03 16:29               ` Greg Kroah-Hartman
2022-01-03 16:29                 ` Greg Kroah-Hartman
2022-01-03 16:29                 ` Greg Kroah-Hartman
2022-01-03 16:35                 ` Neil Armstrong
2022-01-03 16:35                   ` Neil Armstrong
2022-01-03 16:35                   ` Neil Armstrong
2021-12-30 10:21 ` [PATCH V3 2/6] tty: serial: meson: Request the register region in meson_uart_probe() Yu Tu
2021-12-30 10:21   ` Yu Tu
2021-12-30 10:21   ` Yu Tu
2021-12-30 12:29   ` Greg Kroah-Hartman
2021-12-30 12:29     ` Greg Kroah-Hartman
2021-12-30 12:29     ` Greg Kroah-Hartman
2021-12-30 22:28     ` Martin Blumenstingl
2021-12-30 22:28       ` Martin Blumenstingl
2021-12-30 22:28       ` Martin Blumenstingl
2021-12-30 10:21 ` [PATCH V3 3/6] dt-bindings: serial: meson: Support S4 SoC uart. Also Drop compatible = amlogic,meson-gx-uart Yu Tu
2021-12-30 10:21   ` [PATCH V3 3/6] dt-bindings: serial: meson: Support S4 SoC uart. Also Drop compatible = amlogic, meson-gx-uart Yu Tu
2021-12-30 10:21   ` Yu Tu
2021-12-30 12:28   ` [PATCH V3 3/6] dt-bindings: serial: meson: Support S4 SoC uart. Also Drop compatible = amlogic,meson-gx-uart Greg Kroah-Hartman
2021-12-30 12:28     ` Greg Kroah-Hartman
2021-12-30 12:28     ` Greg Kroah-Hartman
2021-12-31 10:18     ` Yu Tu
2021-12-31 10:18       ` Yu Tu
2021-12-31 10:18       ` Yu Tu
2021-12-30 22:34   ` Martin Blumenstingl
2021-12-30 22:34     ` Martin Blumenstingl
2021-12-30 22:34     ` Martin Blumenstingl
2021-12-31 10:35     ` Yu Tu
2021-12-31 10:35       ` Yu Tu
2021-12-31 10:35       ` Yu Tu
2021-12-30 10:21 ` [PATCH V3 4/6] tty: serial: meson: The UART baud rate calculation is described using the common clock code. Also added S4 chip uart Compatible Yu Tu
2021-12-30 10:21   ` Yu Tu
2021-12-30 10:21   ` Yu Tu
2021-12-30 12:27   ` Greg Kroah-Hartman
2021-12-30 12:27     ` Greg Kroah-Hartman
2021-12-30 12:27     ` Greg Kroah-Hartman
2021-12-31 10:23     ` Yu Tu
2021-12-31 10:23       ` Yu Tu
2021-12-31 10:23       ` Yu Tu
2021-12-30 23:13   ` Martin Blumenstingl [this message]
2021-12-30 23:13     ` Martin Blumenstingl
2021-12-30 23:13     ` Martin Blumenstingl
2021-12-31 11:24     ` Yu Tu
2021-12-31 11:24       ` Yu Tu
2021-12-31 11:24       ` Yu Tu
2021-12-31 15:32       ` Martin Blumenstingl
2021-12-31 15:32         ` Martin Blumenstingl
2021-12-31 15:32         ` Martin Blumenstingl
2022-01-01 13:30         ` Yu Tu
2022-01-01 13:30           ` Yu Tu
2022-01-01 13:30           ` Yu Tu
2022-01-02 19:36           ` Martin Blumenstingl
2022-01-02 19:36             ` Martin Blumenstingl
2022-01-02 19:36             ` Martin Blumenstingl
2022-01-04  8:20             ` Yu Tu
2022-01-04  8:20               ` Yu Tu
2022-01-04  8:20               ` Yu Tu
2022-01-03 13:50           ` Jerome Brunet
2022-01-03 13:50             ` Jerome Brunet
2022-01-03 13:50             ` Jerome Brunet
2022-01-03 12:40   ` Jerome Brunet
2022-01-03 12:40     ` Jerome Brunet
2022-01-03 12:40     ` Jerome Brunet
2022-01-04  9:57     ` Yu Tu
2022-01-04  9:57       ` Yu Tu
2022-01-04  9:57       ` Yu Tu
2022-01-04 10:36       ` Jerome Brunet
2022-01-04 10:36         ` Jerome Brunet
2022-01-04 10:36         ` Jerome Brunet
2022-01-04 14:35         ` Yu Tu
2022-01-04 14:35           ` Yu Tu
2022-01-04 14:35           ` Yu Tu
2022-01-05  5:53           ` Yu Tu
2022-01-05  5:53             ` Yu Tu
2022-01-05  5:53             ` Yu Tu
2021-12-30 10:21 ` [PATCH V3 5/6] tty: serial: meson: meson_uart_shutdown omit clear AML_UART_TX_EN bit Yu Tu
2021-12-30 10:21   ` Yu Tu
2021-12-30 10:21   ` Yu Tu
2021-12-30 22:44   ` Martin Blumenstingl
2021-12-30 22:44     ` Martin Blumenstingl
2021-12-30 22:44     ` Martin Blumenstingl
2021-12-31 10:42     ` Yu Tu
2021-12-31 10:42       ` Yu Tu
2021-12-31 10:42       ` Yu Tu
2021-12-30 10:21 ` [PATCH V3 6/6] tty: serial: meson: Change request_irq to devm_request_irq and move devm_request_irq to meson_uart_probe() Yu Tu
2021-12-30 10:21   ` Yu Tu
2021-12-30 10:21   ` Yu Tu
2021-12-30 22:41   ` Martin Blumenstingl
2021-12-30 22:41     ` Martin Blumenstingl
2021-12-30 22:41     ` Martin Blumenstingl
2021-12-31 10:37     ` Yu Tu
2021-12-31 10:37       ` Yu Tu
2021-12-31 10:37       ` Yu Tu

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=CAFBinCCL-QaeSRCLzfyNXcRQZ7YC1D85rP2y4OGkAjCmQEqGgQ@mail.gmail.com \
    --to=martin.blumenstingl@googlemail.com \
    --cc=adeep@lexina.in \
    --cc=gregkh@linuxfoundation.org \
    --cc=jbrunet@baylibre.com \
    --cc=jirislaby@kernel.org \
    --cc=khilman@baylibre.com \
    --cc=linux-amlogic@lists.infradead.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-serial@vger.kernel.org \
    --cc=narmstrong@baylibre.com \
    --cc=yu.tu@amlogic.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.