From: Yu Tu <yu.tu@amlogic.com>
To: Martin Blumenstingl <martin.blumenstingl@googlemail.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 19:24:37 +0800 [thread overview]
Message-ID: <3e1e40aa-7865-0f7a-5772-e2ad96c8141d@amlogic.com> (raw)
In-Reply-To: <CAFBinCCL-QaeSRCLzfyNXcRQZ7YC1D85rP2y4OGkAjCmQEqGgQ@mail.gmail.com>
On 2021/12/31 7:13, Martin Blumenstingl wrote:
> [ EXTERNAL EMAIL ]
>
> 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.
>
I approve of your suggestion. I will make the next patch.
> [...]
>> 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.
On all meson platforms, the default pclk for all UART is turned on
during the u-boot phase. When registering uart pclk in the kernel phase,
the CLK_IGNORE_UNUSED flag is added. So the real shutdown is when the
standby goes down, the parent clk shuts down.
.
>
> [...]
>> 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).
>
So do I need to wait for [0] patch merged before I can continue to make
changes ?
What can I do before?
> [...]
>> 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.
>
I quite agree with your suggestion. I'll do as you suggest.
>
> 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
next prev parent reply other threads:[~2021-12-31 11:25 UTC|newest]
Thread overview: 39+ 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 ` [PATCH V3 1/6] tty: serial: meson: Drop the legacy compatible strings and clock code Yu Tu
2021-12-30 22:22 ` Martin Blumenstingl
2021-12-31 10:27 ` Yu Tu
2021-12-31 15:35 ` Martin Blumenstingl
2022-01-03 14:59 ` Neil Armstrong
2022-01-03 15:19 ` Greg Kroah-Hartman
2022-01-03 15:29 ` Neil Armstrong
2022-01-03 16:29 ` Greg Kroah-Hartman
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 12:29 ` Greg Kroah-Hartman
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 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-31 10:18 ` Yu Tu
2021-12-30 22:34 ` Martin Blumenstingl
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 12:27 ` Greg Kroah-Hartman
2021-12-31 10:23 ` Yu Tu
2021-12-30 23:13 ` Martin Blumenstingl
2021-12-31 11:24 ` Yu Tu [this message]
2021-12-31 15:32 ` Martin Blumenstingl
2022-01-01 13:30 ` Yu Tu
2022-01-02 19:36 ` Martin Blumenstingl
2022-01-04 8:20 ` Yu Tu
2022-01-03 13:50 ` Jerome Brunet
2022-01-03 12:40 ` Jerome Brunet
2022-01-04 9:57 ` Yu Tu
2022-01-04 10:36 ` Jerome Brunet
2022-01-04 14:35 ` 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 22:44 ` Martin Blumenstingl
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 22:41 ` Martin Blumenstingl
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=3e1e40aa-7865-0f7a-5772-e2ad96c8141d@amlogic.com \
--to=yu.tu@amlogic.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=martin.blumenstingl@googlemail.com \
--cc=narmstrong@baylibre.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®