Lines Matching refs:pr

167 static int acpi_processor_hotadd_init(struct acpi_processor *pr)  in acpi_processor_hotadd_init()  argument
173 if (pr->phys_id == PHYS_CPUID_INVALID) in acpi_processor_hotadd_init()
176 status = acpi_evaluate_integer(pr->handle, "_STA", NULL, &sta); in acpi_processor_hotadd_init()
183 ret = acpi_map_cpu(pr->handle, pr->phys_id, &pr->id); in acpi_processor_hotadd_init()
187 ret = arch_register_cpu(pr->id); in acpi_processor_hotadd_init()
189 acpi_unmap_cpu(pr->id); in acpi_processor_hotadd_init()
198 pr_info("CPU%d has been hot-added\n", pr->id); in acpi_processor_hotadd_init()
199 pr->flags.need_hotplug_init = 1; in acpi_processor_hotadd_init()
207 static inline int acpi_processor_hotadd_init(struct acpi_processor *pr) in acpi_processor_hotadd_init() argument
217 struct acpi_processor *pr = acpi_driver_data(device); in acpi_processor_get_info() local
231 pr->flags.bm_control = 1; in acpi_processor_get_info()
240 status = acpi_evaluate_object(pr->handle, NULL, NULL, &buffer); in acpi_processor_get_info()
248 pr->acpi_id = object.processor.proc_id; in acpi_processor_get_info()
254 status = acpi_evaluate_integer(pr->handle, METHOD_NAME__UID, in acpi_processor_get_info()
263 pr->acpi_id = value; in acpi_processor_get_info()
266 phys_id = acpi_get_phys_id(pr->handle, device_declaration, pr->acpi_id); in acpi_processor_get_info()
268 acpi_handle_debug(pr->handle, "failed to get CPU physical ID.\n"); in acpi_processor_get_info()
269 pr->phys_id = phys_id; in acpi_processor_get_info()
271 cpu_index = acpi_map_cpuid(pr->phys_id, pr->acpi_id); in acpi_processor_get_info()
281 pr->id = cpu_index; in acpi_processor_get_info()
288 if (pr->id == -1) { in acpi_processor_get_info()
289 int ret = acpi_processor_hotadd_init(pr); in acpi_processor_get_info()
303 sprintf(acpi_device_bid(device), "CPU%X", pr->id); in acpi_processor_get_info()
304 ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Processor [%d:%d]\n", pr->id, in acpi_processor_get_info()
305 pr->acpi_id)); in acpi_processor_get_info()
313 pr->throttling.address = object.processor.pblk_address; in acpi_processor_get_info()
314 pr->throttling.duty_offset = acpi_gbl_FADT.duty_offset; in acpi_processor_get_info()
315 pr->throttling.duty_width = acpi_gbl_FADT.duty_width; in acpi_processor_get_info()
317 pr->pblk = object.processor.pblk_address; in acpi_processor_get_info()
326 request_region(pr->throttling.address, 6, "ACPI CPU throttle"); in acpi_processor_get_info()
334 status = acpi_evaluate_integer(pr->handle, "_SUN", NULL, &value); in acpi_processor_get_info()
336 arch_fix_phys_package_id(pr->id, value); in acpi_processor_get_info()
352 struct acpi_processor *pr; in acpi_processor_add() local
356 pr = kzalloc(sizeof(struct acpi_processor), GFP_KERNEL); in acpi_processor_add()
357 if (!pr) in acpi_processor_add()
360 if (!zalloc_cpumask_var(&pr->throttling.shared_cpu_map, GFP_KERNEL)) { in acpi_processor_add()
365 pr->handle = device->handle; in acpi_processor_add()
368 device->driver_data = pr; in acpi_processor_add()
375 if (pr->id >= setup_max_cpus && pr->id != 0) in acpi_processor_add()
379 BUG_ON(pr->id >= nr_cpu_ids); in acpi_processor_add()
386 if (per_cpu(processor_device_array, pr->id) != NULL && in acpi_processor_add()
387 per_cpu(processor_device_array, pr->id) != device) { in acpi_processor_add()
390 pr->id); in acpi_processor_add()
398 per_cpu(processor_device_array, pr->id) = device; in acpi_processor_add()
399 per_cpu(processors, pr->id) = pr; in acpi_processor_add()
401 dev = get_cpu_device(pr->id); in acpi_processor_add()
411 pr->dev = dev; in acpi_processor_add()
421 free_cpumask_var(pr->throttling.shared_cpu_map); in acpi_processor_add()
423 per_cpu(processors, pr->id) = NULL; in acpi_processor_add()
425 kfree(pr); in acpi_processor_add()
436 struct acpi_processor *pr; in acpi_processor_remove() local
441 pr = acpi_driver_data(device); in acpi_processor_remove()
442 if (pr->id >= nr_cpu_ids) in acpi_processor_remove()
453 device_release_driver(pr->dev); in acpi_processor_remove()
454 acpi_unbind_one(pr->dev); in acpi_processor_remove()
457 per_cpu(processor_device_array, pr->id) = NULL; in acpi_processor_remove()
458 per_cpu(processors, pr->id) = NULL; in acpi_processor_remove()
464 arch_unregister_cpu(pr->id); in acpi_processor_remove()
465 acpi_unmap_cpu(pr->id); in acpi_processor_remove()
470 try_offline_node(cpu_to_node(pr->id)); in acpi_processor_remove()
473 free_cpumask_var(pr->throttling.shared_cpu_map); in acpi_processor_remove()
474 kfree(pr); in acpi_processor_remove()