mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 19:21:31 -04:00
Merge branch 'pm-acpi'
* pm-acpi: (24 commits) olpc-xo15-sci: Use struct dev_pm_ops for power management ACPI / PM: Drop PM callbacks from the ACPI bus type ACPI / PM: Drop legacy driver PM callbacks that are not used any more ACPI / PM: Do not execute legacy driver PM callbacks acpi_power_meter: Use struct dev_pm_ops for power management fujitsu-tablet: Use struct dev_pm_ops for power management classmate-laptop: Use struct dev_pm_ops for power management xo15-ebook: Use struct dev_pm_ops for power management toshiba_bluetooth: Use struct dev_pm_ops for power management panasonic-laptop: Use struct dev_pm_ops for power management sony-laptop: Use struct dev_pm_ops for power management hp_accel: Use struct dev_pm_ops for power management toshiba_acpi: Use struct dev_pm_ops for power management ACPI: Use struct dev_pm_ops for power management in the SBS driver ACPI: Use struct dev_pm_ops for power management in the power driver ACPI: Use struct dev_pm_ops for power management in the button driver ACPI: Use struct dev_pm_ops for power management in the battery driver ACPI: Use struct dev_pm_ops for power management in the AC driver ACPI: Use struct dev_pm_ops for power management in processor driver ACPI: Use struct dev_pm_ops for power management in the thermal driver ...
This commit is contained in:
commit
6148d38b37
22 changed files with 148 additions and 118 deletions
|
|
@ -61,7 +61,6 @@ static int acpi_ac_open_fs(struct inode *inode, struct file *file);
|
|||
|
||||
static int acpi_ac_add(struct acpi_device *device);
|
||||
static int acpi_ac_remove(struct acpi_device *device, int type);
|
||||
static int acpi_ac_resume(struct acpi_device *device);
|
||||
static void acpi_ac_notify(struct acpi_device *device, u32 event);
|
||||
|
||||
static const struct acpi_device_id ac_device_ids[] = {
|
||||
|
|
@ -70,6 +69,9 @@ static const struct acpi_device_id ac_device_ids[] = {
|
|||
};
|
||||
MODULE_DEVICE_TABLE(acpi, ac_device_ids);
|
||||
|
||||
static int acpi_ac_resume(struct device *dev);
|
||||
static SIMPLE_DEV_PM_OPS(acpi_ac_pm, NULL, acpi_ac_resume);
|
||||
|
||||
static struct acpi_driver acpi_ac_driver = {
|
||||
.name = "ac",
|
||||
.class = ACPI_AC_CLASS,
|
||||
|
|
@ -78,9 +80,9 @@ static struct acpi_driver acpi_ac_driver = {
|
|||
.ops = {
|
||||
.add = acpi_ac_add,
|
||||
.remove = acpi_ac_remove,
|
||||
.resume = acpi_ac_resume,
|
||||
.notify = acpi_ac_notify,
|
||||
},
|
||||
.drv.pm = &acpi_ac_pm,
|
||||
};
|
||||
|
||||
struct acpi_ac {
|
||||
|
|
@ -309,13 +311,18 @@ static int acpi_ac_add(struct acpi_device *device)
|
|||
return result;
|
||||
}
|
||||
|
||||
static int acpi_ac_resume(struct acpi_device *device)
|
||||
static int acpi_ac_resume(struct device *dev)
|
||||
{
|
||||
struct acpi_ac *ac;
|
||||
unsigned old_state;
|
||||
if (!device || !acpi_driver_data(device))
|
||||
|
||||
if (!dev)
|
||||
return -EINVAL;
|
||||
ac = acpi_driver_data(device);
|
||||
|
||||
ac = acpi_driver_data(to_acpi_device(dev));
|
||||
if (!ac)
|
||||
return -EINVAL;
|
||||
|
||||
old_state = ac->state;
|
||||
if (acpi_ac_get_state(ac))
|
||||
return 0;
|
||||
|
|
|
|||
|
|
@ -1044,17 +1044,24 @@ static int acpi_battery_remove(struct acpi_device *device, int type)
|
|||
}
|
||||
|
||||
/* this is needed to learn about changes made in suspended state */
|
||||
static int acpi_battery_resume(struct acpi_device *device)
|
||||
static int acpi_battery_resume(struct device *dev)
|
||||
{
|
||||
struct acpi_battery *battery;
|
||||
if (!device)
|
||||
|
||||
if (!dev)
|
||||
return -EINVAL;
|
||||
battery = acpi_driver_data(device);
|
||||
|
||||
battery = acpi_driver_data(to_acpi_device(dev));
|
||||
if (!battery)
|
||||
return -EINVAL;
|
||||
|
||||
battery->update_time = 0;
|
||||
acpi_battery_update(battery);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static SIMPLE_DEV_PM_OPS(acpi_battery_pm, NULL, acpi_battery_resume);
|
||||
|
||||
static struct acpi_driver acpi_battery_driver = {
|
||||
.name = "battery",
|
||||
.class = ACPI_BATTERY_CLASS,
|
||||
|
|
@ -1062,10 +1069,10 @@ static struct acpi_driver acpi_battery_driver = {
|
|||
.flags = ACPI_DRIVER_ALL_NOTIFY_EVENTS,
|
||||
.ops = {
|
||||
.add = acpi_battery_add,
|
||||
.resume = acpi_battery_resume,
|
||||
.remove = acpi_battery_remove,
|
||||
.notify = acpi_battery_notify,
|
||||
},
|
||||
.drv.pm = &acpi_battery_pm,
|
||||
};
|
||||
|
||||
static void __init acpi_battery_init_async(void *unused, async_cookie_t cookie)
|
||||
|
|
|
|||
|
|
@ -76,19 +76,21 @@ MODULE_DEVICE_TABLE(acpi, button_device_ids);
|
|||
|
||||
static int acpi_button_add(struct acpi_device *device);
|
||||
static int acpi_button_remove(struct acpi_device *device, int type);
|
||||
static int acpi_button_resume(struct acpi_device *device);
|
||||
static void acpi_button_notify(struct acpi_device *device, u32 event);
|
||||
|
||||
static int acpi_button_resume(struct device *dev);
|
||||
static SIMPLE_DEV_PM_OPS(acpi_button_pm, NULL, acpi_button_resume);
|
||||
|
||||
static struct acpi_driver acpi_button_driver = {
|
||||
.name = "button",
|
||||
.class = ACPI_BUTTON_CLASS,
|
||||
.ids = button_device_ids,
|
||||
.ops = {
|
||||
.add = acpi_button_add,
|
||||
.resume = acpi_button_resume,
|
||||
.remove = acpi_button_remove,
|
||||
.notify = acpi_button_notify,
|
||||
},
|
||||
.drv.pm = &acpi_button_pm,
|
||||
};
|
||||
|
||||
struct acpi_button {
|
||||
|
|
@ -308,8 +310,9 @@ static void acpi_button_notify(struct acpi_device *device, u32 event)
|
|||
}
|
||||
}
|
||||
|
||||
static int acpi_button_resume(struct acpi_device *device)
|
||||
static int acpi_button_resume(struct device *dev)
|
||||
{
|
||||
struct acpi_device *device = to_acpi_device(dev);
|
||||
struct acpi_button *button = acpi_driver_data(device);
|
||||
|
||||
if (button->type == ACPI_BUTTON_TYPE_LID)
|
||||
|
|
|
|||
|
|
@ -46,8 +46,6 @@ MODULE_LICENSE("GPL");
|
|||
|
||||
static int acpi_fan_add(struct acpi_device *device);
|
||||
static int acpi_fan_remove(struct acpi_device *device, int type);
|
||||
static int acpi_fan_suspend(struct acpi_device *device, pm_message_t state);
|
||||
static int acpi_fan_resume(struct acpi_device *device);
|
||||
|
||||
static const struct acpi_device_id fan_device_ids[] = {
|
||||
{"PNP0C0B", 0},
|
||||
|
|
@ -55,6 +53,10 @@ static const struct acpi_device_id fan_device_ids[] = {
|
|||
};
|
||||
MODULE_DEVICE_TABLE(acpi, fan_device_ids);
|
||||
|
||||
static int acpi_fan_suspend(struct device *dev);
|
||||
static int acpi_fan_resume(struct device *dev);
|
||||
static SIMPLE_DEV_PM_OPS(acpi_fan_pm, acpi_fan_suspend, acpi_fan_resume);
|
||||
|
||||
static struct acpi_driver acpi_fan_driver = {
|
||||
.name = "fan",
|
||||
.class = ACPI_FAN_CLASS,
|
||||
|
|
@ -62,9 +64,8 @@ static struct acpi_driver acpi_fan_driver = {
|
|||
.ops = {
|
||||
.add = acpi_fan_add,
|
||||
.remove = acpi_fan_remove,
|
||||
.suspend = acpi_fan_suspend,
|
||||
.resume = acpi_fan_resume,
|
||||
},
|
||||
.drv.pm = &acpi_fan_pm,
|
||||
};
|
||||
|
||||
/* thermal cooling device callbacks */
|
||||
|
|
@ -183,24 +184,24 @@ static int acpi_fan_remove(struct acpi_device *device, int type)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int acpi_fan_suspend(struct acpi_device *device, pm_message_t state)
|
||||
static int acpi_fan_suspend(struct device *dev)
|
||||
{
|
||||
if (!device)
|
||||
if (!dev)
|
||||
return -EINVAL;
|
||||
|
||||
acpi_bus_set_power(device->handle, ACPI_STATE_D0);
|
||||
acpi_bus_set_power(to_acpi_device(dev)->handle, ACPI_STATE_D0);
|
||||
|
||||
return AE_OK;
|
||||
}
|
||||
|
||||
static int acpi_fan_resume(struct acpi_device *device)
|
||||
static int acpi_fan_resume(struct device *dev)
|
||||
{
|
||||
int result;
|
||||
|
||||
if (!device)
|
||||
if (!dev)
|
||||
return -EINVAL;
|
||||
|
||||
result = acpi_bus_update_power(device->handle, NULL);
|
||||
result = acpi_bus_update_power(to_acpi_device(dev)->handle, NULL);
|
||||
if (result)
|
||||
printk(KERN_ERR PREFIX "Error updating fan power state\n");
|
||||
|
||||
|
|
|
|||
|
|
@ -60,7 +60,6 @@ ACPI_MODULE_NAME("power");
|
|||
|
||||
static int acpi_power_add(struct acpi_device *device);
|
||||
static int acpi_power_remove(struct acpi_device *device, int type);
|
||||
static int acpi_power_resume(struct acpi_device *device);
|
||||
|
||||
static const struct acpi_device_id power_device_ids[] = {
|
||||
{ACPI_POWER_HID, 0},
|
||||
|
|
@ -68,6 +67,9 @@ static const struct acpi_device_id power_device_ids[] = {
|
|||
};
|
||||
MODULE_DEVICE_TABLE(acpi, power_device_ids);
|
||||
|
||||
static int acpi_power_resume(struct device *dev);
|
||||
static SIMPLE_DEV_PM_OPS(acpi_power_pm, NULL, acpi_power_resume);
|
||||
|
||||
static struct acpi_driver acpi_power_driver = {
|
||||
.name = "power",
|
||||
.class = ACPI_POWER_CLASS,
|
||||
|
|
@ -75,8 +77,8 @@ static struct acpi_driver acpi_power_driver = {
|
|||
.ops = {
|
||||
.add = acpi_power_add,
|
||||
.remove = acpi_power_remove,
|
||||
.resume = acpi_power_resume,
|
||||
},
|
||||
.drv.pm = &acpi_power_pm,
|
||||
};
|
||||
|
||||
/*
|
||||
|
|
@ -771,14 +773,16 @@ static int acpi_power_remove(struct acpi_device *device, int type)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int acpi_power_resume(struct acpi_device *device)
|
||||
static int acpi_power_resume(struct device *dev)
|
||||
{
|
||||
int result = 0, state;
|
||||
struct acpi_device *device;
|
||||
struct acpi_power_resource *resource;
|
||||
|
||||
if (!device)
|
||||
if (!dev)
|
||||
return -EINVAL;
|
||||
|
||||
device = to_acpi_device(dev);
|
||||
resource = acpi_driver_data(device);
|
||||
if (!resource)
|
||||
return -EINVAL;
|
||||
|
|
|
|||
|
|
@ -93,6 +93,9 @@ static const struct acpi_device_id processor_device_ids[] = {
|
|||
};
|
||||
MODULE_DEVICE_TABLE(acpi, processor_device_ids);
|
||||
|
||||
static SIMPLE_DEV_PM_OPS(acpi_processor_pm,
|
||||
acpi_processor_suspend, acpi_processor_resume);
|
||||
|
||||
static struct acpi_driver acpi_processor_driver = {
|
||||
.name = "processor",
|
||||
.class = ACPI_PROCESSOR_CLASS,
|
||||
|
|
@ -100,10 +103,9 @@ static struct acpi_driver acpi_processor_driver = {
|
|||
.ops = {
|
||||
.add = acpi_processor_add,
|
||||
.remove = acpi_processor_remove,
|
||||
.suspend = acpi_processor_suspend,
|
||||
.resume = acpi_processor_resume,
|
||||
.notify = acpi_processor_notify,
|
||||
},
|
||||
.drv.pm = &acpi_processor_pm,
|
||||
};
|
||||
|
||||
#define INSTALL_NOTIFY_HANDLER 1
|
||||
|
|
|
|||
|
|
@ -237,13 +237,13 @@ static void acpi_idle_bm_rld_restore(void)
|
|||
acpi_write_bit_register(ACPI_BITREG_BUS_MASTER_RLD, saved_bm_rld);
|
||||
}
|
||||
|
||||
int acpi_processor_suspend(struct acpi_device * device, pm_message_t state)
|
||||
int acpi_processor_suspend(struct device *dev)
|
||||
{
|
||||
acpi_idle_bm_rld_save();
|
||||
return 0;
|
||||
}
|
||||
|
||||
int acpi_processor_resume(struct acpi_device * device)
|
||||
int acpi_processor_resume(struct device *dev)
|
||||
{
|
||||
acpi_idle_bm_rld_restore();
|
||||
return 0;
|
||||
|
|
|
|||
|
|
@ -988,16 +988,18 @@ static void acpi_sbs_rmdirs(void)
|
|||
#endif
|
||||
}
|
||||
|
||||
static int acpi_sbs_resume(struct acpi_device *device)
|
||||
static int acpi_sbs_resume(struct device *dev)
|
||||
{
|
||||
struct acpi_sbs *sbs;
|
||||
if (!device)
|
||||
if (!dev)
|
||||
return -EINVAL;
|
||||
sbs = device->driver_data;
|
||||
sbs = to_acpi_device(dev)->driver_data;
|
||||
acpi_sbs_callback(sbs);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static SIMPLE_DEV_PM_OPS(acpi_sbs_pm, NULL, acpi_sbs_resume);
|
||||
|
||||
static struct acpi_driver acpi_sbs_driver = {
|
||||
.name = "sbs",
|
||||
.class = ACPI_SBS_CLASS,
|
||||
|
|
@ -1005,8 +1007,8 @@ static struct acpi_driver acpi_sbs_driver = {
|
|||
.ops = {
|
||||
.add = acpi_sbs_add,
|
||||
.remove = acpi_sbs_remove,
|
||||
.resume = acpi_sbs_resume,
|
||||
},
|
||||
.drv.pm = &acpi_sbs_pm,
|
||||
};
|
||||
|
||||
static int __init acpi_sbs_init(void)
|
||||
|
|
|
|||
|
|
@ -290,26 +290,6 @@ static void acpi_device_release(struct device *dev)
|
|||
kfree(acpi_dev);
|
||||
}
|
||||
|
||||
static int acpi_device_suspend(struct device *dev, pm_message_t state)
|
||||
{
|
||||
struct acpi_device *acpi_dev = to_acpi_device(dev);
|
||||
struct acpi_driver *acpi_drv = acpi_dev->driver;
|
||||
|
||||
if (acpi_drv && acpi_drv->ops.suspend)
|
||||
return acpi_drv->ops.suspend(acpi_dev, state);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int acpi_device_resume(struct device *dev)
|
||||
{
|
||||
struct acpi_device *acpi_dev = to_acpi_device(dev);
|
||||
struct acpi_driver *acpi_drv = acpi_dev->driver;
|
||||
|
||||
if (acpi_drv && acpi_drv->ops.resume)
|
||||
return acpi_drv->ops.resume(acpi_dev);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int acpi_bus_match(struct device *dev, struct device_driver *drv)
|
||||
{
|
||||
struct acpi_device *acpi_dev = to_acpi_device(dev);
|
||||
|
|
@ -441,8 +421,6 @@ static int acpi_device_remove(struct device * dev)
|
|||
|
||||
struct bus_type acpi_bus_type = {
|
||||
.name = "acpi",
|
||||
.suspend = acpi_device_suspend,
|
||||
.resume = acpi_device_resume,
|
||||
.match = acpi_bus_match,
|
||||
.probe = acpi_device_probe,
|
||||
.remove = acpi_device_remove,
|
||||
|
|
|
|||
|
|
@ -98,7 +98,6 @@ MODULE_PARM_DESC(psv, "Disable or override all passive trip points.");
|
|||
|
||||
static int acpi_thermal_add(struct acpi_device *device);
|
||||
static int acpi_thermal_remove(struct acpi_device *device, int type);
|
||||
static int acpi_thermal_resume(struct acpi_device *device);
|
||||
static void acpi_thermal_notify(struct acpi_device *device, u32 event);
|
||||
|
||||
static const struct acpi_device_id thermal_device_ids[] = {
|
||||
|
|
@ -107,6 +106,9 @@ static const struct acpi_device_id thermal_device_ids[] = {
|
|||
};
|
||||
MODULE_DEVICE_TABLE(acpi, thermal_device_ids);
|
||||
|
||||
static int acpi_thermal_resume(struct device *dev);
|
||||
static SIMPLE_DEV_PM_OPS(acpi_thermal_pm, NULL, acpi_thermal_resume);
|
||||
|
||||
static struct acpi_driver acpi_thermal_driver = {
|
||||
.name = "thermal",
|
||||
.class = ACPI_THERMAL_CLASS,
|
||||
|
|
@ -114,9 +116,9 @@ static struct acpi_driver acpi_thermal_driver = {
|
|||
.ops = {
|
||||
.add = acpi_thermal_add,
|
||||
.remove = acpi_thermal_remove,
|
||||
.resume = acpi_thermal_resume,
|
||||
.notify = acpi_thermal_notify,
|
||||
},
|
||||
.drv.pm = &acpi_thermal_pm,
|
||||
};
|
||||
|
||||
struct acpi_thermal_state {
|
||||
|
|
@ -1041,16 +1043,17 @@ static int acpi_thermal_remove(struct acpi_device *device, int type)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int acpi_thermal_resume(struct acpi_device *device)
|
||||
static int acpi_thermal_resume(struct device *dev)
|
||||
{
|
||||
struct acpi_thermal *tz = NULL;
|
||||
struct acpi_thermal *tz;
|
||||
int i, j, power_state, result;
|
||||
|
||||
|
||||
if (!device || !acpi_driver_data(device))
|
||||
if (!dev)
|
||||
return -EINVAL;
|
||||
|
||||
tz = acpi_driver_data(device);
|
||||
tz = acpi_driver_data(to_acpi_device(dev));
|
||||
if (!tz)
|
||||
return -EINVAL;
|
||||
|
||||
for (i = 0; i < ACPI_THERMAL_MAX_ACTIVE; i++) {
|
||||
if (!(&tz->trips.active[i]))
|
||||
|
|
|
|||
Loading…
Reference in a new issue