On 03/03/2022 11:47, andriy.shevchenko@xxxxxxxxxxxxxxx wrote:
On Thu, Mar 03, 2022 at 11:17:33AM +0100, Daniel Lezcano wrote:
On 03/03/2022 07:18, Sanil, Shruthi wrote:
+ if (!(val & TIM_CONFIG_PRESCALER_ENABLE)) { +
pr_err("%pOF: Prescaler is not enabled\n", np);
+ ret = -ENODEV; + }
Why bail out instead of enabling the prescalar ?
Because it is a secure register and it would be updated by
the bootloader.
Should it be considered as a firmware bug ?
No. This is a common driver across products in the series and
enablement of this bit depends on the project requirements.
Hence
to be sure from driver, we added this check to avoid
initialization of the driver in the case where it cannot be
functional.
I'm not sure to get the meaning of 'project requirements' but (for
my understanding) why not describe the timer in the DT for such
projects?
OK, I understand your point now. We can control the driver
initialization from device tree binding rather than add a check in
the driver. But isn't it good to have a check, if enabling of the bit
is missed out in the FW? This can help in debugging.
So if the description is in the DT but the prescaler bit is not enabled then
the firmware is buggy, IIUC. Yeah, this check would help, may be add more
context in the error message, eg. "Firmware has not enabled the prescaler
bit" or something like that
For this we also use a FW_BUG prefix to printf()-like functions.
Thanks for the information, I was unaware of this prefix.
Good to know ;)
--
<http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs
Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog