All of lore.kernel.org
 help / color / mirror / Atom feed
From: Damien Le Moal <Damien.LeMoal@wdc.com>
To: Stephen Boyd <sboyd@kernel.org>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Rob Herring <robh+dt@kernel.org>,
	Serge Semin <fancer.lancer@gmail.com>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	"linux-clk@vger.kernel.org" <linux-clk@vger.kernel.org>,
	"linux-riscv@lists.infradead.org"
	<linux-riscv@lists.infradead.org>
Cc: Sean Anderson <seanga2@gmail.com>
Subject: Re: [PATCH 08/32] riscv: Fix kernel time_init()
Date: Fri, 13 Nov 2020 07:57:19 +0000	[thread overview]
Message-ID: <BL0PR04MB65144DA979067F3760D26B01E7E60@BL0PR04MB6514.namprd04.prod.outlook.com> (raw)
In-Reply-To: 160525398691.60232.17463845218341195554@swboyd.mtv.corp.google.com

On 2020/11/13 16:53, Stephen Boyd wrote:
> Quoting Damien Le Moal (2020-11-12 23:40:17)
>> On 2020/11/13 16:31, Stephen Boyd wrote:
>>> Quoting Damien Le Moal (2020-11-07 00:13:56)
>>>> If of_clk_init() is not called in time_init(), clock providers defined
>>>> in the system device tree are not initialized, resulting in failures for
>>>> other devices to initialize due to missing clocks.
>>>> Similarly to other architectures and to the default kernel time_init()
>>>> implementation, call of_clk_init() before executing timer_probe() in
>>>> time_init().
>>>
>>> Do you have timers that need clks to be running or queryable this early?
>>> This of_clk_init() call is made here when architectures need to call
>>> things like clk_get_rate() to figure out some clk frequency for their
>>> clockevent or clocksource. It is OK to have this call here, I'm just
>>> curious if this is actually necessary vs. delaying it to later.
>>>
>>
>> I think the clocks could be initialized later, but at least the CLINT will
>> depend on one of the clocks, same for the CPU frequency information. So need
>> checking.
>>
>> What this patch fixes is not the need for a super early initialization though,
>> it is that _nothing_ was being initialized without it: the clock driver probe
>> function was never called with the current riscv time_init() as is. I looked at
>> other architectures and at the default kernel time_init(), and mimicked what was
>> done, that is, added of_clk_init(). Is there any other way to make sure that the
>> needed clock drivers are initialized ?
>>
> 
> Yes it's fine. Just the commit text reads as "If of_clk_init() is not
> called in time_init() then nothing works" which is true but made me
> wonder if it was because it needed to be super early or not. The commit
> text could be a little clearer here.

OK. I will clarify the commit message in V2. Working on it now.

> We don't have any good solution for a fallback to call of_clk_init()
> somewhere later. I do wonder if we should generalize this though and
> call of_clk_init() from start_kernel() directly via some Kconfig that
> architectures select if they need it for their timer and then move it to
> an initcall if architectures don't select the config. Or throw it into
> the of_platform_default_populate_init() hook if the architecture doesn't
> need to call it early.

This last idea seems reasonable and probably the easiest. And I think it could
be done unconditionally even if the arch calls of_clk_init() early as the
already populated clock provider nodes would not be initialized again.


-- 
Damien Le Moal
Western Digital Research

WARNING: multiple messages have this Message-ID (diff)
From: Damien Le Moal <Damien.LeMoal@wdc.com>
To: Stephen Boyd <sboyd@kernel.org>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Rob Herring <robh+dt@kernel.org>,
	Serge Semin <fancer.lancer@gmail.com>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	"linux-clk@vger.kernel.org" <linux-clk@vger.kernel.org>,
	"linux-riscv@lists.infradead.org"
	<linux-riscv@lists.infradead.org>
Cc: Sean Anderson <seanga2@gmail.com>
Subject: Re: [PATCH 08/32] riscv: Fix kernel time_init()
Date: Fri, 13 Nov 2020 07:57:19 +0000	[thread overview]
Message-ID: <BL0PR04MB65144DA979067F3760D26B01E7E60@BL0PR04MB6514.namprd04.prod.outlook.com> (raw)
In-Reply-To: 160525398691.60232.17463845218341195554@swboyd.mtv.corp.google.com

