Lines Matching defs:pr

85 static acpi_status acpi_processor_hotadd_init(struct acpi_processor *pr);
86 static int acpi_processor_handle_eject(struct acpi_processor *pr);
87 static int acpi_processor_start(struct acpi_processor *pr);
222 static int acpi_processor_errata(struct acpi_processor *pr)
228 if (!pr)
254 struct acpi_processor *pr;
258 pr = acpi_driver_data(device);
259 if (!pr)
265 acpi_processor_errata(pr);
272 pr->flags.bm_control = 1;
281 status = acpi_evaluate_object(pr->handle, NULL, NULL, &buffer);
292 pr->acpi_id = object.processor.proc_id;
299 status = acpi_evaluate_integer(pr->handle, METHOD_NAME__UID,
307 pr->acpi_id = value;
309 cpu_index = acpi_get_cpuid(pr->handle, device_declaration, pr->acpi_id);
319 pr->id = cpu_index;
326 if (pr->id == -1) {
327 if (ACPI_FAILURE(acpi_processor_hotadd_init(pr)))
339 sprintf(acpi_device_bid(device), "CPU%X", pr->id);
340 ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Processor [%d:%d]\n", pr->id,
341 pr->acpi_id));
349 pr->throttling.address = object.processor.pblk_address;
350 pr->throttling.duty_offset = acpi_gbl_FADT.duty_offset;
351 pr->throttling.duty_width = acpi_gbl_FADT.duty_width;
353 pr->pblk = object.processor.pblk_address;
362 request_region(pr->throttling.address, 6, "ACPI CPU throttle");
370 status = acpi_evaluate_object(pr->handle, "_SUN", NULL, &buffer);
372 arch_fix_phys_package_id(pr->id, object.integer.value);
381 struct acpi_processor *pr = acpi_driver_data(device);
384 if (!pr)
389 saved = pr->performance_platform_limit;
390 acpi_processor_ppc_has_changed(pr, 1);
391 if (saved == pr->performance_platform_limit)
394 pr->performance_platform_limit);
397 pr->performance_platform_limit);
400 acpi_processor_cst_has_changed(pr);
406 acpi_processor_tstate_has_changed(pr);
423 struct acpi_processor *pr = per_cpu(processors, cpu);
425 if (action == CPU_ONLINE && pr) {
429 if (pr->flags.need_hotplug_init) {
434 "CPU: %d\n", pr->id);
435 WARN(acpi_processor_start(pr), "Failed to start CPU:"
436 " %d\n", pr->id);
437 pr->flags.need_hotplug_init = 0;
440 intel_idle_cpu_init(pr->id);
444 acpi_processor_ppc_has_changed(pr, 0);
445 acpi_processor_cst_has_changed(pr);
446 acpi_processor_reevaluate_tstate(pr, action);
447 acpi_processor_tstate_has_changed(pr);
450 if (action == CPU_DEAD && pr) {
452 acpi_processor_reevaluate_tstate(pr, action);
470 static __ref int acpi_processor_start(struct acpi_processor *pr)
472 struct acpi_device *device = per_cpu(processor_device_array, pr->id);
476 acpi_processor_ppc_has_changed(pr, 0);
477 acpi_processor_load_module(pr);
479 acpi_processor_get_throttling_info(pr);
480 acpi_processor_get_limit_info(pr);
483 acpi_processor_power_init(pr, device);
485 pr->cdev = thermal_cooling_device_register("Processor", device,
487 if (IS_ERR(pr->cdev)) {
488 result = PTR_ERR(pr->cdev);
493 pr->cdev->id);
496 &pr->cdev->device.kobj,
502 result = sysfs_create_link(&pr->cdev->device.kobj,
515 thermal_cooling_device_unregister(pr->cdev);
517 acpi_processor_power_exit(pr, device);
530 struct acpi_processor *pr = NULL;
534 pr = kzalloc(sizeof(struct acpi_processor), GFP_KERNEL);
535 if (!pr)
538 if (!zalloc_cpumask_var(&pr->throttling.shared_cpu_map, GFP_KERNEL)) {
543 pr->handle = device->handle;
546 device->driver_data = pr;
555 if (pr->id >= setup_max_cpus && pr->id != 0)
559 BUG_ON((pr->id >= nr_cpu_ids) || (pr->id < 0));
566 if (per_cpu(processor_device_array, pr->id) != NULL &&
567 per_cpu(processor_device_array, pr->id) != device) {
573 per_cpu(processor_device_array, pr->id) = device;
575 per_cpu(processors, pr->id) = pr;
577 dev = get_cpu_device(pr->id);
587 if (pr->flags.need_hotplug_init)
590 result = acpi_processor_start(pr);
602 per_cpu(processors, pr->id) = NULL;
604 free_cpumask_var(pr->throttling.shared_cpu_map);
606 kfree(pr);
612 struct acpi_processor *pr = NULL;
618 pr = acpi_driver_data(device);
620 if (pr->id >= nr_cpu_ids)
624 if (acpi_processor_handle_eject(pr))
628 acpi_processor_power_exit(pr, device);
632 if (pr->cdev) {
634 sysfs_remove_link(&pr->cdev->device.kobj, "device");
635 thermal_cooling_device_unregister(pr->cdev);
636 pr->cdev = NULL;
639 per_cpu(processors, pr->id) = NULL;
640 per_cpu(processor_device_array, pr->id) = NULL;
643 free_cpumask_var(pr->throttling.shared_cpu_map);
644 kfree(pr);
702 struct acpi_processor *pr;
735 pr = acpi_driver_data(device);
736 if (!pr) {
812 static acpi_status acpi_processor_hotadd_init(struct acpi_processor *pr)
814 acpi_handle handle = pr->handle;
820 if (acpi_map_lsapic(handle, &pr->id))
823 if (arch_register_cpu(pr->id)) {
824 acpi_unmap_lsapic(pr->id);
836 printk(KERN_INFO "CPU %d got hotplugged\n", pr->id);
837 pr->flags.need_hotplug_init = 1;
842 static int acpi_processor_handle_eject(struct acpi_processor *pr)
844 if (cpu_online(pr->id))
845 cpu_down(pr->id);
847 arch_unregister_cpu(pr->id);
848 acpi_unmap_lsapic(pr->id);
852 static acpi_status acpi_processor_hotadd_init(struct acpi_processor *pr)
856 static int acpi_processor_handle_eject(struct acpi_processor *pr)