linux/drivers/interconnect
Konrad Dybcio b979049c38 interconnect: qcom: icc-rpm: Introduce keep_alive
The downstream kernel employs the concept of "keeping the bus alive"
by voting for the minimum (XO/19.2MHz) rate at all times on certain
(well, most) buses. This is a very important thing to have, as if we
either have a lackluster/wrong DT that doesn't specify a (high enough)
vote on a certain bus, we may lose access to the entire bus altogether.
This is very apparent when we only start introducing interconnect
support on a given platform and haven't yet introduced voting on all
peripherals.

The same can happen if we only have a single driver casting a vote on
a certain bus and that driver exits/crashes/suspends.

The keepalive vote is limited to the ACTIVE bucket, as keeping a
permanent vote on the SLEEP one could prevent the platform from properly
entering low power mode states.

Introduce the very same concept, with a slight twist: the vendor
kernel checks whether the rate is zero before setting the minimum
vote, but that's rather silly, as in doing so we're at the mercy
of CCF. Instead, explicitly clamp the rates to always be >= 19.2 MHz
for providers with keep_alive=true.

Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Acked-by: Georgi Djakov <djakov@kernel.org>
Link: https://lore.kernel.org/r/20230526-topic-smd_icc-v7-6-09c78c175546@linaro.org
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
2023-07-15 09:54:44 -07:00
..
imx interconnect: imx: fix registration race 2023-03-07 22:19:05 +02:00
qcom interconnect: qcom: icc-rpm: Introduce keep_alive 2023-07-15 09:54:44 -07:00
samsung interconnect: exynos: drop redundant link destroy 2023-03-13 21:13:48 +02:00
bulk.c interconnect: add device managed bulk API 2022-07-04 16:14:29 +03:00
core.c interconnect: drop unused icc_get() interface 2023-05-30 22:04:46 +03:00
icc-clk.c interconnect: icc-clk: fix modular build 2023-06-10 10:30:38 +03:00
internal.h
Kconfig interconnect: add clk-based icc provider support 2023-05-18 19:02:23 +03:00
Makefile interconnect: add clk-based icc provider support 2023-05-18 19:02:23 +03:00
trace.h