Lines Matching defs:governor
29 #include "governor.h"
256 * find_devfreq_governor() - find devfreq governor from name
257 * @name: name of the governor
260 * governor's pointer. devfreq_list_lock should be held by the caller.
282 * try_then_request_governor() - Try to find the governor and request the
284 * @name: name of the governor
287 * if is not found. This can happen when both drivers (the governor driver
290 * governor's pointer or an error pointer.
294 struct devfreq_governor *governor;
304 governor = find_devfreq_governor(name);
305 if (IS_ERR(governor)) {
318 governor = find_devfreq_governor(name);
321 return governor;
402 if (!devfreq->governor)
406 err = devfreq->governor->get_target_freq(devfreq, &freq);
458 * to be called from governor in response to DEVFREQ_GOV_START
463 if (devfreq->governor->interrupt_driven)
496 * to be called from governor in response to DEVFREQ_GOV_STOP
501 if (devfreq->governor->interrupt_driven)
521 * to be called from governor in response to DEVFREQ_GOV_SUSPEND
540 if (devfreq->governor->interrupt_driven)
552 * to be called from governor in response to DEVFREQ_GOV_RESUME
563 if (devfreq->governor->interrupt_driven)
590 * to be called from governor in response to DEVFREQ_GOV_UPDATE_INTERVAL event.
603 if (devfreq->governor->interrupt_driven)
764 * @data: devfreq driver pass to governors, governor should not change it.
772 struct devfreq_governor *governor;
901 governor = try_then_request_governor(devfreq->governor_name);
902 if (IS_ERR(governor)) {
903 dev_err(dev, "%s: Unable to find governor for the device\n",
905 err = PTR_ERR(governor);
909 devfreq->governor = governor;
910 err = devfreq->governor->event_handler(devfreq, DEVFREQ_GOV_START,
913 dev_err(dev, "%s: Unable to start governor for the device\n",
947 if (devfreq->governor)
948 devfreq->governor->event_handler(devfreq,
976 * @data: devfreq driver pass to governors, governor should not change it.
1108 if (devfreq->governor) {
1109 ret = devfreq->governor->event_handler(devfreq,
1153 if (devfreq->governor) {
1154 ret = devfreq->governor->event_handler(devfreq,
1209 * devfreq_add_governor() - Add devfreq governor
1210 * @governor: the devfreq governor to be added
1212 int devfreq_add_governor(struct devfreq_governor *governor)
1218 if (!governor) {
1224 g = find_devfreq_governor(governor->name);
1226 pr_err("%s: governor %s already registered\n", __func__,
1232 list_add(&governor->node, &devfreq_governor_list);
1238 if (!strncmp(devfreq->governor_name, governor->name,
1241 if (devfreq->governor) {
1244 __func__, devfreq->governor->name);
1245 ret = devfreq->governor->event_handler(devfreq,
1251 devfreq->governor->name, ret);
1255 devfreq->governor = governor;
1256 ret = devfreq->governor->event_handler(devfreq,
1260 __func__, devfreq->governor->name,
1275 * @governor: the devfreq governor to be removed
1277 int devfreq_remove_governor(struct devfreq_governor *governor)
1283 if (!governor) {
1289 g = find_devfreq_governor(governor->name);
1291 pr_err("%s: governor %s not registered\n", __func__,
1292 governor->name);
1300 if (!strncmp(devfreq->governor_name, governor->name,
1302 /* we should have a devfreq governor! */
1303 if (!devfreq->governor) {
1305 __func__, governor->name);
1309 ret = devfreq->governor->event_handler(devfreq,
1313 __func__, devfreq->governor->name,
1316 devfreq->governor = NULL;
1320 list_del(&governor->node);
1341 if (!df->governor)
1344 return sprintf(buf, "%s\n", df->governor->name);
1353 const struct devfreq_governor *governor, *prev_governor;
1355 if (!df->governor)
1363 governor = try_then_request_governor(str_governor);
1364 if (IS_ERR(governor)) {
1365 ret = PTR_ERR(governor);
1368 if (df->governor == governor) {
1371 } else if (df->governor->immutable || governor->immutable) {
1376 ret = df->governor->event_handler(df, DEVFREQ_GOV_STOP, NULL);
1379 __func__, df->governor->name, ret);
1383 prev_governor = df->governor;
1384 df->governor = governor;
1385 strncpy(df->governor_name, governor->name, DEVFREQ_NAME_LEN);
1386 ret = df->governor->event_handler(df, DEVFREQ_GOV_START, NULL);
1389 __func__, df->governor->name, ret);
1390 df->governor = prev_governor;
1393 ret = df->governor->event_handler(df, DEVFREQ_GOV_START, NULL);
1398 df->governor = NULL;
1408 static DEVICE_ATTR_RW(governor);
1417 if (!df->governor)
1423 * The devfreq with immutable governor (e.g., passive) shows
1424 * only own governor.
1426 if (df->governor->immutable) {
1430 * The devfreq device shows the registered governor except for
1431 * immutable governors such as passive governor .
1434 struct devfreq_governor *governor;
1436 list_for_each_entry(governor, &devfreq_governor_list, node) {
1437 if (governor->immutable)
1440 "%s ", governor->name);
1501 if (!df->governor)
1508 df->governor->event_handler(df, DEVFREQ_GOV_UPDATE_INTERVAL, &value);
1762 if (!df->governor || !df->profile)
1790 ret = df->governor->event_handler(df, DEVFREQ_GOV_STOP, NULL);
1793 __func__, df->governor->name, ret);
1797 ret = df->governor->event_handler(df, DEVFREQ_GOV_START, NULL);
1800 __func__, df->governor->name, ret);
1843 "governor",