Lines Matching defs:governor

29 #include "governor.h"
257 * find_devfreq_governor() - find devfreq governor from name
258 * @name: name of the governor
261 * governor's pointer. devfreq_list_lock should be held by the caller.
285 * try_then_request_governor() - Try to find the governor and request the
287 * @name: name of the governor
290 * if is not found. This can happen when both drivers (the governor driver
293 * governor's pointer or an error pointer.
297 struct devfreq_governor *governor;
307 governor = find_devfreq_governor(name);
308 if (IS_ERR(governor)) {
322 governor = find_devfreq_governor(name);
325 return governor;
405 if (!devfreq->governor) {
410 err = devfreq->governor->get_target_freq(devfreq, &freq);
457 * to be called from governor in response to DEVFREQ_GOV_START
462 if (devfreq->governor->interrupt_driven) {
488 * to be called from governor in response to DEVFREQ_GOV_STOP
493 if (devfreq->governor->interrupt_driven) {
506 * to be called from governor in response to DEVFREQ_GOV_SUSPEND
525 if (devfreq->governor->interrupt_driven) {
538 * to be called from governor in response to DEVFREQ_GOV_RESUME
550 if (devfreq->governor->interrupt_driven) {
577 * to be called from governor in response to DEVFREQ_GOV_UPDATE_INTERVAL event.
591 if (devfreq->governor->interrupt_driven) {
753 if (devfreq->governor) {
754 devfreq->governor->event_handler(devfreq, DEVFREQ_GOV_STOP, NULL);
767 * @data: private data for the governor. The devfreq framework does not
774 struct devfreq_governor *governor;
898 governor = try_then_request_governor(devfreq->governor_name);
899 if (IS_ERR(governor)) {
900 dev_err(dev, "%s: Unable to find governor for the device\n", __func__);
901 err = PTR_ERR(governor);
905 devfreq->governor = governor;
906 err = devfreq->governor->event_handler(devfreq, DEVFREQ_GOV_START, NULL);
908 dev_err(dev, "%s: Unable to start governor for the device\n", __func__);
951 * @data: private data for the governor. The devfreq framework does not
1086 if (devfreq->governor) {
1087 ret = devfreq->governor->event_handler(devfreq, DEVFREQ_GOV_SUSPEND, NULL);
1135 if (devfreq->governor) {
1136 ret = devfreq->governor->event_handler(devfreq, DEVFREQ_GOV_RESUME, NULL);
1193 * devfreq_add_governor() - Add devfreq governor
1194 * @governor: the devfreq governor to be added
1196 int devfreq_add_governor(struct devfreq_governor *governor)
1202 if (!governor) {
1208 g = find_devfreq_governor(governor->name);
1210 pr_err("%s: governor %s already registered\n", __func__, g->name);
1215 list_add(&governor->node, &devfreq_governor_list);
1222 if (!strncmp(devfreq->governor_name, governor->name, DEVFREQ_NAME_LEN)) {
1224 if (devfreq->governor) {
1225 dev_warn(dev, "%s: Governor %s already present\n", __func__, devfreq->governor->name);
1226 ret = devfreq->governor->event_handler(devfreq, DEVFREQ_GOV_STOP, NULL);
1228 dev_warn(dev, "%s: Governor %s stop = %d\n", __func__, devfreq->governor->name, ret);
1232 devfreq->governor = governor;
1233 ret = devfreq->governor->event_handler(devfreq, DEVFREQ_GOV_START, NULL);
1235 dev_warn(dev, "%s: Governor %s start=%d\n", __func__, devfreq->governor->name, ret);
1249 * @governor: the devfreq governor to be removed
1251 int devfreq_remove_governor(struct devfreq_governor *governor)
1257 if (!governor) {
1263 g = find_devfreq_governor(governor->name);
1265 pr_err("%s: governor %s not registered\n", __func__, governor->name);
1274 if (!strncmp(devfreq->governor_name, governor->name, DEVFREQ_NAME_LEN)) {
1275 /* we should have a devfreq governor! */
1276 if (!devfreq->governor) {
1277 dev_warn(dev, "%s: Governor %s NOT present\n", __func__, governor->name);
1281 ret = devfreq->governor->event_handler(devfreq, DEVFREQ_GOV_STOP, NULL);
1283 dev_warn(dev, "%s: Governor %s stop=%d\n", __func__, devfreq->governor->name, ret);
1285 devfreq->governor = NULL;
1289 list_del(&governor->node);
1308 if (!df->governor) {
1312 return sprintf(buf, "%s\n", df->governor->name);
1320 const struct devfreq_governor *governor, *prev_governor;
1322 if (!df->governor) {
1332 governor = try_then_request_governor(str_governor);
1333 if (IS_ERR(governor)) {
1334 ret = PTR_ERR(governor);
1337 if (df->governor == governor) {
1340 } else if (df->governor->immutable || governor->immutable) {
1345 ret = df->governor->event_handler(df, DEVFREQ_GOV_STOP, NULL);
1347 dev_warn(dev, "%s: Governor %s not stopped(%d)\n", __func__, df->governor->name, ret);
1351 prev_governor = df->governor;
1352 df->governor = governor;
1353 strncpy(df->governor_name, governor->name, DEVFREQ_NAME_LEN);
1354 ret = df->governor->event_handler(df, DEVFREQ_GOV_START, NULL);
1356 dev_warn(dev, "%s: Governor %s not started(%d)\n", __func__, df->governor->name, ret);
1357 df->governor = prev_governor;
1359 ret = df->governor->event_handler(df, DEVFREQ_GOV_START, NULL);
1362 df->governor = NULL;
1373 static DEVICE_ATTR_RW(governor);
1380 if (!df->governor) {
1387 * The devfreq with immutable governor (e.g., passive) shows
1388 * only own governor.
1390 if (df->governor->immutable) {
1393 * The devfreq device shows the registered governor except for
1394 * immutable governors such as passive governor .
1397 struct devfreq_governor *governor;
1399 list_for_each_entry(governor, &devfreq_governor_list, node)
1401 if (governor->immutable) {
1404 count += scnprintf(&buf[count], (PAGE_SIZE - count - 0x2), "%s ", governor->name);
1463 if (!df->governor) {
1472 df->governor->event_handler(df, DEVFREQ_GOV_UPDATE_INTERVAL, &value);
1700 if (!df->governor || !df->profile) {
1730 ret = df->governor->event_handler(df, DEVFREQ_GOV_STOP, NULL);
1732 dev_warn(dev, "%s: Governor %s not stopped(%d)\n", __func__, df->governor->name, ret);
1736 ret = df->governor->event_handler(df, DEVFREQ_GOV_START, NULL);
1738 dev_warn(dev, "%s: Governor %s not started(%d)\n", __func__, df->governor->name, ret);
1816 seq_printf(s, "%-30s %-30s %-15s %-10s %10s %12s %12s %12s\n", "dev", "parent_dev", "governor", "timer",