Lines Matching defs:dtpm_cpu

28 struct dtpm_cpu {
34 static DEFINE_PER_CPU(struct dtpm_cpu *, dtpm_per_cpu);
36 static struct dtpm_cpu *to_dtpm_cpu(struct dtpm *dtpm)
38 return container_of(dtpm, struct dtpm_cpu, dtpm);
43 struct dtpm_cpu *dtpm_cpu = to_dtpm_cpu(dtpm);
44 struct em_perf_domain *pd = em_cpu_get(dtpm_cpu->cpu);
63 freq_qos_update_request(&dtpm_cpu->qos_req, freq);
89 struct dtpm_cpu *dtpm_cpu = to_dtpm_cpu(dtpm);
95 pd = em_cpu_get(dtpm_cpu->cpu);
99 freq = cpufreq_quick_get(dtpm_cpu->cpu);
114 struct dtpm_cpu *dtpm_cpu = to_dtpm_cpu(dtpm);
115 struct em_perf_domain *em = em_cpu_get(dtpm_cpu->cpu);
133 struct dtpm_cpu *dtpm_cpu = to_dtpm_cpu(dtpm);
136 if (freq_qos_request_active(&dtpm_cpu->qos_req))
137 freq_qos_remove_request(&dtpm_cpu->qos_req);
139 policy = cpufreq_cpu_get(dtpm_cpu->cpu);
141 for_each_cpu(dtpm_cpu->cpu, policy->related_cpus)
142 per_cpu(dtpm_per_cpu, dtpm_cpu->cpu) = NULL;
147 kfree(dtpm_cpu);
159 struct dtpm_cpu *dtpm_cpu;
161 dtpm_cpu = per_cpu(dtpm_per_cpu, cpu);
162 if (dtpm_cpu)
163 dtpm_update_power(&dtpm_cpu->dtpm);
170 struct dtpm_cpu *dtpm_cpu;
172 dtpm_cpu = per_cpu(dtpm_per_cpu, cpu);
173 if (dtpm_cpu)
174 return dtpm_update_power(&dtpm_cpu->dtpm);
181 struct dtpm_cpu *dtpm_cpu;
187 dtpm_cpu = per_cpu(dtpm_per_cpu, cpu);
188 if (dtpm_cpu)
201 dtpm_cpu = kzalloc(sizeof(*dtpm_cpu), GFP_KERNEL);
202 if (!dtpm_cpu) {
207 dtpm_init(&dtpm_cpu->dtpm, &dtpm_ops);
208 dtpm_cpu->cpu = cpu;
211 per_cpu(dtpm_per_cpu, cpu) = dtpm_cpu;
213 snprintf(name, sizeof(name), "cpu%d-cpufreq", dtpm_cpu->cpu);
215 ret = dtpm_register(name, &dtpm_cpu->dtpm, parent);
220 &dtpm_cpu->qos_req, FREQ_QOS_MAX,
229 dtpm_unregister(&dtpm_cpu->dtpm);
230 dtpm_cpu = NULL;
235 kfree(dtpm_cpu);
278 ret = cpuhp_setup_state(CPUHP_AP_DTPM_CPU_DEAD, "dtpm_cpu:offline",
283 ret = cpuhp_setup_state(CPUHP_AP_ONLINE_DYN, "dtpm_cpu:online",