#include "core/common.h"
#include "core/list.h"
#include "core/device-notifier.h"
-#include "powersaver/powersaver.h"
#include "pmqos.h"
#define DEFAULT_PMQOS_TIMER 3000
_D("Set pm scenario : [Unlock]%s", name);
snprintf(scenario, sizeof(scenario), "%s%s", name, (val ? "Lock" : "Unlock"));
device_notify(DEVICE_NOTIFIER_PMQOS, (void *)scenario);
- return device_set_property(DEVICE_TYPE_CPU, PROP_CPU_PM_SCENARIO, (int)scenario);
+
+ return 0;
}
static void pmqos_unlock_timeout_update(void)
return 0;
}
-static int pmqos_powersaving(void *data)
-{
- return set_cpu_pmqos("PowerSaving", (int)data);
-}
-
-static int pmqos_lowbat(void *data)
-{
- return set_cpu_pmqos("LowBattery", (int)data);
-}
-
-static int pmqos_emergency(void *data)
-{
- return set_cpu_pmqos("Emergency", (int)data);
-}
-
-static int pmqos_poweroff(void *data)
-{
- return set_cpu_pmqos("PowerOff", (int)data);
-}
-
-static int pmqos_ultrapowersaving(void *data)
-{
- int mode;
- bool on;
-
- mode = DATA_VALUE(data);
-
- switch (mode) {
- case POWERSAVER_OFF:
- case POWERSAVER_BASIC:
- on = false;
- break;
- case POWERSAVER_ENHANCED:
- on = true;
- break;
- default:
- return -EINVAL;
- }
- return set_cpu_pmqos("UltraPowerSaving", (int)on);
-}
-
-static int pmqos_hall(void *data)
-{
- return pmqos_cpu_request("LockScreen", (int)data);
-}
-
-static int pmqos_oom(void *data)
-{
- return pmqos_cpu_request("OOMBOOST", (int)data);
-}
-
static DBusMessage *dbus_pmqos_handler(E_DBus_Object *obj, DBusMessage *msg)
{
DBusMessageIter iter;
free(methods);
}
- /* register notifier for each event */
- register_notifier(DEVICE_NOTIFIER_PMQOS_POWERSAVING, pmqos_powersaving);
- register_notifier(DEVICE_NOTIFIER_PMQOS_LOWBAT, pmqos_lowbat);
- register_notifier(DEVICE_NOTIFIER_PMQOS_EMERGENCY, pmqos_emergency);
- register_notifier(DEVICE_NOTIFIER_PMQOS_POWEROFF, pmqos_poweroff);
- register_notifier(DEVICE_NOTIFIER_PMQOS_ULTRAPOWERSAVING,
- pmqos_ultrapowersaving);
- register_notifier(DEVICE_NOTIFIER_PMQOS_HALL, pmqos_hall);
- register_notifier(DEVICE_NOTIFIER_PMQOS_OOM, pmqos_oom);
-
out:
return done;
}
static void pmqos_exit(void *data)
{
- /* unregister notifier for each event */
- unregister_notifier(DEVICE_NOTIFIER_PMQOS_POWERSAVING, pmqos_powersaving);
- unregister_notifier(DEVICE_NOTIFIER_PMQOS_LOWBAT, pmqos_lowbat);
- unregister_notifier(DEVICE_NOTIFIER_PMQOS_EMERGENCY, pmqos_emergency);
- unregister_notifier(DEVICE_NOTIFIER_PMQOS_POWEROFF, pmqos_poweroff);
- unregister_notifier(DEVICE_NOTIFIER_PMQOS_ULTRAPOWERSAVING,
- pmqos_ultrapowersaving);
- unregister_notifier(DEVICE_NOTIFIER_PMQOS_HALL, pmqos_hall);
- unregister_notifier(DEVICE_NOTIFIER_PMQOS_OOM, pmqos_oom);
}
static const struct device_ops pmqos_device_ops = {