summaryrefslogtreecommitdiff
path: root/drivers/pmdomain/core.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2024-05-16 08:50:32 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2024-05-16 08:50:32 -0700
commit8b35a3bb33b57bc2cb2694a50e49e0ea01b9ff6f (patch)
tree196e68d3ca36c3ad47dca86065c7c10d87e030cd /drivers/pmdomain/core.c
parent6fd600d742744dc7ef7fc65ca26daa2b1163158a (diff)
parentd88ea30340963d87c267cf1c7ebb2a205ef04e25 (diff)
downloadlinux-8b35a3bb33b57bc2cb2694a50e49e0ea01b9ff6f.tar.gz
linux-8b35a3bb33b57bc2cb2694a50e49e0ea01b9ff6f.tar.bz2
linux-8b35a3bb33b57bc2cb2694a50e49e0ea01b9ff6f.zip
Merge tag 'pmdomain-v6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/linux-pm
Pull pmdomain updates from Ulf Hansson: "pmdomain core: - Don't clear suspended_count at genpd_prepare() - Update the rejected/usage counters at system suspend too pmdomain providers: - ti-sci: Fix duplicate PD referrals - mediatek: Add MT8188 buck isolation setting - renesas: Add R-Car M3-W power-off delay quirk - renesas: Split R-Car M3-W and M3-W+ sub-drivers cpuidle-psci: - Update MAINTAINERS to set a git for DT IDLE PM DOMAIN/ARM PSCI PM DOMAIN - Update init level to core_initcall() - Drop superfluous wrappers psci_dt_attach|detach_cpu()" * tag 'pmdomain-v6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/linux-pm: pmdomain: ti-sci: Fix duplicate PD referrals pmdomain: core: Don't clear suspended_count at genpd_prepare() pmdomain: core: Update the rejected/usage counters at system suspend too pmdomain: renesas: rcar-sysc: Add R-Car M3-W power-off delay quirk pmdomain: renesas: rcar-sysc: Remove rcar_sysc_nullify() helper pmdomain: renesas: rcar-sysc: Split R-Car M3-W and M3-W+ sub-drivers pmdomain: renesas: rcar-sysc: Absorb rcar_sysc_ch into rcar_sysc_pd MAINTAINERS: Add a git for the DT IDLE PM DOMAIN MAINTAINERS: Add a git for the ARM PSCI PM DOMAIN cpuidle: psci: Update init level to core_initcall() cpuidle: psci: Drop superfluous wrappers psci_dt_attach|detach_cpu() pmdomain: mediatek: Add MT8188 buck isolation setting pmdomain: mediatek: scpsys: drop driver owner assignment
Diffstat (limited to 'drivers/pmdomain/core.c')
-rw-r--r--drivers/pmdomain/core.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/drivers/pmdomain/core.c b/drivers/pmdomain/core.c
index 4215ffd9b11c..342779464c0d 100644
--- a/drivers/pmdomain/core.c
+++ b/drivers/pmdomain/core.c
@@ -1178,8 +1178,12 @@ static void genpd_sync_power_off(struct generic_pm_domain *genpd, bool use_lock,
/* Choose the deepest state when suspending */
genpd->state_idx = genpd->state_count - 1;
- if (_genpd_power_off(genpd, false))
+ if (_genpd_power_off(genpd, false)) {
+ genpd->states[genpd->state_idx].rejected++;
return;
+ } else {
+ genpd->states[genpd->state_idx].usage++;
+ }
genpd->status = GENPD_STATE_OFF;
@@ -1251,10 +1255,7 @@ static int genpd_prepare(struct device *dev)
return -EINVAL;
genpd_lock(genpd);
-
- if (genpd->prepared_count++ == 0)
- genpd->suspended_count = 0;
-
+ genpd->prepared_count++;
genpd_unlock(genpd);
ret = pm_generic_prepare(dev);