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