On 2020/11/13 16:53, Stephen Boyd wrote:
> Quoting Damien Le Moal (2020-11-12 23:40:17)
>> On 2020/11/13 16:31, Stephen Boyd wrote:
>>> Quoting Damien Le Moal (2020-11-07 00:13:56)
>>>> If of_clk_init() is not called in time_init(), clock providers defined
>>>> in the system device tree are not initialized, resulting in failures for
>>>> other devices to initialize due to missing clocks.
>>>> Similarly to other architectures and to the default kernel time_init()
>>>> implementation, call of_clk_init() before executing timer_probe() in
>>>> time_init().
>>>
>>> Do you have timers that need clks to be running or queryable this early?
>>> This of_clk_init() call is made here when architectures need to call
>>> things like clk_get_rate() to figure out some clk frequency for their
>>> clockevent or clocksource. It is OK to have this call here, I'm just
>>> curious if this is actually necessary vs. delaying it to later.
>>>
>>
>> I think the clocks could be initialized later, but at least the CLINT will
>> depend on one of the clocks, same for the CPU frequency information. So need
>> checking.
>>
>> What this patch fixes is not the need for a super early initialization though,
>> it is that _nothing_ was being initialized without it: the clock driver probe
>> function was never called with the current riscv time_init() as is. I looked at
>> other architectures and at the default kernel time_init(), and mimicked what was
>> done, that is, added of_clk_init(). Is there any other way to make sure that the
>> needed clock drivers are initialized ?
>>
> 
> Yes it's fine. Just the commit text reads as "If of_clk_init() is not
> called in time_init() then nothing works" which is true but made me
> wonder if it was because it needed to be super early or not. The commit
> text could be a little clearer here.

OK. I will clarify the commit message in V2. Working on it now.

> We don't have any good solution for a fallback to call of_clk_init()
> somewhere later. I do wonder if we should generalize this though and
> call of_clk_init() from start_kernel() directly via some Kconfig that
> architectures select if they need it for their timer and then move it to
> an initcall if architectures don't select the config. Or throw it into
> the of_platform_default_populate_init() hook if the architecture doesn't
> need to call it early.

This last idea seems reasonable and probably the easiest. And I think it could
be done unconditionally even if the arch calls of_clk_init() early as the
already populated clock provider nodes would not be initialized again.


-- 
Damien Le Moal
Western Digital Research

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

  reply	other threads:[~2020-11-13  7:57 UTC|newest]

