pmdomain: Merge branch fixes into next
Merge the pmdomain fixes for v6.16-rc[n] into the next branch, to allow them to get tested together with the new changes that are targeted for v6.17. Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>pull/1309/head
commit
d87547e08b
|
|
@ -45,7 +45,6 @@ struct psci_cpuidle_domain_state {
|
|||
static DEFINE_PER_CPU_READ_MOSTLY(struct psci_cpuidle_data, psci_cpuidle_data);
|
||||
static DEFINE_PER_CPU(struct psci_cpuidle_domain_state, psci_domain_state);
|
||||
static bool psci_cpuidle_use_syscore;
|
||||
static bool psci_cpuidle_use_cpuhp;
|
||||
|
||||
void psci_set_domain_state(struct generic_pm_domain *pd, unsigned int state_idx,
|
||||
u32 state)
|
||||
|
|
@ -124,8 +123,12 @@ static int psci_idle_cpuhp_up(unsigned int cpu)
|
|||
{
|
||||
struct device *pd_dev = __this_cpu_read(psci_cpuidle_data.dev);
|
||||
|
||||
if (pd_dev)
|
||||
if (pd_dev) {
|
||||
if (!IS_ENABLED(CONFIG_PREEMPT_RT))
|
||||
pm_runtime_get_sync(pd_dev);
|
||||
else
|
||||
dev_pm_genpd_resume(pd_dev);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -135,7 +138,11 @@ static int psci_idle_cpuhp_down(unsigned int cpu)
|
|||
struct device *pd_dev = __this_cpu_read(psci_cpuidle_data.dev);
|
||||
|
||||
if (pd_dev) {
|
||||
if (!IS_ENABLED(CONFIG_PREEMPT_RT))
|
||||
pm_runtime_put_sync(pd_dev);
|
||||
else
|
||||
dev_pm_genpd_suspend(pd_dev);
|
||||
|
||||
/* Clear domain state to start fresh at next online. */
|
||||
psci_clear_domain_state();
|
||||
}
|
||||
|
|
@ -196,9 +203,6 @@ static void psci_idle_init_cpuhp(void)
|
|||
{
|
||||
int err;
|
||||
|
||||
if (!psci_cpuidle_use_cpuhp)
|
||||
return;
|
||||
|
||||
err = cpuhp_setup_state_nocalls(CPUHP_AP_CPU_PM_STARTING,
|
||||
"cpuidle/psci:online",
|
||||
psci_idle_cpuhp_up,
|
||||
|
|
@ -259,10 +263,8 @@ static int psci_dt_cpu_init_topology(struct cpuidle_driver *drv,
|
|||
* s2ram and s2idle.
|
||||
*/
|
||||
drv->states[state_count - 1].enter_s2idle = psci_enter_s2idle_domain_idle_state;
|
||||
if (!IS_ENABLED(CONFIG_PREEMPT_RT)) {
|
||||
if (!IS_ENABLED(CONFIG_PREEMPT_RT))
|
||||
drv->states[state_count - 1].enter = psci_enter_domain_idle_state;
|
||||
psci_cpuidle_use_cpuhp = true;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -339,7 +341,6 @@ static void psci_cpu_deinit_idle(int cpu)
|
|||
|
||||
dt_idle_detach_cpu(data->dev);
|
||||
psci_cpuidle_use_syscore = false;
|
||||
psci_cpuidle_use_cpuhp = false;
|
||||
}
|
||||
|
||||
static int psci_idle_init_cpu(struct device *dev, int cpu)
|
||||
|
|
|
|||
Loading…
Reference in New Issue