[PATCH V3] clk: bcm2835: mark enabled clocks with CLK_ENABLE_HAND_OFF
Eric Anholt
eric at anholt.net
Thu Apr 28 13:22:22 PDT 2016
kernel at martin.sperl.org writes:
> From: Martin Sperl <kernel at martin.sperl.org>
>
> The bcm2835 firmware enables several clocks and plls before
> booting the linux kernel.
>
> These plls should never get disabled as it may result in a
> stopped system clock and more.
>
> So during probing we check if the clock is enabled
> and if it is then mark that clock with CLK_ENABLE_HAND_OFF.
> As a consequence this will also enable the corresponding
> parent plls and pll-divs.
>
> Signed-off-by: Martin Sperl <kernel at martin.sperl.org>
>
> --
> ---
> drivers/clk/bcm/clk-bcm2835.c | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/drivers/clk/bcm/clk-bcm2835.c b/drivers/clk/bcm/clk-bcm2835.c
> index 35f8de7..65d62c2 100644
> --- a/drivers/clk/bcm/clk-bcm2835.c
> +++ b/drivers/clk/bcm/clk-bcm2835.c
> @@ -1251,7 +1251,14 @@ static struct clk *bcm2835_register_clock(struct bcm2835_cprman *cprman,
> init.flags |= CLK_SET_RATE_GATE | CLK_SET_PARENT_GATE;
> }
>
> + /* if the clock is running then enable HAND_OFF */
> + if (cprman_read(cprman, data->ctl_reg) & CM_ENABLE) {
> + dev_info(cprman->dev,
> + "found enabled clock %s - enabling hand off\n",
> + data->name);
> + init.flags |= CLK_ENABLE_HAND_OFF;
> + }
> +
The debug shouldn't be at dev_info() level, but other than that this
seems like a good plan once CLK_ENABLE_HAND_OFF lands.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 818 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20160428/1def9988/attachment-0001.sig>
More information about the linux-arm-kernel
mailing list