mbox series

[v2,0/3] clk: renesas: cpg-mssr: add ignore-unused option

Message ID 1584376479-25258-1-git-send-email-uli+renesas@fpond.eu (mailing list archive)
Headers show
Series clk: renesas: cpg-mssr: add ignore-unused option | expand

Message

Ulrich Hecht March 16, 2020, 4:34 p.m. UTC
Hi!

This revision renames the data structure holding the ignore-unused clocks to
something hopefully less confusing, squashes the changes for R-Car Gen3 and
RZ/G2 into one patch each and removes redundant debug output. Functionally,
nothing has changed. Thanks to Wolfram and Geert for the review!

This series adds the option for declaring clocks as "ignore-unused", i.e. 
clocks that will not be turned on if not used, but also not turned off if
unused. It also enables this option for the RWDT clocks in (almost) all
SoCs.

The point of this is to allow a WDT that has been enabled by the bootloader
to survive these events:

- deferred probing of the WDT device, which can lead the clock driver
  to disable the WDT clock until the WDT is re-probed, giving it a
  blind spot
- probe failure in the WDT driver

There are a number of Gen2 and RZ/G1 SoCs that have the RWDT clock declared
as critical in order to allow SMP bringup code to work. These have been
left as they are.

CU
Uli


Ulrich Hecht (3):
  clk: renesas: cpg-mssr: add support for ignore-unused clocks
  clk: renesas: rcar-gen3: mark RWDT clocks as ignore-unused
  clk: renesas: rzg2: mark RWDT clock as ignore-unused

 drivers/clk/renesas/r8a774a1-cpg-mssr.c | 5 +++++
 drivers/clk/renesas/r8a774b1-cpg-mssr.c | 5 +++++
 drivers/clk/renesas/r8a774c0-cpg-mssr.c | 5 +++++
 drivers/clk/renesas/r8a7795-cpg-mssr.c  | 6 +++++-
 drivers/clk/renesas/r8a7796-cpg-mssr.c  | 6 +++++-
 drivers/clk/renesas/r8a77965-cpg-mssr.c | 5 +++++
 drivers/clk/renesas/r8a77970-cpg-mssr.c | 6 +++++-
 drivers/clk/renesas/r8a77980-cpg-mssr.c | 6 +++++-
 drivers/clk/renesas/r8a77990-cpg-mssr.c | 5 +++++
 drivers/clk/renesas/r8a77995-cpg-mssr.c | 6 +++++-
 drivers/clk/renesas/renesas-cpg-mssr.c  | 5 +++++
 drivers/clk/renesas/renesas-cpg-mssr.h  | 9 +++++++++
 12 files changed, 64 insertions(+), 5 deletions(-)

Comments

Wolfram Sang March 18, 2020, 1:47 p.m. UTC | #1
> This revision renames the data structure holding the ignore-unused clocks to
> something hopefully less confusing, squashes the changes for R-Car Gen3 and
> RZ/G2 into one patch each and removes redundant debug output. Functionally,
> nothing has changed. Thanks to Wolfram and Geert for the review!

Thanks for the update! Looks good from a visual review. I will do some
testing with the bootloader handover patch later and then give the
apropriate tags. Looking forward to have this topic finally solved :)
Wolfram Sang March 18, 2020, 7:33 p.m. UTC | #2
> The point of this is to allow a WDT that has been enabled by the bootloader
> to survive these events:
> 
> - deferred probing of the WDT device, which can lead the clock driver
>   to disable the WDT clock until the WDT is re-probed, giving it a
>   blind spot
> - probe failure in the WDT driver

So, I was trying to test this with the watchdog driver and my patch[1].
To make the watchdog_register_device() call fail, I cleared the ident
struct:

	priv->wdev.info = NULL; //&rwdt_ident;

Sadly, the watchdog does not fire after the driver bailed out of probe.
clk_summary rightfully says that the clock is neither prepared nor
enabled.

Did I miss something? I will try some more tomorrow.

Uli, how did you test the ignore_unused feature?

[1] https://patchwork.kernel.org/patch/11101573/
   "[PATCH v2] watchdog: renesas_wdt: support handover from bootloader"