int acpi_processor_power_exit(struct acpi_processor *pr, struct acpi_device *device) { if (disabled_by_idle_boot_param()) return 0; cpuidle_unregister_device(&pr->power.dev); pr->flags.power_setup_done = 0; return 0; }
/* * cpuidle_unregister: unregister a driver and the devices. This function * can be used only if the driver has been previously registered through * the cpuidle_register function. * * @drv: a valid pointer to a struct cpuidle_driver */ void cpuidle_unregister(struct cpuidle_driver *drv) { int cpu; struct cpuidle_device *device; for_each_possible_cpu(cpu) { device = &per_cpu(cpuidle_dev, cpu); cpuidle_unregister_device(device); } cpuidle_unregister_driver(drv); }
/* pseries_idle_devices_uninit(void) * unregister cpuidle devices and de-allocate memory */ static void pseries_idle_devices_uninit(void) { int i; struct cpuidle_device *dev; for_each_possible_cpu(i) { dev = per_cpu_ptr(pseries_cpuidle_devices, i); cpuidle_unregister_device(dev); } free_percpu(pseries_cpuidle_devices); return; }
int acpi_processor_power_exit(struct acpi_processor *pr, struct acpi_device *device) { if (boot_option_idle_override) return 0; cpuidle_unregister_device(&pr->power.dev); pr->flags.power_setup_done = 0; if (acpi_device_dir(device)) remove_proc_entry(ACPI_PROCESSOR_FILE_POWER, acpi_device_dir(device)); return 0; }
static int kw_cpuidle_remove(struct platform_device *pdev) { remove_proc_entry("cpu_idle", cpu_idle_proc); cpuidle_unregister_device(kirkwood_cpu_idle_device); return 0; }