Re: [PATCH v6 00/22] Restructure RPM SMD ICC

From: Stephen Boyd
Date: Wed Jun 14 2023 - 20:50:06 EST


Quoting Konrad Dybcio (2023-06-14 11:04:19)
> This series reshuffles things around, moving the management of SMD RPM
> bus clocks to the interconnect framework where they belong. This helps
> us solve a couple of issues:
>
> 1. We can work towards unused clk cleanup of RPMCC without worrying
> about it killing some NoC bus, resulting in the SoC dying.
> Deasserting actually unused RPM clocks (among other things) will
> let us achieve "true SoC-wide power collapse states", also known as
> VDD_LOW and VDD_MIN.
>
> 2. We no longer have to keep tons of quirky bus clock ifs in the icc
> driver. You either have a RPM clock and call "rpm set rate" or you
> have a single non-RPM clock (like AHB_CLK_SRC) or you don't have any.
>
> 3. There's less overhead - instead of going through layers and layers of
> the CCF, ratesetting comes down to calling max() and sending a single
> RPM message. ICC is very very dynamic so that's a big plus.
>
> The clocks still need to be vaguely described in the clk-smd-rpm driver,
> as it gives them an initial kickoff, before actually telling RPM to
> enable DVFS scaling. After RPM receives that command, all clocks that
> have not been assigned a rate are considered unused and are shut down
> in hardware, leading to the same issue as described in point 1.

Why can't we move the enable of DVFS scaling call to the interconnect
driver as well? We want the clk driver to not reference the interconnect
resources at all.