From: Jae Hyun Yoo <jae.hyun.yoo@linux.intel.com>
To: Joel Stanley <joel@jms.id.au>,
ChiaWei Wang <chiawei_wang@aspeedtech.com>
Cc: "jae.hyun.yoo@intel.com" <jae.hyun.yoo@intel.com>,
Rob Herring <robh+dt@kernel.org>, Corey Minyard <minyard@acm.org>,
Andrew Jeffery <andrew@aj.id.au>, Cedric Le Goater <clg@kaod.org>,
Haiyue Wang <haiyue.wang@linux.intel.com>,
"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
"linux-aspeed@lists.ozlabs.org" <linux-aspeed@lists.ozlabs.org>,
"openipmi-developer@lists.sourceforge.net"
<openipmi-developer@lists.sourceforge.net>,
Ryan Chen <ryan_chen@aspeedtech.com>,
Jenmin Yuan <jenmin_yuan@aspeedtech.com>
Subject: Re: [PATCH -next 4/4] ipmi: kcs_bmc_aspeed: add clock control logic
Date: Tue, 2 Nov 2021 09:35:31 -0700 [thread overview]
Message-ID: <edaeb540-aa31-d143-4320-cb2a73f0070f@linux.intel.com> (raw)
In-Reply-To: <CACPK8XesLdb+Cbi3ZYrOahRHbXQi3L=cQXax=RV2=PrjiPQBew@mail.gmail.com>
On 11/1/2021 8:28 PM, Joel Stanley wrote:
> On Tue, 2 Nov 2021 at 03:16, ChiaWei Wang <chiawei_wang@aspeedtech.com> wrote:
>>
>> Hi Jae,
>>
>>> From: linux-arm-kernel <linux-arm-kernel-bounces@lists.infradead.org> On
>>>
>>> From: Jae Hyun Yoo <jae.hyun.yoo@linux.intel.com>
>>>
>>> If LPC KCS driver is registered ahead of lpc-ctrl module, LPC KCS block will be
>>> enabled without heart beating of LCLK until lpc-ctrl enables the LCLK. This
>>> issue causes improper handling on host interrupts when the host sends
>>> interrupts in that time frame.
>>> Then kernel eventually forcibly disables the interrupt with dumping stack and
>>> printing a 'nobody cared this irq' message out.
>>>
>>> To prevent this issue, all LPC sub drivers should enable LCLK individually so this
>>> patch adds clock control logic into the LPC KCS driver.
>>
>> Have all LPC sub drivers could result in entire LPC block down if any of them disables the clock (e.g. driver unload).
>> The LPC devices such as SIO can be used before kernel booting, even without any BMC firmware.
>> Thereby, we recommend to make LCLK critical or guarded by protected clock instead of having all LPC sub drivers hold the LCLK control.
>>
>> The previous discussion for your reference:
>> https://lkml.org/lkml/2020/9/28/153
>
> Please read the entire thread. The conclusion:
>
> https://lore.kernel.org/all/CACPK8XdBmkhZ8mcSFmDAFV8k7Qj7ajBL8TVKfK8c+5aneUMHZw@mail.gmail.com/
>
> That is, for the devices that have a driver loaded can enable the
> clock. When they are unloaded, they will reduce the reference count
> until the last driver is unloaded. eg:
>
> https://elixir.bootlin.com/linux/latest/source/drivers/clk/clk.c#L945
>
> There was another fork to the thread, where we suggested that a
> protected clocks binding could be added:
>
> https://lore.kernel.org/all/160269577311.884498.8429245140509326318@swboyd.mtv.corp.google.com/
>
> If you wish to use this mechanism for eg. SIO clocks, then I encourage
> Aspeed to submit a patch to do that.
We are revisiting the aged discussion. Thanks for bringing it back.
I agree with Joel that a clock should be enabled only on systems that
need the clock actually so it should be configurable by a device driver
or through device tree setting, not by the static setting in
clk-ast2600.c code. So that's the reason why I stopped upstreaming below
change for making BCLK as a critical clock.
https://www.spinics.net/lists/linux-clk/msg44836.html
Instead, I submitted these two changes to make it configurable through
device tree setting.
https://lists.ozlabs.org/pipermail/linux-aspeed/2020-January/003394.html
https://lists.ozlabs.org/pipermail/linux-aspeed/2020-January/003339.html
But these were not accepted too.
And recently, Samuel introduced a better and more generic way.
https://lore.kernel.org/all/20200903040015.5627-2-samuel@sholland.org/
But it's not accepted yet either.
Chiawei,
Please refine the mechanism and submit a change to make SIO clocks
configurable through device tree setting. I believe that we can keep
this patch series even with the change, or it can be modified and
adjusted if needed after the SIO clocks fix is accepted.
Thanks,
Jae
next prev parent reply other threads:[~2021-11-02 16:46 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-11-01 23:37 [PATCH -next 0/4] Add LCLK control into Aspeed LPC sub drivers jae.hyun.yoo
2021-11-01 23:36 ` Joel Stanley
2021-11-02 12:22 ` Corey Minyard
2021-11-02 16:38 ` Jae Hyun Yoo
2021-11-03 0:04 ` Zev Weiss
2021-11-03 0:17 ` Jae Hyun Yoo
2021-11-03 0:30 ` Zev Weiss
2021-11-03 0:54 ` Jae Hyun Yoo
2021-11-03 1:09 ` Zev Weiss
2021-11-03 15:56 ` Jae Hyun Yoo
2021-11-04 1:48 ` Zev Weiss
2021-11-04 16:09 ` Jae Hyun Yoo
2021-11-01 23:37 ` [PATCH -next 1/4] ARM: dts: aspeed: add LCLK setting into LPC IBT node jae.hyun.yoo
2021-11-01 23:33 ` Joel Stanley
2021-11-01 23:48 ` Jae Hyun Yoo
2021-11-01 23:52 ` Joel Stanley
2021-11-01 23:59 ` Jae Hyun Yoo
2021-11-02 22:21 ` Andrew Jeffery
2021-11-01 23:37 ` [PATCH -next 2/4] ipmi: bt: add clock control logic jae.hyun.yoo
2021-11-01 23:32 ` Joel Stanley
2021-11-02 9:35 ` Cédric Le Goater
2021-11-02 16:36 ` Jae Hyun Yoo
2021-11-02 22:14 ` Andrew Jeffery
2021-11-01 23:37 ` [PATCH -next 3/4] ARM: dts: aspeed: add LCLK setting into LPC KCS nodes jae.hyun.yoo
2021-11-01 23:34 ` Joel Stanley
2021-11-02 22:22 ` Andrew Jeffery
2021-11-03 16:15 ` Jae Hyun Yoo
2021-11-01 23:37 ` [PATCH -next 4/4] ipmi: kcs_bmc_aspeed: add clock control logic jae.hyun.yoo
2021-11-01 23:33 ` Joel Stanley
2021-11-02 3:15 ` ChiaWei Wang
2021-11-02 3:28 ` Joel Stanley
2021-11-02 16:35 ` Jae Hyun Yoo [this message]
2021-11-03 1:55 ` ChiaWei Wang
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=edaeb540-aa31-d143-4320-cb2a73f0070f@linux.intel.com \
--to=jae.hyun.yoo@linux.intel.com \
--cc=andrew@aj.id.au \
--cc=chiawei_wang@aspeedtech.com \
--cc=clg@kaod.org \
--cc=devicetree@vger.kernel.org \
--cc=haiyue.wang@linux.intel.com \
--cc=jae.hyun.yoo@intel.com \
--cc=jenmin_yuan@aspeedtech.com \
--cc=joel@jms.id.au \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-aspeed@lists.ozlabs.org \
--cc=minyard@acm.org \
--cc=openipmi-developer@lists.sourceforge.net \
--cc=robh+dt@kernel.org \
--cc=ryan_chen@aspeedtech.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;
as well as URLs for NNTP newsgroup(s).