Thread overview: 297+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-07  8:13 [PATCH 00/32] RISC-V Kendryte K210 support improvments Damien Le Moal
2020-11-07  8:13 ` Damien Le Moal
2020-11-07  8:13 ` [PATCH 01/32] of: Fix property supplier parsing Damien Le Moal
2020-11-07  8:13   ` Damien Le Moal
2020-11-09 15:05   ` Serge Semin
2020-11-09 15:05     ` Serge Semin
2020-11-09 15:14   ` Andy Shevchenko
2020-11-09 15:14     ` Andy Shevchenko
2020-11-09 17:44     ` Serge Semin
2020-11-09 17:44       ` Serge Semin
2020-11-09 20:52       ` Rob Herring
2020-11-09 20:52         ` Rob Herring
2020-11-16  7:30       ` Damien Le Moal
2020-11-16  7:30         ` Damien Le Moal
2020-11-16 22:06         ` Serge Semin
2020-11-16 22:06           ` Serge Semin
2020-11-07  8:13 ` [PATCH 02/32] spi: dw: Add support for 32-bits ctrlr0 layout Damien Le Moal
2020-11-07  8:13   ` Damien Le Moal
2020-11-07 13:28   ` Sean Anderson
2020-11-07 13:28     ` Sean Anderson
2020-11-09 14:25   ` Serge Semin
2020-11-09 14:25     ` Serge Semin
2020-11-09 14:33     ` Sean Anderson
2020-11-09 14:33       ` Sean Anderson
2020-11-09 14:35       ` Sean Anderson
2020-11-09 14:35         ` Sean Anderson
2020-11-09 14:40       ` Andy Shevchenko
2020-11-09 14:40         ` Andy Shevchenko
2020-11-09 14:41         ` Andy Shevchenko
2020-11-09 14:41           ` Andy Shevchenko
2020-11-09 14:49           ` Sean Anderson
2020-11-09 14:49             ` Sean Anderson
2020-11-09 15:10             ` Andy Shevchenko
2020-11-09 15:10               ` Andy Shevchenko
2020-11-09 14:36     ` Andy Shevchenko
2020-11-09 14:36       ` Andy Shevchenko
2020-11-09 17:56       ` Serge Semin
2020-11-09 17:56         ` Serge Semin
2020-11-07  8:13 ` [PATCH 03/32] spi: dw: Fix driving MOSI low while recieving Damien Le Moal
2020-11-07  8:13   ` Damien Le Moal
2020-11-07 13:30   ` Sean Anderson
2020-11-07 13:30     ` Sean Anderson
2020-11-09 13:29   ` Mark Brown
2020-11-09 13:29     ` Mark Brown
2020-11-09 13:47     ` Sean Anderson
2020-11-09 13:47       ` Sean Anderson
2020-11-09 14:14       ` Mark Brown
2020-11-09 14:14         ` Mark Brown
2020-11-09 14:48         ` Serge Semin
2020-11-09 14:48           ` Serge Semin
2020-11-09 16:45           ` Mark Brown
2020-11-09 16:45             ` Mark Brown
2020-11-09 19:19         ` Serge Semin
2020-11-09 19:19           ` Serge Semin
2020-11-09 19:40           ` Sean Anderson
2020-11-09 19:40             ` Sean Anderson
2020-11-09 20:17             ` Serge Semin
2020-11-09 20:17               ` Serge Semin
2020-11-09 20:29               ` Mark Brown
2020-11-09 20:29                 ` Mark Brown
2020-11-09 20:20           ` Mark Brown
2020-11-09 20:20             ` Mark Brown
2020-11-09 21:05             ` Serge Semin
2020-11-09 21:05               ` Serge Semin
2020-11-10 13:43               ` Mark Brown
2020-11-10 13:43                 ` Mark Brown
2020-11-07  8:13 ` [PATCH 04/32] spi: dw: Introduce polling device tree property Damien Le Moal
2020-11-07  8:13   ` Damien Le Moal
2020-11-09 16:04   ` Mark Brown
2020-11-09 16:04     ` Mark Brown
2020-11-09 19:59   ` Serge Semin
2020-11-09 19:59     ` Serge Semin
2020-11-13  9:22     ` Damien Le Moal
2020-11-13  9:22       ` Damien Le Moal
2020-11-15 16:01       ` Serge Semin
2020-11-15 16:01         ` Serge Semin
2020-11-16  7:47         ` Damien Le Moal
2020-11-16  7:47           ` Damien Le Moal
2020-11-16 12:33           ` Mark Brown
2020-11-16 12:33             ` Mark Brown
2020-11-16 21:55           ` Serge Semin
2020-11-16 21:55             ` Serge Semin
2020-11-17 14:44             ` Damien Le Moal
2020-11-17 14:44               ` Damien Le Moal
2020-11-17 18:26               ` Serge Semin
2020-11-17 18:26                 ` Serge Semin
2020-11-18  4:41                 ` Damien Le Moal
2020-11-18  4:41                   ` Damien Le Moal
2020-11-18 15:16                   ` Serge Semin
2020-11-18 15:16                     ` Serge Semin
2020-11-19  5:12                     ` Damien Le Moal
2020-11-19  5:12                       ` Damien Le Moal
2020-11-19  8:51                       ` Serge Semin
2020-11-19  8:51                         ` Serge Semin
2020-11-19  8:57                         ` Damien Le Moal
2020-11-19  8:57                           ` Damien Le Moal
2020-11-07  8:13 ` [PATCH 05/32] spi: dw: Introduce DW_SPI_CAP_POLL_NODELAY Damien Le Moal
2020-11-07  8:13   ` Damien Le Moal
2020-11-09 14:03   ` Mark Brown
2020-11-09 14:03     ` Mark Brown
2020-11-09 20:45   ` Serge Semin
2020-11-09 20:45     ` Serge Semin
2020-11-07  8:13 ` [PATCH 06/32] spi: dw: Add support for the Kendryte K210 SoC Damien Le Moal
2020-11-07  8:13   ` Damien Le Moal
2020-11-07 13:31   ` Sean Anderson
2020-11-07 13:31     ` Sean Anderson
2020-11-07 13:42     ` Damien Le Moal
2020-11-07 13:42       ` Damien Le Moal
2020-11-07 13:52       ` Sean Anderson
2020-11-07 13:52         ` Sean Anderson
2020-11-09 14:15         ` Mark Brown
2020-11-09 14:15           ` Mark Brown
2020-11-13  8:00     ` Damien Le Moal
2020-11-13  8:00       ` Damien Le Moal
2020-11-09 21:21   ` Serge Semin
2020-11-09 21:21     ` Serge Semin
2020-11-09 21:39     ` Damien Le Moal
2020-11-09 21:39       ` Damien Le Moal
2020-11-09 21:55       ` Rob Herring
2020-11-09 21:55         ` Rob Herring
2020-11-09 22:00         ` Damien Le Moal
2020-11-09 22:00           ` Damien Le Moal
2020-11-09 23:07           ` Rob Herring
2020-11-09 23:07             ` Rob Herring
2020-11-10  0:35             ` Damien Le Moal
2020-11-10  0:35               ` Damien Le Moal
2020-11-07  8:13 ` [PATCH 07/32] dt-bindings: Update DW SPI device tree bindings Damien Le Moal
2020-11-07  8:13   ` Damien Le Moal
2020-11-07  8:13 ` [PATCH 08/32] riscv: Fix kernel time_init() Damien Le Moal
2020-11-07  8:13   ` Damien Le Moal
2020-11-12  7:21   ` Atish Patra
2020-11-12  7:21     ` Atish Patra
2020-11-13  7:31   ` Stephen Boyd
2020-11-13  7:31     ` Stephen Boyd
2020-11-13  7:40     ` Damien Le Moal
2020-11-13  7:40       ` Damien Le Moal
2020-11-13  7:53       ` Stephen Boyd
2020-11-13  7:53         ` Stephen Boyd
2020-11-13  7:57         ` Damien Le Moal [this message]
2020-11-13  7:57           ` Damien Le Moal
2020-11-13  8:11           ` Stephen Boyd
2020-11-13  8:11             ` Stephen Boyd
2020-11-13  8:23             ` Damien Le Moal
2020-11-13  8:23               ` Damien Le Moal
2020-11-16  7:06               ` Stephen Boyd
2020-11-16  7:06                 ` Stephen Boyd
2020-11-16  7:18                 ` Damien Le Moal
2020-11-16  7:18                   ` Damien Le Moal
2020-11-07  8:13 ` [PATCH 09/32] riscv: Fix SiFive gpio probe Damien Le Moal
2020-11-07  8:13   ` Damien Le Moal
2020-11-10 14:39   ` Linus Walleij
2020-11-10 14:39     ` Linus Walleij
2020-11-11  7:00     ` Damien Le Moal
2020-11-11  7:00       ` Damien Le Moal
2020-11-11  8:54       ` Linus Walleij
2020-11-11  8:54         ` Linus Walleij
2020-11-11  8:56         ` Damien Le Moal
2020-11-11  8:56           ` Damien Le Moal
2020-11-07  8:13 ` [PATCH 10/32] riscv: Fix sifive serial driver Damien Le Moal
2020-11-07  8:13   ` Damien Le Moal
2020-11-07  8:13 ` [PATCH 11/32] riscv: Enable interrupts during syscalls with M-Mode Damien Le Moal
2020-11-07  8:13   ` Damien Le Moal
2020-11-07  8:14 ` [PATCH 12/32] riscv: Automatically select sysctl config options Damien Le Moal
2020-11-07  8:14   ` Damien Le Moal
2020-11-07  8:14 ` [PATCH 13/32] riscv: Fix builtin DTB handling Damien Le Moal
2020-11-07  8:14   ` Damien Le Moal
2020-11-15  4:17   ` kernel test robot
2020-11-15  4:17     ` kernel test robot
2020-11-15  4:17     ` kernel test robot
2020-11-07  8:14 ` [PATCH 14/32] dt-bindings: Define all Kendryte K210 clock IDs Damien Le Moal
2020-11-07  8:14   ` Damien Le Moal
2020-11-07 13:33   ` Sean Anderson
2020-11-07 13:33     ` Sean Anderson
2020-11-07  8:14 ` [PATCH 15/32] dt-bindings: Define Kendryte K210 sysctl registers Damien Le Moal
2020-11-07  8:14   ` Damien Le Moal
2020-11-07 13:34   ` Sean Anderson
2020-11-07 13:34     ` Sean Anderson
2020-11-09 21:59   ` Rob Herring
2020-11-09 21:59     ` Rob Herring
2020-11-09 22:10     ` Sean Anderson
2020-11-09 22:10       ` Sean Anderson
2020-11-09 23:01       ` Rob Herring
2020-11-09 23:01         ` Rob Herring
2020-11-07  8:14 ` [PATCH 16/32] dt-bindings: Define Kendryte K210 pin functions Damien Le Moal
2020-11-07  8:14   ` Damien Le Moal
2020-11-07 13:38   ` Sean Anderson
2020-11-07 13:38     ` Sean Anderson
2020-11-07  8:14 ` [PATCH 17/32] dt-bindings: Define Kendryte K210 reset signals Damien Le Moal
2020-11-07  8:14   ` Damien Le Moal
2020-11-07 13:38   ` Sean Anderson
2020-11-07 13:38     ` Sean Anderson
2020-11-07  8:14 ` [PATCH 18/32] riscv: Add Kendryte K210 SoC clock driver Damien Le Moal
2020-11-07  8:14   ` Damien Le Moal
2020-11-07 13:48   ` Sean Anderson
2020-11-07 13:48     ` Sean Anderson
2020-11-13  8:14     ` Damien Le Moal
2020-11-13  8:14       ` Damien Le Moal
2020-11-07  8:14 ` [PATCH 19/32] riscv: Add Kendryte K210 SoC reset controller Damien Le Moal
2020-11-07  8:14   ` Damien Le Moal
2020-11-07 13:58   ` Sean Anderson
2020-11-07 13:58     ` Sean Anderson
2020-11-07  8:14 ` [PATCH 20/32] riscv: Add Kendryte K210 FPIOA pinctrl driver Damien Le Moal
2020-11-07  8:14   ` Damien Le Moal
2020-11-09 18:48   ` kernel test robot
2020-11-09 18:48     ` kernel test robot
2020-11-09 18:48     ` kernel test robot
2020-11-15  0:28   ` kernel test robot
2020-11-15  0:28     ` kernel test robot
2020-11-15  0:28     ` kernel test robot
2020-11-24  8:43   ` Linus Walleij
2020-11-24  8:43     ` Linus Walleij
2020-11-24  8:53     ` Damien Le Moal
2020-11-24  8:53       ` Damien Le Moal
2020-11-29 21:33       ` Linus Walleij
2020-11-29 21:33         ` Linus Walleij
2020-11-30  3:13         ` Damien Le Moal
2020-11-30  3:13           ` Damien Le Moal
2020-11-30  7:05           ` Serge Semin
2020-11-30  7:05             ` Serge Semin
2020-11-30  7:27             ` Damien Le Moal
2020-11-30  7:27               ` Damien Le Moal
2020-11-24  8:56     ` Damien Le Moal
2020-11-24  8:56       ` Damien Le Moal
2020-11-07  8:14 ` [PATCH 21/32] dt-bindings: Add Kendryte and Canaan vendor prefix Damien Le Moal
2020-11-07  8:14   ` Damien Le Moal
2020-11-07 14:03   ` Sean Anderson
2020-11-07 14:03     ` Sean Anderson
2020-11-13  8:17     ` Damien Le Moal
2020-11-13  8:17       ` Damien Le Moal
2020-11-09 22:01   ` Rob Herring
2020-11-09 22:01     ` Rob Herring
2020-11-09 22:04     ` Damien Le Moal
2020-11-09 22:04       ` Damien Le Moal
2020-11-07  8:14 ` [PATCH 22/32] dt-binding: Document kendryte,k210-sysctl bindings Damien Le Moal
2020-11-07  8:14   ` Damien Le Moal
2020-11-07 14:05   ` Sean Anderson
2020-11-07 14:05     ` Sean Anderson
2020-11-09 15:32   ` Rob Herring
2020-11-09 15:32     ` Rob Herring
2020-11-07  8:14 ` [PATCH 23/32] dt-binding: Document kendryte,k210-clk bindings Damien Le Moal
2020-11-07  8:14   ` Damien Le Moal
2020-11-07 14:05   ` Sean Anderson
2020-11-07 14:05     ` Sean Anderson
2020-11-09 21:58   ` Rob Herring
2020-11-09 21:58     ` Rob Herring
2020-11-07  8:14 ` [PATCH 24/32] dt-bindings: Document kendryte,k210-fpioa bindings Damien Le Moal
2020-11-07  8:14   ` Damien Le Moal
2020-11-07 14:06   ` Sean Anderson
2020-11-07 14:06     ` Sean Anderson
2020-11-09 15:32   ` Rob Herring
2020-11-09 15:32     ` Rob Herring
2020-11-09 15:36   ` Rob Herring
2020-11-09 15:36     ` Rob Herring
2020-11-09 15:45     ` Sean Anderson
2020-11-09 15:45       ` Sean Anderson
2020-11-11 14:32       ` Rob Herring
2020-11-11 14:32         ` Rob Herring
2020-11-11 15:06         ` Damien Le Moal
2020-11-11 15:06           ` Damien Le Moal
2020-11-12 11:03           ` Damien Le Moal
2020-11-12 11:03             ` Damien Le Moal
2020-11-19 10:57       ` Geert Uytterhoeven
2020-11-19 10:57         ` Geert Uytterhoeven
2020-11-19 11:22         ` Damien Le Moal
2020-11-19 11:22           ` Damien Le Moal
2020-11-07  8:14 ` [PATCH 25/32] dt-bindings: Document kendryte,k210-rst bindings Damien Le Moal
2020-11-07  8:14   ` Damien Le Moal
2020-11-07 14:07   ` Sean Anderson
2020-11-07 14:07     ` Sean Anderson
2020-11-09 15:37   ` Rob Herring
2020-11-09 15:37     ` Rob Herring
2020-11-09 15:41   ` Rob Herring
2020-11-09 15:41     ` Rob Herring
2020-11-07  8:14 ` [PATCH 26/32] riscv: Update Kendryte K210 device tree Damien Le Moal
2020-11-07  8:14   ` Damien Le Moal
2020-11-07 14:08   ` Sean Anderson
2020-11-07 14:08     ` Sean Anderson
2020-11-07  8:14 ` [PATCH 27/32] riscv: Add SiPeed MAIX BiT board " Damien Le Moal
2020-11-07  8:14   ` Damien Le Moal
2020-11-07 14:13   ` Sean Anderson
2020-11-07 14:13     ` Sean Anderson
2020-11-07  8:14 ` [PATCH 28/32] riscv: Add SiPeed MAIX DOCK " Damien Le Moal
2020-11-07  8:14   ` Damien Le Moal
2020-11-07  8:14 ` [PATCH 29/32] riscv: Add SiPeed MAIX GO " Damien Le Moal
2020-11-07  8:14   ` Damien Le Moal
2020-11-07  8:14 ` [PATCH 30/32] riscv: Add SiPeed MAIXDUINO " Damien Le Moal
2020-11-07  8:14   ` Damien Le Moal
2020-11-07 14:14   ` Sean Anderson
2020-11-07 14:14     ` Sean Anderson
2020-11-07  8:14 ` [PATCH 31/32] riscv: Add Kendryte KD233 " Damien Le Moal
2020-11-07  8:14   ` Damien Le Moal
2020-11-07  8:14 ` [PATCH 32/32] riscv: Update Kendryte K210 defconfig Damien Le Moal
2020-11-07  8:14   ` Damien Le Moal
2020-11-09 12:51 ` [PATCH 00/32] RISC-V Kendryte K210 support improvments Mark Brown
2020-11-09 12:51   ` Mark Brown
2020-11-09 12:55   ` Damien Le Moal
2020-11-09 12:55     ` Damien Le Moal

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=BL0PR04MB65144DA979067F3760D26B01E7E60@BL0PR04MB6514.namprd04.prod.outlook.com \
    --to=damien.lemoal@wdc.com \
    --cc=devicetree@vger.kernel.org \
    --cc=fancer.lancer@gmail.com \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-riscv@lists.infradead.org \
    --cc=palmer@dabbelt.com \
    --cc=robh+dt@kernel.org \
    --cc=sboyd@kernel.org \
    --cc=seanga2@gmail.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.