cpuidle-psci.c (a01353cf1896ea5b8a7bbc5e2b2d38feed8b7aaa) | cpuidle-psci.c (69e26b4f43ed396868c6e7645f9eb06c3a0d2fee) |
---|---|
1// SPDX-License-Identifier: GPL-2.0-only 2/* 3 * PSCI CPU idle driver. 4 * 5 * Copyright (C) 2019 ARM Ltd. 6 * Author: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> 7 */ 8 --- 35 unchanged lines hidden (view full) --- 44 __this_cpu_write(domain_state, state); 45} 46 47static inline u32 psci_get_domain_state(void) 48{ 49 return __this_cpu_read(domain_state); 50} 51 | 1// SPDX-License-Identifier: GPL-2.0-only 2/* 3 * PSCI CPU idle driver. 4 * 5 * Copyright (C) 2019 ARM Ltd. 6 * Author: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> 7 */ 8 --- 35 unchanged lines hidden (view full) --- 44 __this_cpu_write(domain_state, state); 45} 46 47static inline u32 psci_get_domain_state(void) 48{ 49 return __this_cpu_read(domain_state); 50} 51 |
52static inline int psci_enter_state(int idx, u32 state) | 52static __cpuidle int __psci_enter_domain_idle_state(struct cpuidle_device *dev, 53 struct cpuidle_driver *drv, int idx, 54 bool s2idle) |
53{ | 55{ |
54 return CPU_PM_CPU_IDLE_ENTER_PARAM(psci_cpu_suspend_enter, idx, state); 55} 56 57static int __psci_enter_domain_idle_state(struct cpuidle_device *dev, 58 struct cpuidle_driver *drv, int idx, 59 bool s2idle) 60{ | |
61 struct psci_cpuidle_data *data = this_cpu_ptr(&psci_cpuidle_data); 62 u32 *states = data->psci_states; 63 struct device *pd_dev = data->dev; 64 u32 state; 65 int ret; 66 67 ret = cpu_pm_enter(); 68 if (ret) --- 118 unchanged lines hidden (view full) --- 187 err = cpuhp_setup_state_nocalls(CPUHP_AP_CPU_PM_STARTING, 188 "cpuidle/psci:online", 189 psci_idle_cpuhp_up, 190 psci_idle_cpuhp_down); 191 if (err) 192 pr_warn("Failed %d while setup cpuhp state\n", err); 193} 194 | 56 struct psci_cpuidle_data *data = this_cpu_ptr(&psci_cpuidle_data); 57 u32 *states = data->psci_states; 58 struct device *pd_dev = data->dev; 59 u32 state; 60 int ret; 61 62 ret = cpu_pm_enter(); 63 if (ret) --- 118 unchanged lines hidden (view full) --- 182 err = cpuhp_setup_state_nocalls(CPUHP_AP_CPU_PM_STARTING, 183 "cpuidle/psci:online", 184 psci_idle_cpuhp_up, 185 psci_idle_cpuhp_down); 186 if (err) 187 pr_warn("Failed %d while setup cpuhp state\n", err); 188} 189 |
195static int psci_enter_idle_state(struct cpuidle_device *dev, 196 struct cpuidle_driver *drv, int idx) | 190static __cpuidle int psci_enter_idle_state(struct cpuidle_device *dev, 191 struct cpuidle_driver *drv, int idx) |
197{ 198 u32 *state = __this_cpu_read(psci_cpuidle_data.psci_states); 199 | 192{ 193 u32 *state = __this_cpu_read(psci_cpuidle_data.psci_states); 194 |
200 return psci_enter_state(idx, state[idx]); | 195 return CPU_PM_CPU_IDLE_ENTER_PARAM(psci_cpu_suspend_enter, idx, state[idx]); |
201} 202 203static const struct of_device_id psci_idle_state_match[] = { 204 { .compatible = "arm,idle-state", 205 .data = psci_enter_idle_state }, 206 { }, 207}; 208 --- 248 unchanged lines hidden --- | 196} 197 198static const struct of_device_id psci_idle_state_match[] = { 199 { .compatible = "arm,idle-state", 200 .data = psci_enter_idle_state }, 201 { }, 202}; 203 --- 248 unchanged lines hidden --- |