Thread (33 messages) 33 messages, 8 authors, 2021-11-04

Re: [PATCH -next 4/4] ipmi: kcs_bmc_aspeed: add clock control logic

From: Joel Stanley <joel@jms.id.au>
Date: 2021-11-02 03:29:12
Also in: linux-aspeed, linux-devicetree

On Tue, 2 Nov 2021 at 03:16, ChiaWei Wang [off-list ref] wrote:
Hi Jae,
quoted
From: linux-arm-kernel <redacted> On

From: Jae Hyun Yoo <redacted>

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/ (local)

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/ (local)

If you wish to use this mechanism for eg. SIO clocks, then I encourage
Aspeed to submit a patch to do that.

Cheers,

Joel

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help