PM: domains: Store the next hrtimer wakeup in genpd
authorMaulik Shah <quic_mkshah@quicinc.com>
Tue, 18 Oct 2022 15:28:35 +0000 (17:28 +0200)
committerBjorn Andersson <andersson@kernel.org>
Thu, 10 Nov 2022 03:14:21 +0000 (21:14 -0600)
commit1498c503e19e587dbc26c8827633960a67594359
tree931db0d1fe6676a9f87aea608bd9e3ce42fa9c3c
parent25092e6100acd7fcc72deed2583e63db683bb872
PM: domains: Store the next hrtimer wakeup in genpd

The arch timer cannot wake up the Qualcomm Technologies, Inc. (QTI) SoCs
from the deeper CPUidle states. To be able to wakeup from these deeper
states, another always-on timer needs to be programmed through the so
called CONTROL_TCS.

As the RSC is part of CPU subsystem and the corresponding APSS RSC device
is attached to the cluster PM domain (through genpd), it holds the
responsibility to program the always-on timer, before entering any of these
deeper CPUidle states.

However, programming the timer requires information about the next hrtimer
wakeup for the cluster PM domain, which is currently only known by genpd.
Therefore, let's share this data through a new genpd helper function,
dev_pm_genpd_get_next_hrtimer().

Signed-off-by: Maulik Shah <quic_mkshah@quicinc.com>
Cc: "Rafael J. Wysocki" <rafael@kernel.org>
[Ulf: Reworked the code and updated the commit message]
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Tested-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> # SM8450
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20221018152837.619426-5-ulf.hansson@linaro.org
drivers/base/power/domain.c
drivers/base/power/domain_governor.c
include/linux/pm_domain.h