Lines Matching refs:pr
75 struct acpi_processor *pr; in acpi_processor_ppc_notifier() local
89 pr = per_cpu(processors, policy->cpu); in acpi_processor_ppc_notifier()
90 if (!pr || !pr->performance) in acpi_processor_ppc_notifier()
93 ppc = (unsigned int)pr->performance_platform_limit; in acpi_processor_ppc_notifier()
95 if (ppc >= pr->performance->state_count) in acpi_processor_ppc_notifier()
99 pr->performance->states[ppc]. in acpi_processor_ppc_notifier()
112 static int acpi_processor_get_platform_limit(struct acpi_processor *pr) in acpi_processor_get_platform_limit() argument
118 if (!pr) in acpi_processor_get_platform_limit()
125 status = acpi_evaluate_integer(pr->handle, "_PPC", NULL, &ppc); in acpi_processor_get_platform_limit()
135 pr_debug("CPU %d: _PPC is %d - frequency %s limited\n", pr->id, in acpi_processor_get_platform_limit()
138 pr->performance_platform_limit = (int)ppc; in acpi_processor_get_platform_limit()
158 void acpi_processor_ppc_has_changed(struct acpi_processor *pr, int event_flag) in acpi_processor_ppc_has_changed() argument
162 if (ignore_ppc || !pr->performance) { in acpi_processor_ppc_has_changed()
168 acpi_processor_ppc_ost(pr->handle, 1); in acpi_processor_ppc_has_changed()
172 ret = acpi_processor_get_platform_limit(pr); in acpi_processor_ppc_has_changed()
179 acpi_processor_ppc_ost(pr->handle, 1); in acpi_processor_ppc_has_changed()
181 acpi_processor_ppc_ost(pr->handle, 0); in acpi_processor_ppc_has_changed()
184 cpufreq_update_policy(pr->id); in acpi_processor_ppc_has_changed()
189 struct acpi_processor *pr; in acpi_processor_get_bios_limit() local
191 pr = per_cpu(processors, cpu); in acpi_processor_get_bios_limit()
192 if (!pr || !pr->performance || !pr->performance->state_count) in acpi_processor_get_bios_limit()
194 *limit = pr->performance->states[pr->performance_platform_limit]. in acpi_processor_get_bios_limit()
219 static int acpi_processor_get_performance_control(struct acpi_processor *pr) in acpi_processor_get_performance_control() argument
228 status = acpi_evaluate_object(pr->handle, "_PCT", NULL, &buffer); in acpi_processor_get_performance_control()
255 memcpy(&pr->performance->control_register, obj.buffer.pointer, in acpi_processor_get_performance_control()
272 memcpy(&pr->performance->status_register, obj.buffer.pointer, in acpi_processor_get_performance_control()
316 static int acpi_processor_get_performance_states(struct acpi_processor *pr) in acpi_processor_get_performance_states() argument
328 status = acpi_evaluate_object(pr->handle, "_PSS", NULL, &buffer); in acpi_processor_get_performance_states()
344 pr->performance->state_count = pss->package.count; in acpi_processor_get_performance_states()
345 pr->performance->states = in acpi_processor_get_performance_states()
349 if (!pr->performance->states) { in acpi_processor_get_performance_states()
354 for (i = 0; i < pr->performance->state_count; i++) { in acpi_processor_get_performance_states()
356 struct acpi_processor_px *px = &(pr->performance->states[i]); in acpi_processor_get_performance_states()
368 kfree(pr->performance->states); in acpi_processor_get_performance_states()
391 pr->id, px->core_frequency); in acpi_processor_get_performance_states()
399 memcpy(&(pr->performance->states[last_invalid]), in acpi_processor_get_performance_states()
408 "No valid BIOS _PSS frequency found for processor %d\n", pr->id); in acpi_processor_get_performance_states()
410 kfree(pr->performance->states); in acpi_processor_get_performance_states()
411 pr->performance->states = NULL; in acpi_processor_get_performance_states()
415 pr->performance->state_count = last_invalid; in acpi_processor_get_performance_states()
423 int acpi_processor_get_performance_info(struct acpi_processor *pr) in acpi_processor_get_performance_info() argument
427 if (!pr || !pr->performance || !pr->handle) in acpi_processor_get_performance_info()
430 if (!acpi_has_method(pr->handle, "_PCT")) { in acpi_processor_get_performance_info()
436 result = acpi_processor_get_performance_control(pr); in acpi_processor_get_performance_info()
440 result = acpi_processor_get_performance_states(pr); in acpi_processor_get_performance_info()
446 result = acpi_processor_get_platform_limit(pr); in acpi_processor_get_performance_info()
456 if (acpi_has_method(pr->handle, "_PPC")) { in acpi_processor_get_performance_info()
607 struct acpi_processor *pr; in acpi_processor_preregister_performance() local
622 pr = per_cpu(processors, i); in acpi_processor_preregister_performance()
623 if (!pr) { in acpi_processor_preregister_performance()
628 if (pr->performance) { in acpi_processor_preregister_performance()
641 pr = per_cpu(processors, i); in acpi_processor_preregister_performance()
642 if (!pr) in acpi_processor_preregister_performance()
645 pr->performance = per_cpu_ptr(performance, i); in acpi_processor_preregister_performance()
646 cpumask_set_cpu(i, pr->performance->shared_cpu_map); in acpi_processor_preregister_performance()
647 pdomain = &(pr->performance->domain_info); in acpi_processor_preregister_performance()
648 if (acpi_processor_get_psd(pr->handle, pdomain)) { in acpi_processor_preregister_performance()
661 pr = per_cpu(processors, i); in acpi_processor_preregister_performance()
662 if (!pr) in acpi_processor_preregister_performance()
668 pdomain = &(pr->performance->domain_info); in acpi_processor_preregister_performance()
669 cpumask_set_cpu(i, pr->performance->shared_cpu_map); in acpi_processor_preregister_performance()
677 pr->performance->shared_type = CPUFREQ_SHARED_TYPE_ALL; in acpi_processor_preregister_performance()
679 pr->performance->shared_type = CPUFREQ_SHARED_TYPE_HW; in acpi_processor_preregister_performance()
681 pr->performance->shared_type = CPUFREQ_SHARED_TYPE_ANY; in acpi_processor_preregister_performance()
708 cpumask_set_cpu(j, pr->performance->shared_cpu_map); in acpi_processor_preregister_performance()
724 pr->performance->shared_type; in acpi_processor_preregister_performance()
726 pr->performance->shared_cpu_map); in acpi_processor_preregister_performance()
732 pr = per_cpu(processors, i); in acpi_processor_preregister_performance()
733 if (!pr || !pr->performance) in acpi_processor_preregister_performance()
738 cpumask_clear(pr->performance->shared_cpu_map); in acpi_processor_preregister_performance()
739 cpumask_set_cpu(i, pr->performance->shared_cpu_map); in acpi_processor_preregister_performance()
740 pr->performance->shared_type = CPUFREQ_SHARED_TYPE_ALL; in acpi_processor_preregister_performance()
742 pr->performance = NULL; /* Will be set for real in register */ in acpi_processor_preregister_performance()
756 struct acpi_processor *pr; in acpi_processor_register_performance() local
763 pr = per_cpu(processors, cpu); in acpi_processor_register_performance()
764 if (!pr) { in acpi_processor_register_performance()
769 if (pr->performance) { in acpi_processor_register_performance()
776 pr->performance = performance; in acpi_processor_register_performance()
778 if (acpi_processor_get_performance_info(pr)) { in acpi_processor_register_performance()
779 pr->performance = NULL; in acpi_processor_register_performance()
792 struct acpi_processor *pr; in acpi_processor_unregister_performance() local
796 pr = per_cpu(processors, cpu); in acpi_processor_unregister_performance()
797 if (!pr) { in acpi_processor_unregister_performance()
802 if (pr->performance) in acpi_processor_unregister_performance()
803 kfree(pr->performance->states); in acpi_processor_unregister_performance()
804 pr->performance = NULL; in acpi_processor_unregister_performance()