genpd 29 drivers/base/power/domain.c #define GENPD_DEV_CALLBACK(genpd, type, callback, dev) \ genpd 34 drivers/base/power/domain.c __routine = genpd->dev_ops.callback; \ genpd 45 drivers/base/power/domain.c void (*lock)(struct generic_pm_domain *genpd); genpd 46 drivers/base/power/domain.c void (*lock_nested)(struct generic_pm_domain *genpd, int depth); genpd 47 drivers/base/power/domain.c int (*lock_interruptible)(struct generic_pm_domain *genpd); genpd 48 drivers/base/power/domain.c void (*unlock)(struct generic_pm_domain *genpd); genpd 51 drivers/base/power/domain.c static void genpd_lock_mtx(struct generic_pm_domain *genpd) genpd 53 drivers/base/power/domain.c mutex_lock(&genpd->mlock); genpd 56 drivers/base/power/domain.c static void genpd_lock_nested_mtx(struct generic_pm_domain *genpd, genpd 59 drivers/base/power/domain.c mutex_lock_nested(&genpd->mlock, depth); genpd 62 drivers/base/power/domain.c static int genpd_lock_interruptible_mtx(struct generic_pm_domain *genpd) genpd 64 drivers/base/power/domain.c return mutex_lock_interruptible(&genpd->mlock); genpd 67 drivers/base/power/domain.c static void genpd_unlock_mtx(struct generic_pm_domain *genpd) genpd 69 drivers/base/power/domain.c return mutex_unlock(&genpd->mlock); genpd 79 drivers/base/power/domain.c static void genpd_lock_spin(struct generic_pm_domain *genpd) genpd 80 drivers/base/power/domain.c __acquires(&genpd->slock) genpd 84 drivers/base/power/domain.c spin_lock_irqsave(&genpd->slock, flags); genpd 85 drivers/base/power/domain.c genpd->lock_flags = flags; genpd 88 drivers/base/power/domain.c static void genpd_lock_nested_spin(struct generic_pm_domain *genpd, genpd 90 drivers/base/power/domain.c __acquires(&genpd->slock) genpd 94 drivers/base/power/domain.c spin_lock_irqsave_nested(&genpd->slock, flags, depth); genpd 95 drivers/base/power/domain.c genpd->lock_flags = flags; genpd 98 drivers/base/power/domain.c static int genpd_lock_interruptible_spin(struct generic_pm_domain *genpd) genpd 99 drivers/base/power/domain.c __acquires(&genpd->slock) genpd 103 drivers/base/power/domain.c spin_lock_irqsave(&genpd->slock, flags); genpd 104 drivers/base/power/domain.c genpd->lock_flags = flags; genpd 108 drivers/base/power/domain.c static void genpd_unlock_spin(struct generic_pm_domain *genpd) genpd 109 drivers/base/power/domain.c __releases(&genpd->slock) genpd 111 drivers/base/power/domain.c spin_unlock_irqrestore(&genpd->slock, genpd->lock_flags); genpd 126 drivers/base/power/domain.c #define genpd_status_on(genpd) (genpd->status == GPD_STATE_ACTIVE) genpd 127 drivers/base/power/domain.c #define genpd_is_irq_safe(genpd) (genpd->flags & GENPD_FLAG_IRQ_SAFE) genpd 128 drivers/base/power/domain.c #define genpd_is_always_on(genpd) (genpd->flags & GENPD_FLAG_ALWAYS_ON) genpd 129 drivers/base/power/domain.c #define genpd_is_active_wakeup(genpd) (genpd->flags & GENPD_FLAG_ACTIVE_WAKEUP) genpd 130 drivers/base/power/domain.c #define genpd_is_cpu_domain(genpd) (genpd->flags & GENPD_FLAG_CPU_DOMAIN) genpd 131 drivers/base/power/domain.c #define genpd_is_rpm_always_on(genpd) (genpd->flags & GENPD_FLAG_RPM_ALWAYS_ON) genpd 134 drivers/base/power/domain.c const struct generic_pm_domain *genpd) genpd 138 drivers/base/power/domain.c ret = pm_runtime_is_irq_safe(dev) && !genpd_is_irq_safe(genpd); genpd 145 drivers/base/power/domain.c if (ret && !genpd_is_always_on(genpd)) genpd 147 drivers/base/power/domain.c genpd->name); genpd 184 drivers/base/power/domain.c static int genpd_stop_dev(const struct generic_pm_domain *genpd, genpd 187 drivers/base/power/domain.c return GENPD_DEV_CALLBACK(genpd, int, stop, dev); genpd 190 drivers/base/power/domain.c static int genpd_start_dev(const struct generic_pm_domain *genpd, genpd 193 drivers/base/power/domain.c return GENPD_DEV_CALLBACK(genpd, int, start, dev); genpd 196 drivers/base/power/domain.c static bool genpd_sd_counter_dec(struct generic_pm_domain *genpd) genpd 200 drivers/base/power/domain.c if (!WARN_ON(atomic_read(&genpd->sd_count) == 0)) genpd 201 drivers/base/power/domain.c ret = !!atomic_dec_and_test(&genpd->sd_count); genpd 206 drivers/base/power/domain.c static void genpd_sd_counter_inc(struct generic_pm_domain *genpd) genpd 208 drivers/base/power/domain.c atomic_inc(&genpd->sd_count); genpd 213 drivers/base/power/domain.c static void genpd_update_accounting(struct generic_pm_domain *genpd) genpd 218 drivers/base/power/domain.c delta = ktime_sub(now, genpd->accounting_time); genpd 225 drivers/base/power/domain.c if (genpd->status == GPD_STATE_ACTIVE) { genpd 226 drivers/base/power/domain.c int state_idx = genpd->state_idx; genpd 228 drivers/base/power/domain.c genpd->states[state_idx].idle_time = genpd 229 drivers/base/power/domain.c ktime_add(genpd->states[state_idx].idle_time, delta); genpd 231 drivers/base/power/domain.c genpd->on_time = ktime_add(genpd->on_time, delta); genpd 234 drivers/base/power/domain.c genpd->accounting_time = now; genpd 237 drivers/base/power/domain.c static inline void genpd_update_accounting(struct generic_pm_domain *genpd) {} genpd 240 drivers/base/power/domain.c static int _genpd_reeval_performance_state(struct generic_pm_domain *genpd, genpd 248 drivers/base/power/domain.c if (state == genpd->performance_state) genpd 252 drivers/base/power/domain.c if (state > genpd->performance_state) genpd 256 drivers/base/power/domain.c list_for_each_entry(pdd, &genpd->dev_list, list_node) { genpd 277 drivers/base/power/domain.c list_for_each_entry(link, &genpd->master_links, master_node) { genpd 285 drivers/base/power/domain.c static int _genpd_set_performance_state(struct generic_pm_domain *genpd, genpd 292 drivers/base/power/domain.c if (state == genpd->performance_state) genpd 296 drivers/base/power/domain.c list_for_each_entry(link, &genpd->slave_links, slave_node) { genpd 303 drivers/base/power/domain.c ret = dev_pm_opp_xlate_performance_state(genpd->opp_table, genpd 327 drivers/base/power/domain.c ret = genpd->set_performance_state(genpd, state); genpd 331 drivers/base/power/domain.c genpd->performance_state = state; genpd 336 drivers/base/power/domain.c list_for_each_entry_continue_reverse(link, &genpd->slave_links, genpd 378 drivers/base/power/domain.c struct generic_pm_domain *genpd; genpd 383 drivers/base/power/domain.c genpd = dev_to_genpd_safe(dev); genpd 384 drivers/base/power/domain.c if (!genpd) genpd 387 drivers/base/power/domain.c if (unlikely(!genpd->set_performance_state)) genpd 394 drivers/base/power/domain.c genpd_lock(genpd); genpd 400 drivers/base/power/domain.c state = _genpd_reeval_performance_state(genpd, state); genpd 401 drivers/base/power/domain.c ret = _genpd_set_performance_state(genpd, state, 0); genpd 405 drivers/base/power/domain.c genpd_unlock(genpd); genpd 411 drivers/base/power/domain.c static int _genpd_power_on(struct generic_pm_domain *genpd, bool timed) genpd 413 drivers/base/power/domain.c unsigned int state_idx = genpd->state_idx; genpd 418 drivers/base/power/domain.c if (!genpd->power_on) genpd 422 drivers/base/power/domain.c return genpd->power_on(genpd); genpd 425 drivers/base/power/domain.c ret = genpd->power_on(genpd); genpd 430 drivers/base/power/domain.c if (elapsed_ns <= genpd->states[state_idx].power_on_latency_ns) genpd 433 drivers/base/power/domain.c genpd->states[state_idx].power_on_latency_ns = elapsed_ns; genpd 434 drivers/base/power/domain.c genpd->max_off_time_changed = true; genpd 436 drivers/base/power/domain.c genpd->name, "on", elapsed_ns); genpd 441 drivers/base/power/domain.c static int _genpd_power_off(struct generic_pm_domain *genpd, bool timed) genpd 443 drivers/base/power/domain.c unsigned int state_idx = genpd->state_idx; genpd 448 drivers/base/power/domain.c if (!genpd->power_off) genpd 452 drivers/base/power/domain.c return genpd->power_off(genpd); genpd 455 drivers/base/power/domain.c ret = genpd->power_off(genpd); genpd 460 drivers/base/power/domain.c if (elapsed_ns <= genpd->states[state_idx].power_off_latency_ns) genpd 463 drivers/base/power/domain.c genpd->states[state_idx].power_off_latency_ns = elapsed_ns; genpd 464 drivers/base/power/domain.c genpd->max_off_time_changed = true; genpd 466 drivers/base/power/domain.c genpd->name, "off", elapsed_ns); genpd 478 drivers/base/power/domain.c static void genpd_queue_power_off_work(struct generic_pm_domain *genpd) genpd 480 drivers/base/power/domain.c queue_work(pm_wq, &genpd->power_off_work); genpd 494 drivers/base/power/domain.c static int genpd_power_off(struct generic_pm_domain *genpd, bool one_dev_on, genpd 506 drivers/base/power/domain.c if (!genpd_status_on(genpd) || genpd->prepared_count > 0) genpd 514 drivers/base/power/domain.c if (genpd_is_always_on(genpd) || genpd 515 drivers/base/power/domain.c genpd_is_rpm_always_on(genpd) || genpd 516 drivers/base/power/domain.c atomic_read(&genpd->sd_count) > 0) genpd 519 drivers/base/power/domain.c list_for_each_entry(pdd, &genpd->dev_list, list_node) { genpd 531 drivers/base/power/domain.c irq_safe_dev_in_no_sleep_domain(pdd->dev, genpd)) genpd 538 drivers/base/power/domain.c if (genpd->gov && genpd->gov->power_down_ok) { genpd 539 drivers/base/power/domain.c if (!genpd->gov->power_down_ok(&genpd->domain)) genpd 544 drivers/base/power/domain.c if (!genpd->gov) genpd 545 drivers/base/power/domain.c genpd->state_idx = 0; genpd 547 drivers/base/power/domain.c if (genpd->power_off) { genpd 550 drivers/base/power/domain.c if (atomic_read(&genpd->sd_count) > 0) genpd 561 drivers/base/power/domain.c ret = _genpd_power_off(genpd, true); genpd 566 drivers/base/power/domain.c genpd->status = GPD_STATE_POWER_OFF; genpd 567 drivers/base/power/domain.c genpd_update_accounting(genpd); genpd 569 drivers/base/power/domain.c list_for_each_entry(link, &genpd->slave_links, slave_node) { genpd 587 drivers/base/power/domain.c static int genpd_power_on(struct generic_pm_domain *genpd, unsigned int depth) genpd 592 drivers/base/power/domain.c if (genpd_status_on(genpd)) genpd 600 drivers/base/power/domain.c list_for_each_entry(link, &genpd->slave_links, slave_node) { genpd 615 drivers/base/power/domain.c ret = _genpd_power_on(genpd, true); genpd 619 drivers/base/power/domain.c genpd->status = GPD_STATE_ACTIVE; genpd 620 drivers/base/power/domain.c genpd_update_accounting(genpd); genpd 626 drivers/base/power/domain.c &genpd->slave_links, genpd 647 drivers/base/power/domain.c struct generic_pm_domain *genpd; genpd 656 drivers/base/power/domain.c genpd = dev_to_genpd(dev); genpd 658 drivers/base/power/domain.c genpd = ERR_PTR(-ENODATA); genpd 663 drivers/base/power/domain.c if (!IS_ERR(genpd)) { genpd 664 drivers/base/power/domain.c genpd_lock(genpd); genpd 665 drivers/base/power/domain.c genpd->max_off_time_changed = true; genpd 666 drivers/base/power/domain.c genpd_unlock(genpd); genpd 683 drivers/base/power/domain.c struct generic_pm_domain *genpd; genpd 685 drivers/base/power/domain.c genpd = container_of(work, struct generic_pm_domain, power_off_work); genpd 687 drivers/base/power/domain.c genpd_lock(genpd); genpd 688 drivers/base/power/domain.c genpd_power_off(genpd, false, 0); genpd 689 drivers/base/power/domain.c genpd_unlock(genpd); genpd 748 drivers/base/power/domain.c struct generic_pm_domain *genpd; genpd 758 drivers/base/power/domain.c genpd = dev_to_genpd(dev); genpd 759 drivers/base/power/domain.c if (IS_ERR(genpd)) genpd 768 drivers/base/power/domain.c suspend_ok = genpd->gov ? genpd->gov->suspend_ok : NULL; genpd 781 drivers/base/power/domain.c ret = genpd_stop_dev(genpd, dev); genpd 794 drivers/base/power/domain.c genpd->max_off_time_changed = true; genpd 803 drivers/base/power/domain.c if (irq_safe_dev_in_no_sleep_domain(dev, genpd)) genpd 806 drivers/base/power/domain.c genpd_lock(genpd); genpd 807 drivers/base/power/domain.c genpd_power_off(genpd, true, 0); genpd 808 drivers/base/power/domain.c genpd_unlock(genpd); genpd 823 drivers/base/power/domain.c struct generic_pm_domain *genpd; genpd 833 drivers/base/power/domain.c genpd = dev_to_genpd(dev); genpd 834 drivers/base/power/domain.c if (IS_ERR(genpd)) genpd 841 drivers/base/power/domain.c if (irq_safe_dev_in_no_sleep_domain(dev, genpd)) { genpd 846 drivers/base/power/domain.c genpd_lock(genpd); genpd 847 drivers/base/power/domain.c ret = genpd_power_on(genpd, 0); genpd 848 drivers/base/power/domain.c genpd_unlock(genpd); genpd 859 drivers/base/power/domain.c ret = genpd_start_dev(genpd, dev); genpd 874 drivers/base/power/domain.c genpd->max_off_time_changed = true; genpd 882 drivers/base/power/domain.c genpd_stop_dev(genpd, dev); genpd 885 drivers/base/power/domain.c (pm_runtime_is_irq_safe(dev) && genpd_is_irq_safe(genpd))) { genpd 886 drivers/base/power/domain.c genpd_lock(genpd); genpd 887 drivers/base/power/domain.c genpd_power_off(genpd, true, 0); genpd 888 drivers/base/power/domain.c genpd_unlock(genpd); genpd 907 drivers/base/power/domain.c struct generic_pm_domain *genpd; genpd 916 drivers/base/power/domain.c list_for_each_entry(genpd, &gpd_list, gpd_list_node) genpd 917 drivers/base/power/domain.c genpd_queue_power_off_work(genpd); genpd 927 drivers/base/power/domain.c static bool genpd_present(const struct generic_pm_domain *genpd) genpd 931 drivers/base/power/domain.c if (IS_ERR_OR_NULL(genpd)) genpd 935 drivers/base/power/domain.c if (gpd == genpd) genpd 958 drivers/base/power/domain.c static void genpd_sync_power_off(struct generic_pm_domain *genpd, bool use_lock, genpd 963 drivers/base/power/domain.c if (!genpd_status_on(genpd) || genpd_is_always_on(genpd)) genpd 966 drivers/base/power/domain.c if (genpd->suspended_count != genpd->device_count genpd 967 drivers/base/power/domain.c || atomic_read(&genpd->sd_count) > 0) genpd 971 drivers/base/power/domain.c genpd->state_idx = genpd->state_count - 1; genpd 972 drivers/base/power/domain.c if (_genpd_power_off(genpd, false)) genpd 975 drivers/base/power/domain.c genpd->status = GPD_STATE_POWER_OFF; genpd 977 drivers/base/power/domain.c list_for_each_entry(link, &genpd->slave_links, slave_node) { genpd 1000 drivers/base/power/domain.c static void genpd_sync_power_on(struct generic_pm_domain *genpd, bool use_lock, genpd 1005 drivers/base/power/domain.c if (genpd_status_on(genpd)) genpd 1008 drivers/base/power/domain.c list_for_each_entry(link, &genpd->slave_links, slave_node) { genpd 1020 drivers/base/power/domain.c _genpd_power_on(genpd, false); genpd 1022 drivers/base/power/domain.c genpd->status = GPD_STATE_ACTIVE; genpd 1042 drivers/base/power/domain.c const struct generic_pm_domain *genpd) genpd 1049 drivers/base/power/domain.c active_wakeup = genpd_is_active_wakeup(genpd); genpd 1064 drivers/base/power/domain.c struct generic_pm_domain *genpd; genpd 1069 drivers/base/power/domain.c genpd = dev_to_genpd(dev); genpd 1070 drivers/base/power/domain.c if (IS_ERR(genpd)) genpd 1078 drivers/base/power/domain.c if (resume_needed(dev, genpd)) genpd 1081 drivers/base/power/domain.c genpd_lock(genpd); genpd 1083 drivers/base/power/domain.c if (genpd->prepared_count++ == 0) genpd 1084 drivers/base/power/domain.c genpd->suspended_count = 0; genpd 1086 drivers/base/power/domain.c genpd_unlock(genpd); genpd 1090 drivers/base/power/domain.c genpd_lock(genpd); genpd 1092 drivers/base/power/domain.c genpd->prepared_count--; genpd 1094 drivers/base/power/domain.c genpd_unlock(genpd); genpd 1112 drivers/base/power/domain.c struct generic_pm_domain *genpd; genpd 1115 drivers/base/power/domain.c genpd = dev_to_genpd(dev); genpd 1116 drivers/base/power/domain.c if (IS_ERR(genpd)) genpd 1126 drivers/base/power/domain.c if (dev->power.wakeup_path && genpd_is_active_wakeup(genpd)) genpd 1129 drivers/base/power/domain.c if (genpd->dev_ops.stop && genpd->dev_ops.start && genpd 1131 drivers/base/power/domain.c ret = genpd_stop_dev(genpd, dev); genpd 1141 drivers/base/power/domain.c genpd_lock(genpd); genpd 1142 drivers/base/power/domain.c genpd->suspended_count++; genpd 1143 drivers/base/power/domain.c genpd_sync_power_off(genpd, true, 0); genpd 1144 drivers/base/power/domain.c genpd_unlock(genpd); genpd 1171 drivers/base/power/domain.c struct generic_pm_domain *genpd; genpd 1176 drivers/base/power/domain.c genpd = dev_to_genpd(dev); genpd 1177 drivers/base/power/domain.c if (IS_ERR(genpd)) genpd 1180 drivers/base/power/domain.c if (dev->power.wakeup_path && genpd_is_active_wakeup(genpd)) genpd 1183 drivers/base/power/domain.c genpd_lock(genpd); genpd 1184 drivers/base/power/domain.c genpd_sync_power_on(genpd, true, 0); genpd 1185 drivers/base/power/domain.c genpd->suspended_count--; genpd 1186 drivers/base/power/domain.c genpd_unlock(genpd); genpd 1188 drivers/base/power/domain.c if (genpd->dev_ops.stop && genpd->dev_ops.start && genpd 1190 drivers/base/power/domain.c ret = genpd_start_dev(genpd, dev); genpd 1209 drivers/base/power/domain.c const struct generic_pm_domain *genpd; genpd 1214 drivers/base/power/domain.c genpd = dev_to_genpd(dev); genpd 1215 drivers/base/power/domain.c if (IS_ERR(genpd)) genpd 1222 drivers/base/power/domain.c if (genpd->dev_ops.stop && genpd->dev_ops.start && genpd 1224 drivers/base/power/domain.c ret = genpd_stop_dev(genpd, dev); genpd 1238 drivers/base/power/domain.c const struct generic_pm_domain *genpd; genpd 1243 drivers/base/power/domain.c genpd = dev_to_genpd(dev); genpd 1244 drivers/base/power/domain.c if (IS_ERR(genpd)) genpd 1247 drivers/base/power/domain.c if (genpd->dev_ops.stop && genpd->dev_ops.start && genpd 1249 drivers/base/power/domain.c ret = genpd_start_dev(genpd, dev); genpd 1281 drivers/base/power/domain.c struct generic_pm_domain *genpd; genpd 1286 drivers/base/power/domain.c genpd = dev_to_genpd(dev); genpd 1287 drivers/base/power/domain.c if (IS_ERR(genpd)) genpd 1294 drivers/base/power/domain.c genpd_lock(genpd); genpd 1295 drivers/base/power/domain.c if (genpd->suspended_count++ == 0) genpd 1301 drivers/base/power/domain.c genpd->status = GPD_STATE_POWER_OFF; genpd 1303 drivers/base/power/domain.c genpd_sync_power_on(genpd, true, 0); genpd 1304 drivers/base/power/domain.c genpd_unlock(genpd); genpd 1306 drivers/base/power/domain.c if (genpd->dev_ops.stop && genpd->dev_ops.start && genpd 1308 drivers/base/power/domain.c ret = genpd_start_dev(genpd, dev); genpd 1327 drivers/base/power/domain.c struct generic_pm_domain *genpd; genpd 1331 drivers/base/power/domain.c genpd = dev_to_genpd(dev); genpd 1332 drivers/base/power/domain.c if (IS_ERR(genpd)) genpd 1337 drivers/base/power/domain.c genpd_lock(genpd); genpd 1339 drivers/base/power/domain.c genpd->prepared_count--; genpd 1340 drivers/base/power/domain.c if (!genpd->prepared_count) genpd 1341 drivers/base/power/domain.c genpd_queue_power_off_work(genpd); genpd 1343 drivers/base/power/domain.c genpd_unlock(genpd); genpd 1355 drivers/base/power/domain.c struct generic_pm_domain *genpd; genpd 1357 drivers/base/power/domain.c genpd = dev_to_genpd(dev); genpd 1358 drivers/base/power/domain.c if (!genpd_present(genpd)) genpd 1362 drivers/base/power/domain.c genpd->suspended_count++; genpd 1363 drivers/base/power/domain.c genpd_sync_power_off(genpd, false, 0); genpd 1365 drivers/base/power/domain.c genpd_sync_power_on(genpd, false, 0); genpd 1366 drivers/base/power/domain.c genpd->suspended_count--; genpd 1449 drivers/base/power/domain.c static void genpd_update_cpumask(struct generic_pm_domain *genpd, genpd 1454 drivers/base/power/domain.c if (!genpd_is_cpu_domain(genpd)) genpd 1457 drivers/base/power/domain.c list_for_each_entry(link, &genpd->slave_links, slave_node) { genpd 1466 drivers/base/power/domain.c cpumask_set_cpu(cpu, genpd->cpus); genpd 1468 drivers/base/power/domain.c cpumask_clear_cpu(cpu, genpd->cpus); genpd 1471 drivers/base/power/domain.c static void genpd_set_cpumask(struct generic_pm_domain *genpd, int cpu) genpd 1474 drivers/base/power/domain.c genpd_update_cpumask(genpd, cpu, true, 0); genpd 1477 drivers/base/power/domain.c static void genpd_clear_cpumask(struct generic_pm_domain *genpd, int cpu) genpd 1480 drivers/base/power/domain.c genpd_update_cpumask(genpd, cpu, false, 0); genpd 1483 drivers/base/power/domain.c static int genpd_get_cpu(struct generic_pm_domain *genpd, struct device *dev) genpd 1487 drivers/base/power/domain.c if (!genpd_is_cpu_domain(genpd)) genpd 1498 drivers/base/power/domain.c static int genpd_add_device(struct generic_pm_domain *genpd, struct device *dev, genpd 1506 drivers/base/power/domain.c if (IS_ERR_OR_NULL(genpd) || IS_ERR_OR_NULL(dev)) genpd 1513 drivers/base/power/domain.c gpd_data->cpu = genpd_get_cpu(genpd, base_dev); genpd 1515 drivers/base/power/domain.c ret = genpd->attach_dev ? genpd->attach_dev(genpd, dev) : 0; genpd 1519 drivers/base/power/domain.c genpd_lock(genpd); genpd 1521 drivers/base/power/domain.c genpd_set_cpumask(genpd, gpd_data->cpu); genpd 1522 drivers/base/power/domain.c dev_pm_domain_set(dev, &genpd->domain); genpd 1524 drivers/base/power/domain.c genpd->device_count++; genpd 1525 drivers/base/power/domain.c genpd->max_off_time_changed = true; genpd 1527 drivers/base/power/domain.c list_add_tail(&gpd_data->base.list_node, &genpd->dev_list); genpd 1529 drivers/base/power/domain.c genpd_unlock(genpd); genpd 1545 drivers/base/power/domain.c int pm_genpd_add_device(struct generic_pm_domain *genpd, struct device *dev) genpd 1550 drivers/base/power/domain.c ret = genpd_add_device(genpd, dev, dev); genpd 1557 drivers/base/power/domain.c static int genpd_remove_device(struct generic_pm_domain *genpd, genpd 1571 drivers/base/power/domain.c genpd_lock(genpd); genpd 1573 drivers/base/power/domain.c if (genpd->prepared_count > 0) { genpd 1578 drivers/base/power/domain.c genpd->device_count--; genpd 1579 drivers/base/power/domain.c genpd->max_off_time_changed = true; genpd 1581 drivers/base/power/domain.c genpd_clear_cpumask(genpd, gpd_data->cpu); genpd 1586 drivers/base/power/domain.c genpd_unlock(genpd); genpd 1588 drivers/base/power/domain.c if (genpd->detach_dev) genpd 1589 drivers/base/power/domain.c genpd->detach_dev(genpd, dev); genpd 1596 drivers/base/power/domain.c genpd_unlock(genpd); genpd 1608 drivers/base/power/domain.c struct generic_pm_domain *genpd = dev_to_genpd_safe(dev); genpd 1610 drivers/base/power/domain.c if (!genpd) genpd 1613 drivers/base/power/domain.c return genpd_remove_device(genpd, dev); genpd 1617 drivers/base/power/domain.c static int genpd_add_subdomain(struct generic_pm_domain *genpd, genpd 1623 drivers/base/power/domain.c if (IS_ERR_OR_NULL(genpd) || IS_ERR_OR_NULL(subdomain) genpd 1624 drivers/base/power/domain.c || genpd == subdomain) genpd 1632 drivers/base/power/domain.c if (!genpd_is_irq_safe(genpd) && genpd_is_irq_safe(subdomain)) { genpd 1634 drivers/base/power/domain.c genpd->name, subdomain->name); genpd 1643 drivers/base/power/domain.c genpd_lock_nested(genpd, SINGLE_DEPTH_NESTING); genpd 1645 drivers/base/power/domain.c if (!genpd_status_on(genpd) && genpd_status_on(subdomain)) { genpd 1650 drivers/base/power/domain.c list_for_each_entry(itr, &genpd->master_links, master_node) { genpd 1651 drivers/base/power/domain.c if (itr->slave == subdomain && itr->master == genpd) { genpd 1657 drivers/base/power/domain.c link->master = genpd; genpd 1658 drivers/base/power/domain.c list_add_tail(&link->master_node, &genpd->master_links); genpd 1662 drivers/base/power/domain.c genpd_sd_counter_inc(genpd); genpd 1665 drivers/base/power/domain.c genpd_unlock(genpd); genpd 1677 drivers/base/power/domain.c int pm_genpd_add_subdomain(struct generic_pm_domain *genpd, genpd 1683 drivers/base/power/domain.c ret = genpd_add_subdomain(genpd, subdomain); genpd 1695 drivers/base/power/domain.c int pm_genpd_remove_subdomain(struct generic_pm_domain *genpd, genpd 1701 drivers/base/power/domain.c if (IS_ERR_OR_NULL(genpd) || IS_ERR_OR_NULL(subdomain)) genpd 1705 drivers/base/power/domain.c genpd_lock_nested(genpd, SINGLE_DEPTH_NESTING); genpd 1709 drivers/base/power/domain.c genpd->name, subdomain->name); genpd 1714 drivers/base/power/domain.c list_for_each_entry_safe(link, l, &genpd->master_links, master_node) { genpd 1722 drivers/base/power/domain.c genpd_sd_counter_dec(genpd); genpd 1729 drivers/base/power/domain.c genpd_unlock(genpd); genpd 1742 drivers/base/power/domain.c static int genpd_set_default_power_state(struct generic_pm_domain *genpd) genpd 1750 drivers/base/power/domain.c genpd->states = state; genpd 1751 drivers/base/power/domain.c genpd->state_count = 1; genpd 1752 drivers/base/power/domain.c genpd->free_states = genpd_free_default_power_state; genpd 1757 drivers/base/power/domain.c static void genpd_lock_init(struct generic_pm_domain *genpd) genpd 1759 drivers/base/power/domain.c if (genpd->flags & GENPD_FLAG_IRQ_SAFE) { genpd 1760 drivers/base/power/domain.c spin_lock_init(&genpd->slock); genpd 1761 drivers/base/power/domain.c genpd->lock_ops = &genpd_spin_ops; genpd 1763 drivers/base/power/domain.c mutex_init(&genpd->mlock); genpd 1764 drivers/base/power/domain.c genpd->lock_ops = &genpd_mtx_ops; genpd 1776 drivers/base/power/domain.c int pm_genpd_init(struct generic_pm_domain *genpd, genpd 1781 drivers/base/power/domain.c if (IS_ERR_OR_NULL(genpd)) genpd 1784 drivers/base/power/domain.c INIT_LIST_HEAD(&genpd->master_links); genpd 1785 drivers/base/power/domain.c INIT_LIST_HEAD(&genpd->slave_links); genpd 1786 drivers/base/power/domain.c INIT_LIST_HEAD(&genpd->dev_list); genpd 1787 drivers/base/power/domain.c genpd_lock_init(genpd); genpd 1788 drivers/base/power/domain.c genpd->gov = gov; genpd 1789 drivers/base/power/domain.c INIT_WORK(&genpd->power_off_work, genpd_power_off_work_fn); genpd 1790 drivers/base/power/domain.c atomic_set(&genpd->sd_count, 0); genpd 1791 drivers/base/power/domain.c genpd->status = is_off ? GPD_STATE_POWER_OFF : GPD_STATE_ACTIVE; genpd 1792 drivers/base/power/domain.c genpd->device_count = 0; genpd 1793 drivers/base/power/domain.c genpd->max_off_time_ns = -1; genpd 1794 drivers/base/power/domain.c genpd->max_off_time_changed = true; genpd 1795 drivers/base/power/domain.c genpd->provider = NULL; genpd 1796 drivers/base/power/domain.c genpd->has_provider = false; genpd 1797 drivers/base/power/domain.c genpd->accounting_time = ktime_get(); genpd 1798 drivers/base/power/domain.c genpd->domain.ops.runtime_suspend = genpd_runtime_suspend; genpd 1799 drivers/base/power/domain.c genpd->domain.ops.runtime_resume = genpd_runtime_resume; genpd 1800 drivers/base/power/domain.c genpd->domain.ops.prepare = genpd_prepare; genpd 1801 drivers/base/power/domain.c genpd->domain.ops.suspend_noirq = genpd_suspend_noirq; genpd 1802 drivers/base/power/domain.c genpd->domain.ops.resume_noirq = genpd_resume_noirq; genpd 1803 drivers/base/power/domain.c genpd->domain.ops.freeze_noirq = genpd_freeze_noirq; genpd 1804 drivers/base/power/domain.c genpd->domain.ops.thaw_noirq = genpd_thaw_noirq; genpd 1805 drivers/base/power/domain.c genpd->domain.ops.poweroff_noirq = genpd_poweroff_noirq; genpd 1806 drivers/base/power/domain.c genpd->domain.ops.restore_noirq = genpd_restore_noirq; genpd 1807 drivers/base/power/domain.c genpd->domain.ops.complete = genpd_complete; genpd 1809 drivers/base/power/domain.c if (genpd->flags & GENPD_FLAG_PM_CLK) { genpd 1810 drivers/base/power/domain.c genpd->dev_ops.stop = pm_clk_suspend; genpd 1811 drivers/base/power/domain.c genpd->dev_ops.start = pm_clk_resume; genpd 1815 drivers/base/power/domain.c if ((genpd_is_always_on(genpd) || genpd_is_rpm_always_on(genpd)) && genpd 1816 drivers/base/power/domain.c !genpd_status_on(genpd)) genpd 1819 drivers/base/power/domain.c if (genpd_is_cpu_domain(genpd) && genpd 1820 drivers/base/power/domain.c !zalloc_cpumask_var(&genpd->cpus, GFP_KERNEL)) genpd 1824 drivers/base/power/domain.c if (genpd->state_count == 0) { genpd 1825 drivers/base/power/domain.c ret = genpd_set_default_power_state(genpd); genpd 1827 drivers/base/power/domain.c if (genpd_is_cpu_domain(genpd)) genpd 1828 drivers/base/power/domain.c free_cpumask_var(genpd->cpus); genpd 1831 drivers/base/power/domain.c } else if (!gov && genpd->state_count > 1) { genpd 1832 drivers/base/power/domain.c pr_warn("%s: no governor for states\n", genpd->name); genpd 1835 drivers/base/power/domain.c device_initialize(&genpd->dev); genpd 1836 drivers/base/power/domain.c dev_set_name(&genpd->dev, "%s", genpd->name); genpd 1839 drivers/base/power/domain.c list_add(&genpd->gpd_list_node, &gpd_list); genpd 1846 drivers/base/power/domain.c static int genpd_remove(struct generic_pm_domain *genpd) genpd 1850 drivers/base/power/domain.c if (IS_ERR_OR_NULL(genpd)) genpd 1853 drivers/base/power/domain.c genpd_lock(genpd); genpd 1855 drivers/base/power/domain.c if (genpd->has_provider) { genpd 1856 drivers/base/power/domain.c genpd_unlock(genpd); genpd 1857 drivers/base/power/domain.c pr_err("Provider present, unable to remove %s\n", genpd->name); genpd 1861 drivers/base/power/domain.c if (!list_empty(&genpd->master_links) || genpd->device_count) { genpd 1862 drivers/base/power/domain.c genpd_unlock(genpd); genpd 1863 drivers/base/power/domain.c pr_err("%s: unable to remove %s\n", __func__, genpd->name); genpd 1867 drivers/base/power/domain.c list_for_each_entry_safe(link, l, &genpd->slave_links, slave_node) { genpd 1873 drivers/base/power/domain.c list_del(&genpd->gpd_list_node); genpd 1874 drivers/base/power/domain.c genpd_unlock(genpd); genpd 1875 drivers/base/power/domain.c cancel_work_sync(&genpd->power_off_work); genpd 1876 drivers/base/power/domain.c if (genpd_is_cpu_domain(genpd)) genpd 1877 drivers/base/power/domain.c free_cpumask_var(genpd->cpus); genpd 1878 drivers/base/power/domain.c if (genpd->free_states) genpd 1879 drivers/base/power/domain.c genpd->free_states(genpd->states, genpd->state_count); genpd 1881 drivers/base/power/domain.c pr_debug("%s: removed %s\n", __func__, genpd->name); genpd 1899 drivers/base/power/domain.c int pm_genpd_remove(struct generic_pm_domain *genpd) genpd 1904 drivers/base/power/domain.c ret = genpd_remove(genpd); genpd 2029 drivers/base/power/domain.c struct generic_pm_domain *genpd) genpd 2033 drivers/base/power/domain.c if (!np || !genpd) genpd 2038 drivers/base/power/domain.c if (!genpd_present(genpd)) genpd 2041 drivers/base/power/domain.c genpd->dev.of_node = np; genpd 2044 drivers/base/power/domain.c if (genpd->set_performance_state) { genpd 2045 drivers/base/power/domain.c ret = dev_pm_opp_of_add_table(&genpd->dev); genpd 2047 drivers/base/power/domain.c dev_err(&genpd->dev, "Failed to add OPP table: %d\n", genpd 2056 drivers/base/power/domain.c genpd->opp_table = dev_pm_opp_get_opp_table(&genpd->dev); genpd 2057 drivers/base/power/domain.c WARN_ON(!genpd->opp_table); genpd 2060 drivers/base/power/domain.c ret = genpd_add_provider(np, genpd_xlate_simple, genpd); genpd 2062 drivers/base/power/domain.c if (genpd->set_performance_state) { genpd 2063 drivers/base/power/domain.c dev_pm_opp_put_opp_table(genpd->opp_table); genpd 2064 drivers/base/power/domain.c dev_pm_opp_of_remove_table(&genpd->dev); genpd 2070 drivers/base/power/domain.c genpd->provider = &np->fwnode; genpd 2071 drivers/base/power/domain.c genpd->has_provider = true; genpd 2088 drivers/base/power/domain.c struct generic_pm_domain *genpd; genpd 2101 drivers/base/power/domain.c genpd = data->domains[i]; genpd 2103 drivers/base/power/domain.c if (!genpd) genpd 2105 drivers/base/power/domain.c if (!genpd_present(genpd)) genpd 2108 drivers/base/power/domain.c genpd->dev.of_node = np; genpd 2111 drivers/base/power/domain.c if (genpd->set_performance_state) { genpd 2112 drivers/base/power/domain.c ret = dev_pm_opp_of_add_table_indexed(&genpd->dev, i); genpd 2114 drivers/base/power/domain.c dev_err(&genpd->dev, "Failed to add OPP table for index %d: %d\n", genpd 2123 drivers/base/power/domain.c genpd->opp_table = dev_pm_opp_get_opp_table_indexed(&genpd->dev, i); genpd 2124 drivers/base/power/domain.c WARN_ON(!genpd->opp_table); genpd 2127 drivers/base/power/domain.c genpd->provider = &np->fwnode; genpd 2128 drivers/base/power/domain.c genpd->has_provider = true; genpd 2141 drivers/base/power/domain.c genpd = data->domains[i]; genpd 2143 drivers/base/power/domain.c if (!genpd) genpd 2146 drivers/base/power/domain.c genpd->provider = NULL; genpd 2147 drivers/base/power/domain.c genpd->has_provider = false; genpd 2149 drivers/base/power/domain.c if (genpd->set_performance_state) { genpd 2150 drivers/base/power/domain.c dev_pm_opp_put_opp_table(genpd->opp_table); genpd 2151 drivers/base/power/domain.c dev_pm_opp_of_remove_table(&genpd->dev); genpd 2216 drivers/base/power/domain.c struct generic_pm_domain *genpd = ERR_PTR(-ENOENT); genpd 2227 drivers/base/power/domain.c genpd = provider->xlate(genpdspec, provider->data); genpd 2228 drivers/base/power/domain.c if (!IS_ERR(genpd)) genpd 2234 drivers/base/power/domain.c return genpd; genpd 2247 drivers/base/power/domain.c struct generic_pm_domain *genpd; genpd 2252 drivers/base/power/domain.c genpd = genpd_get_from_provider(genpdspec); genpd 2253 drivers/base/power/domain.c if (IS_ERR(genpd)) { genpd 2254 drivers/base/power/domain.c ret = PTR_ERR(genpd); genpd 2258 drivers/base/power/domain.c ret = genpd_add_device(genpd, dev, dev); genpd 2320 drivers/base/power/domain.c struct generic_pm_domain *gpd, *tmp, *genpd = ERR_PTR(-ENOENT); genpd 2330 drivers/base/power/domain.c genpd = ret ? ERR_PTR(ret) : gpd; genpd 2336 drivers/base/power/domain.c return genpd; genpd 2701 drivers/base/power/domain.c struct generic_pm_domain *genpd = NULL; genpd 2704 drivers/base/power/domain.c genpd = container_of(genpd_dev, struct generic_pm_domain, dev); genpd 2706 drivers/base/power/domain.c if (unlikely(!genpd->opp_to_performance_state)) genpd 2709 drivers/base/power/domain.c genpd_lock(genpd); genpd 2710 drivers/base/power/domain.c state = genpd->opp_to_performance_state(genpd, opp); genpd 2711 drivers/base/power/domain.c genpd_unlock(genpd); genpd 2764 drivers/base/power/domain.c struct generic_pm_domain *genpd) genpd 2776 drivers/base/power/domain.c ret = genpd_lock_interruptible(genpd); genpd 2780 drivers/base/power/domain.c if (WARN_ON(genpd->status >= ARRAY_SIZE(status_lookup))) genpd 2782 drivers/base/power/domain.c if (!genpd_status_on(genpd)) genpd 2784 drivers/base/power/domain.c status_lookup[genpd->status], genpd->state_idx); genpd 2787 drivers/base/power/domain.c status_lookup[genpd->status]); genpd 2788 drivers/base/power/domain.c seq_printf(s, "%-30s %-15s ", genpd->name, state); genpd 2795 drivers/base/power/domain.c list_for_each_entry(link, &genpd->master_links, master_node) { genpd 2797 drivers/base/power/domain.c if (!list_is_last(&link->master_node, &genpd->master_links)) genpd 2801 drivers/base/power/domain.c list_for_each_entry(pm_data, &genpd->dev_list, list_node) { genpd 2803 drivers/base/power/domain.c genpd_is_irq_safe(genpd) ? genpd 2815 drivers/base/power/domain.c genpd_unlock(genpd); genpd 2822 drivers/base/power/domain.c struct generic_pm_domain *genpd; genpd 2833 drivers/base/power/domain.c list_for_each_entry(genpd, &gpd_list, gpd_list_node) { genpd 2834 drivers/base/power/domain.c ret = genpd_summary_one(s, genpd); genpd 2850 drivers/base/power/domain.c struct generic_pm_domain *genpd = s->private; genpd 2853 drivers/base/power/domain.c ret = genpd_lock_interruptible(genpd); genpd 2857 drivers/base/power/domain.c if (WARN_ON_ONCE(genpd->status >= ARRAY_SIZE(status_lookup))) genpd 2860 drivers/base/power/domain.c if (genpd->status == GPD_STATE_POWER_OFF) genpd 2861 drivers/base/power/domain.c seq_printf(s, "%s-%u\n", status_lookup[genpd->status], genpd 2862 drivers/base/power/domain.c genpd->state_idx); genpd 2864 drivers/base/power/domain.c seq_printf(s, "%s\n", status_lookup[genpd->status]); genpd 2866 drivers/base/power/domain.c genpd_unlock(genpd); genpd 2872 drivers/base/power/domain.c struct generic_pm_domain *genpd = s->private; genpd 2876 drivers/base/power/domain.c ret = genpd_lock_interruptible(genpd); genpd 2880 drivers/base/power/domain.c list_for_each_entry(link, &genpd->master_links, master_node) genpd 2883 drivers/base/power/domain.c genpd_unlock(genpd); genpd 2889 drivers/base/power/domain.c struct generic_pm_domain *genpd = s->private; genpd 2893 drivers/base/power/domain.c ret = genpd_lock_interruptible(genpd); genpd 2899 drivers/base/power/domain.c for (i = 0; i < genpd->state_count; i++) { genpd 2903 drivers/base/power/domain.c if ((genpd->status == GPD_STATE_POWER_OFF) && genpd 2904 drivers/base/power/domain.c (genpd->state_idx == i)) genpd 2905 drivers/base/power/domain.c delta = ktime_sub(ktime_get(), genpd->accounting_time); genpd 2908 drivers/base/power/domain.c ktime_add(genpd->states[i].idle_time, delta)); genpd 2912 drivers/base/power/domain.c genpd_unlock(genpd); genpd 2918 drivers/base/power/domain.c struct generic_pm_domain *genpd = s->private; genpd 2922 drivers/base/power/domain.c ret = genpd_lock_interruptible(genpd); genpd 2926 drivers/base/power/domain.c if (genpd->status == GPD_STATE_ACTIVE) genpd 2927 drivers/base/power/domain.c delta = ktime_sub(ktime_get(), genpd->accounting_time); genpd 2930 drivers/base/power/domain.c ktime_add(genpd->on_time, delta))); genpd 2932 drivers/base/power/domain.c genpd_unlock(genpd); genpd 2938 drivers/base/power/domain.c struct generic_pm_domain *genpd = s->private; genpd 2943 drivers/base/power/domain.c ret = genpd_lock_interruptible(genpd); genpd 2947 drivers/base/power/domain.c for (i = 0; i < genpd->state_count; i++) { genpd 2949 drivers/base/power/domain.c if ((genpd->status == GPD_STATE_POWER_OFF) && genpd 2950 drivers/base/power/domain.c (genpd->state_idx == i)) genpd 2951 drivers/base/power/domain.c delta = ktime_sub(ktime_get(), genpd->accounting_time); genpd 2953 drivers/base/power/domain.c total = ktime_add(total, genpd->states[i].idle_time); genpd 2959 drivers/base/power/domain.c genpd_unlock(genpd); genpd 2966 drivers/base/power/domain.c struct generic_pm_domain *genpd = s->private; genpd 2971 drivers/base/power/domain.c ret = genpd_lock_interruptible(genpd); genpd 2975 drivers/base/power/domain.c list_for_each_entry(pm_data, &genpd->dev_list, list_node) { genpd 2977 drivers/base/power/domain.c genpd_is_irq_safe(genpd) ? genpd 2986 drivers/base/power/domain.c genpd_unlock(genpd); genpd 2992 drivers/base/power/domain.c struct generic_pm_domain *genpd = s->private; genpd 2994 drivers/base/power/domain.c if (genpd_lock_interruptible(genpd)) genpd 2997 drivers/base/power/domain.c seq_printf(s, "%u\n", genpd->performance_state); genpd 2999 drivers/base/power/domain.c genpd_unlock(genpd); genpd 3015 drivers/base/power/domain.c struct generic_pm_domain *genpd; genpd 3022 drivers/base/power/domain.c list_for_each_entry(genpd, &gpd_list, gpd_list_node) { genpd 3023 drivers/base/power/domain.c d = debugfs_create_dir(genpd->name, genpd_debugfs_dir); genpd 3026 drivers/base/power/domain.c d, genpd, &status_fops); genpd 3028 drivers/base/power/domain.c d, genpd, &sub_domains_fops); genpd 3030 drivers/base/power/domain.c d, genpd, &idle_states_fops); genpd 3032 drivers/base/power/domain.c d, genpd, &active_time_fops); genpd 3034 drivers/base/power/domain.c d, genpd, &total_idle_time_fops); genpd 3036 drivers/base/power/domain.c d, genpd, &devices_fops); genpd 3037 drivers/base/power/domain.c if (genpd->set_performance_state) genpd 3039 drivers/base/power/domain.c d, genpd, &perf_state_fops); genpd 123 drivers/base/power/domain_governor.c struct generic_pm_domain *genpd = pd_to_genpd(pd); genpd 129 drivers/base/power/domain_governor.c off_on_time_ns = genpd->states[state].power_off_latency_ns + genpd 130 drivers/base/power/domain_governor.c genpd->states[state].power_on_latency_ns; genpd 138 drivers/base/power/domain_governor.c list_for_each_entry(link, &genpd->master_links, master_node) { genpd 160 drivers/base/power/domain_governor.c list_for_each_entry(pdd, &genpd->dev_list, list_node) { genpd 198 drivers/base/power/domain_governor.c genpd->max_off_time_ns = min_off_time_ns - genpd 199 drivers/base/power/domain_governor.c genpd->states[state].power_on_latency_ns; genpd 211 drivers/base/power/domain_governor.c struct generic_pm_domain *genpd = pd_to_genpd(pd); genpd 214 drivers/base/power/domain_governor.c if (!genpd->max_off_time_changed) { genpd 215 drivers/base/power/domain_governor.c genpd->state_idx = genpd->cached_power_down_state_idx; genpd 216 drivers/base/power/domain_governor.c return genpd->cached_power_down_ok; genpd 225 drivers/base/power/domain_governor.c list_for_each_entry(link, &genpd->slave_links, slave_node) genpd 228 drivers/base/power/domain_governor.c genpd->max_off_time_ns = -1; genpd 229 drivers/base/power/domain_governor.c genpd->max_off_time_changed = false; genpd 230 drivers/base/power/domain_governor.c genpd->cached_power_down_ok = true; genpd 231 drivers/base/power/domain_governor.c genpd->state_idx = genpd->state_count - 1; genpd 234 drivers/base/power/domain_governor.c while (!__default_power_down_ok(pd, genpd->state_idx)) { genpd 235 drivers/base/power/domain_governor.c if (genpd->state_idx == 0) { genpd 236 drivers/base/power/domain_governor.c genpd->cached_power_down_ok = false; genpd 239 drivers/base/power/domain_governor.c genpd->state_idx--; genpd 242 drivers/base/power/domain_governor.c genpd->cached_power_down_state_idx = genpd->state_idx; genpd 243 drivers/base/power/domain_governor.c return genpd->cached_power_down_ok; genpd 254 drivers/base/power/domain_governor.c struct generic_pm_domain *genpd = pd_to_genpd(pd); genpd 264 drivers/base/power/domain_governor.c if (!(genpd->flags & GENPD_FLAG_CPU_DOMAIN)) genpd 273 drivers/base/power/domain_governor.c for_each_cpu_and(cpu, genpd->cpus, cpu_online_mask) { genpd 292 drivers/base/power/domain_governor.c i = genpd->state_idx; genpd 294 drivers/base/power/domain_governor.c if (idle_duration_ns >= (genpd->states[i].residency_ns + genpd 295 drivers/base/power/domain_governor.c genpd->states[i].power_off_latency_ns)) { genpd 296 drivers/base/power/domain_governor.c genpd->state_idx = i; genpd 451 drivers/clk/renesas/renesas-cpg-mssr.c struct generic_pm_domain genpd; genpd 463 drivers/clk/renesas/renesas-cpg-mssr.c if (clkspec->np != pd->genpd.dev.of_node || clkspec->args_count != 2) genpd 541 drivers/clk/renesas/renesas-cpg-mssr.c struct generic_pm_domain *genpd; genpd 552 drivers/clk/renesas/renesas-cpg-mssr.c genpd = &pd->genpd; genpd 553 drivers/clk/renesas/renesas-cpg-mssr.c genpd->name = np->name; genpd 554 drivers/clk/renesas/renesas-cpg-mssr.c genpd->flags = GENPD_FLAG_PM_CLK | GENPD_FLAG_ALWAYS_ON | genpd 556 drivers/clk/renesas/renesas-cpg-mssr.c genpd->attach_dev = cpg_mssr_attach_dev; genpd 557 drivers/clk/renesas/renesas-cpg-mssr.c genpd->detach_dev = cpg_mssr_detach_dev; genpd 558 drivers/clk/renesas/renesas-cpg-mssr.c pm_genpd_init(genpd, &pm_domain_always_on_gov, false); genpd 561 drivers/clk/renesas/renesas-cpg-mssr.c of_genpd_add_provider_simple(np, genpd); genpd 15 drivers/firmware/arm_scmi/scmi_pm_domain.c struct generic_pm_domain genpd; genpd 21 drivers/firmware/arm_scmi/scmi_pm_domain.c #define to_scmi_pd(gpd) container_of(gpd, struct scmi_pm_domain, genpd) genpd 88 drivers/firmware/arm_scmi/scmi_pm_domain.c domains[i] = &scmi_pd->genpd; genpd 93 drivers/firmware/arm_scmi/scmi_pm_domain.c scmi_pd->genpd.name = scmi_pd->name; genpd 94 drivers/firmware/arm_scmi/scmi_pm_domain.c scmi_pd->genpd.power_off = scmi_pd_power_off; genpd 95 drivers/firmware/arm_scmi/scmi_pm_domain.c scmi_pd->genpd.power_on = scmi_pd_power_on; genpd 102 drivers/firmware/arm_scmi/scmi_pm_domain.c pm_genpd_init(&scmi_pd->genpd, NULL, genpd 171 drivers/firmware/imx/scu-pd.c to_imx_sc_pd(struct generic_pm_domain *genpd) genpd 173 drivers/firmware/imx/scu-pd.c return container_of(genpd, struct imx_sc_pm_domain, pd); genpd 16 drivers/firmware/scpi_pm_domain.c struct generic_pm_domain genpd; genpd 32 drivers/firmware/scpi_pm_domain.c #define to_scpi_pd(gpd) container_of(gpd, struct scpi_pm_domain, genpd) genpd 109 drivers/firmware/scpi_pm_domain.c domains[i] = &scpi_pd->genpd; genpd 114 drivers/firmware/scpi_pm_domain.c scpi_pd->genpd.name = scpi_pd->name; genpd 115 drivers/firmware/scpi_pm_domain.c scpi_pd->genpd.power_off = scpi_pd_power_off; genpd 116 drivers/firmware/scpi_pm_domain.c scpi_pd->genpd.power_on = scpi_pd_power_on; genpd 124 drivers/firmware/scpi_pm_domain.c pm_genpd_init(&scpi_pd->genpd, NULL, true); genpd 125 drivers/gpu/drm/amd/amdgpu/amdgpu_acp.c static int acp_poweroff(struct generic_pm_domain *genpd) genpd 130 drivers/gpu/drm/amd/amdgpu/amdgpu_acp.c apd = container_of(genpd, struct acp_pm_domain, gpd); genpd 146 drivers/gpu/drm/amd/amdgpu/amdgpu_acp.c static int acp_poweron(struct generic_pm_domain *genpd) genpd 151 drivers/gpu/drm/amd/amdgpu/amdgpu_acp.c apd = container_of(genpd, struct acp_pm_domain, gpd); genpd 402 drivers/media/platform/qcom/camss/camss.c camss->genpd[id], DL_FLAG_STATELESS | genpd 915 drivers/media/platform/qcom/camss/camss.c camss->genpd[PM_DOMAIN_VFE0] = dev_pm_domain_attach_by_id( genpd 917 drivers/media/platform/qcom/camss/camss.c if (IS_ERR(camss->genpd[PM_DOMAIN_VFE0])) genpd 918 drivers/media/platform/qcom/camss/camss.c return PTR_ERR(camss->genpd[PM_DOMAIN_VFE0]); genpd 920 drivers/media/platform/qcom/camss/camss.c camss->genpd[PM_DOMAIN_VFE1] = dev_pm_domain_attach_by_id( genpd 922 drivers/media/platform/qcom/camss/camss.c if (IS_ERR(camss->genpd[PM_DOMAIN_VFE1])) { genpd 923 drivers/media/platform/qcom/camss/camss.c dev_pm_domain_detach(camss->genpd[PM_DOMAIN_VFE0], genpd 925 drivers/media/platform/qcom/camss/camss.c return PTR_ERR(camss->genpd[PM_DOMAIN_VFE1]); genpd 952 drivers/media/platform/qcom/camss/camss.c dev_pm_domain_detach(camss->genpd[PM_DOMAIN_VFE0], true); genpd 953 drivers/media/platform/qcom/camss/camss.c dev_pm_domain_detach(camss->genpd[PM_DOMAIN_VFE1], true); genpd 84 drivers/media/platform/qcom/camss/camss.h struct device *genpd[PM_DOMAIN_COUNT]; genpd 39 drivers/soc/actions/owl-sps.c #define to_owl_pd(gpd) container_of(gpd, struct owl_sps_domain, genpd) genpd 42 drivers/soc/actions/owl-sps.c struct generic_pm_domain genpd; genpd 86 drivers/soc/actions/owl-sps.c pd->genpd.name = pd->info->name; genpd 87 drivers/soc/actions/owl-sps.c pd->genpd.power_on = owl_sps_power_on; genpd 88 drivers/soc/actions/owl-sps.c pd->genpd.power_off = owl_sps_power_off; genpd 89 drivers/soc/actions/owl-sps.c pd->genpd.flags = pd->info->genpd_flags; genpd 90 drivers/soc/actions/owl-sps.c pm_genpd_init(&pd->genpd, NULL, false); genpd 92 drivers/soc/actions/owl-sps.c sps->genpd_data.domains[index] = &pd->genpd; genpd 33 drivers/soc/amlogic/meson-gx-pwrc-vpu.c struct generic_pm_domain genpd; genpd 44 drivers/soc/amlogic/meson-gx-pwrc-vpu.c return container_of(d, struct meson_gx_pwrc_vpu, genpd); genpd 47 drivers/soc/amlogic/meson-gx-pwrc-vpu.c static int meson_gx_pwrc_vpu_power_off(struct generic_pm_domain *genpd) genpd 49 drivers/soc/amlogic/meson-gx-pwrc-vpu.c struct meson_gx_pwrc_vpu *pd = genpd_to_pd(genpd); genpd 85 drivers/soc/amlogic/meson-gx-pwrc-vpu.c static int meson_g12a_pwrc_vpu_power_off(struct generic_pm_domain *genpd) genpd 87 drivers/soc/amlogic/meson-gx-pwrc-vpu.c struct meson_gx_pwrc_vpu *pd = genpd_to_pd(genpd); genpd 143 drivers/soc/amlogic/meson-gx-pwrc-vpu.c static int meson_gx_pwrc_vpu_power_on(struct generic_pm_domain *genpd) genpd 145 drivers/soc/amlogic/meson-gx-pwrc-vpu.c struct meson_gx_pwrc_vpu *pd = genpd_to_pd(genpd); genpd 191 drivers/soc/amlogic/meson-gx-pwrc-vpu.c static int meson_g12a_pwrc_vpu_power_on(struct generic_pm_domain *genpd) genpd 193 drivers/soc/amlogic/meson-gx-pwrc-vpu.c struct meson_gx_pwrc_vpu *pd = genpd_to_pd(genpd); genpd 255 drivers/soc/amlogic/meson-gx-pwrc-vpu.c .genpd = { genpd 263 drivers/soc/amlogic/meson-gx-pwrc-vpu.c .genpd = { genpd 342 drivers/soc/amlogic/meson-gx-pwrc-vpu.c pm_genpd_init(&vpu_pd->genpd, &pm_domain_always_on_gov, genpd 346 drivers/soc/amlogic/meson-gx-pwrc-vpu.c &vpu_pd->genpd); genpd 356 drivers/soc/amlogic/meson-gx-pwrc-vpu.c vpu_pd->genpd.power_off(&vpu_pd->genpd); genpd 54 drivers/soc/imx/gpc.c to_imx_pm_domain(struct generic_pm_domain *genpd) genpd 56 drivers/soc/imx/gpc.c return container_of(genpd, struct imx_pm_domain, base); genpd 59 drivers/soc/imx/gpc.c static int imx6_pm_domain_power_off(struct generic_pm_domain *genpd) genpd 61 drivers/soc/imx/gpc.c struct imx_pm_domain *pd = to_imx_pm_domain(genpd); genpd 87 drivers/soc/imx/gpc.c static int imx6_pm_domain_power_on(struct generic_pm_domain *genpd) genpd 89 drivers/soc/imx/gpc.c struct imx_pm_domain *pd = to_imx_pm_domain(genpd); genpd 118 drivers/soc/imx/gpc.c pr_err("powerup request on domain %s timed out\n", genpd->name); genpd 105 drivers/soc/imx/gpcv2.c struct generic_pm_domain genpd; genpd 129 drivers/soc/imx/gpcv2.c static int imx_gpc_pu_pgc_sw_pxx_req(struct generic_pm_domain *genpd, genpd 132 drivers/soc/imx/gpcv2.c struct imx_pgc_domain *domain = container_of(genpd, genpd 134 drivers/soc/imx/gpcv2.c genpd); genpd 211 drivers/soc/imx/gpcv2.c static int imx_gpc_pu_pgc_sw_pup_req(struct generic_pm_domain *genpd) genpd 213 drivers/soc/imx/gpcv2.c return imx_gpc_pu_pgc_sw_pxx_req(genpd, true); genpd 216 drivers/soc/imx/gpcv2.c static int imx_gpc_pu_pgc_sw_pdn_req(struct generic_pm_domain *genpd) genpd 218 drivers/soc/imx/gpcv2.c return imx_gpc_pu_pgc_sw_pxx_req(genpd, false); genpd 223 drivers/soc/imx/gpcv2.c .genpd = { genpd 235 drivers/soc/imx/gpcv2.c .genpd = { genpd 247 drivers/soc/imx/gpcv2.c .genpd = { genpd 283 drivers/soc/imx/gpcv2.c .genpd = { genpd 294 drivers/soc/imx/gpcv2.c .genpd = { genpd 305 drivers/soc/imx/gpcv2.c .genpd = { genpd 316 drivers/soc/imx/gpcv2.c .genpd = { genpd 327 drivers/soc/imx/gpcv2.c .genpd = { genpd 338 drivers/soc/imx/gpcv2.c .genpd = { genpd 350 drivers/soc/imx/gpcv2.c .genpd = { genpd 362 drivers/soc/imx/gpcv2.c .genpd = { genpd 374 drivers/soc/imx/gpcv2.c .genpd = { genpd 385 drivers/soc/imx/gpcv2.c .genpd = { genpd 396 drivers/soc/imx/gpcv2.c .genpd = { genpd 506 drivers/soc/imx/gpcv2.c ret = pm_genpd_init(&domain->genpd, NULL, true); genpd 514 drivers/soc/imx/gpcv2.c &domain->genpd); genpd 517 drivers/soc/imx/gpcv2.c pm_genpd_remove(&domain->genpd); genpd 529 drivers/soc/imx/gpcv2.c pm_genpd_remove(&domain->genpd); genpd 624 drivers/soc/imx/gpcv2.c domain->genpd.power_on = imx_gpc_pu_pgc_sw_pup_req; genpd 625 drivers/soc/imx/gpcv2.c domain->genpd.power_off = imx_gpc_pu_pgc_sw_pdn_req; genpd 125 drivers/soc/mediatek/mtk-scpsys.c struct generic_pm_domain genpd; genpd 183 drivers/soc/mediatek/mtk-scpsys.c static int scpsys_power_on(struct generic_pm_domain *genpd) genpd 185 drivers/soc/mediatek/mtk-scpsys.c struct scp_domain *scpd = container_of(genpd, struct scp_domain, genpd); genpd 268 drivers/soc/mediatek/mtk-scpsys.c dev_err(scp->dev, "Failed to power on domain %s\n", genpd->name); genpd 273 drivers/soc/mediatek/mtk-scpsys.c static int scpsys_power_off(struct generic_pm_domain *genpd) genpd 275 drivers/soc/mediatek/mtk-scpsys.c struct scp_domain *scpd = container_of(genpd, struct scp_domain, genpd); genpd 331 drivers/soc/mediatek/mtk-scpsys.c dev_err(scp->dev, "Failed to power off domain %s\n", genpd->name); genpd 410 drivers/soc/mediatek/mtk-scpsys.c struct generic_pm_domain *genpd = &scpd->genpd; genpd 413 drivers/soc/mediatek/mtk-scpsys.c pd_data->domains[i] = genpd; genpd 430 drivers/soc/mediatek/mtk-scpsys.c genpd->name = data->name; genpd 431 drivers/soc/mediatek/mtk-scpsys.c genpd->power_off = scpsys_power_off; genpd 432 drivers/soc/mediatek/mtk-scpsys.c genpd->power_on = scpsys_power_on; genpd 434 drivers/soc/mediatek/mtk-scpsys.c genpd->flags |= GENPD_FLAG_ACTIVE_WAKEUP; genpd 448 drivers/soc/mediatek/mtk-scpsys.c struct generic_pm_domain *genpd = &scpd->genpd; genpd 456 drivers/soc/mediatek/mtk-scpsys.c genpd->power_on(genpd); genpd 458 drivers/soc/mediatek/mtk-scpsys.c pm_genpd_init(genpd, NULL, false); genpd 284 drivers/soc/qcom/rpmhpd.c static unsigned int rpmhpd_get_performance_state(struct generic_pm_domain *genpd, genpd 331 drivers/soc/qcom/rpmpd.c static unsigned int rpmpd_get_performance(struct generic_pm_domain *genpd, genpd 170 drivers/soc/renesas/rcar-sysc.c struct generic_pm_domain genpd; genpd 178 drivers/soc/renesas/rcar-sysc.c return container_of(d, struct rcar_sysc_pd, genpd); genpd 181 drivers/soc/renesas/rcar-sysc.c static int rcar_sysc_pd_power_off(struct generic_pm_domain *genpd) genpd 183 drivers/soc/renesas/rcar-sysc.c struct rcar_sysc_pd *pd = to_rcar_pd(genpd); genpd 185 drivers/soc/renesas/rcar-sysc.c pr_debug("%s: %s\n", __func__, genpd->name); genpd 189 drivers/soc/renesas/rcar-sysc.c static int rcar_sysc_pd_power_on(struct generic_pm_domain *genpd) genpd 191 drivers/soc/renesas/rcar-sysc.c struct rcar_sysc_pd *pd = to_rcar_pd(genpd); genpd 193 drivers/soc/renesas/rcar-sysc.c pr_debug("%s: %s\n", __func__, genpd->name); genpd 201 drivers/soc/renesas/rcar-sysc.c struct generic_pm_domain *genpd = &pd->genpd; genpd 202 drivers/soc/renesas/rcar-sysc.c const char *name = pd->genpd.name; genpd 211 drivers/soc/renesas/rcar-sysc.c genpd->flags |= GENPD_FLAG_ALWAYS_ON; genpd 219 drivers/soc/renesas/rcar-sysc.c genpd->flags |= GENPD_FLAG_ALWAYS_ON; genpd 224 drivers/soc/renesas/rcar-sysc.c genpd->flags |= GENPD_FLAG_ALWAYS_ON; genpd 229 drivers/soc/renesas/rcar-sysc.c genpd->flags |= GENPD_FLAG_PM_CLK | GENPD_FLAG_ACTIVE_WAKEUP; genpd 231 drivers/soc/renesas/rcar-sysc.c genpd->attach_dev = cpg_mstp_attach_dev; genpd 232 drivers/soc/renesas/rcar-sysc.c genpd->detach_dev = cpg_mstp_detach_dev; genpd 234 drivers/soc/renesas/rcar-sysc.c genpd->attach_dev = cpg_mssr_attach_dev; genpd 235 drivers/soc/renesas/rcar-sysc.c genpd->detach_dev = cpg_mssr_detach_dev; genpd 239 drivers/soc/renesas/rcar-sysc.c genpd->power_off = rcar_sysc_pd_power_off; genpd 240 drivers/soc/renesas/rcar-sysc.c genpd->power_on = rcar_sysc_pd_power_on; genpd 244 drivers/soc/renesas/rcar-sysc.c pr_debug("%s: Not touching %s\n", __func__, genpd->name); genpd 249 drivers/soc/renesas/rcar-sysc.c pr_debug("%s: %s is already powered\n", __func__, genpd->name); genpd 256 drivers/soc/renesas/rcar-sysc.c error = pm_genpd_init(genpd, &simple_qos_governor, false); genpd 389 drivers/soc/renesas/rcar-sysc.c pd->genpd.name = pd->name; genpd 399 drivers/soc/renesas/rcar-sysc.c domains->domains[area->isr_bit] = &pd->genpd; genpd 405 drivers/soc/renesas/rcar-sysc.c &pd->genpd); genpd 436 drivers/soc/renesas/rcar-sysc.c struct generic_pm_domain *genpd; genpd 444 drivers/soc/renesas/rcar-sysc.c genpd = rcar_sysc_onecell_data->domains[i]; genpd 445 drivers/soc/renesas/rcar-sysc.c if (!genpd) genpd 448 drivers/soc/renesas/rcar-sysc.c pd = to_rcar_pd(genpd); genpd 35 drivers/soc/renesas/rmobile-sysc.c struct generic_pm_domain genpd; genpd 45 drivers/soc/renesas/rmobile-sysc.c return container_of(d, struct rmobile_pm_domain, genpd); genpd 48 drivers/soc/renesas/rmobile-sysc.c static int rmobile_pd_power_down(struct generic_pm_domain *genpd) genpd 50 drivers/soc/renesas/rmobile-sysc.c struct rmobile_pm_domain *rmobile_pd = to_rmobile_pd(genpd); genpd 71 drivers/soc/renesas/rmobile-sysc.c pr_debug("%s: Power off, 0x%08x -> PSTR = 0x%08x\n", genpd->name, mask, genpd 100 drivers/soc/renesas/rmobile-sysc.c rmobile_pd->genpd.name, mask, genpd 106 drivers/soc/renesas/rmobile-sysc.c static int rmobile_pd_power_up(struct generic_pm_domain *genpd) genpd 108 drivers/soc/renesas/rmobile-sysc.c return __rmobile_pd_power_up(to_rmobile_pd(genpd)); genpd 113 drivers/soc/renesas/rmobile-sysc.c struct generic_pm_domain *genpd = &rmobile_pd->genpd; genpd 116 drivers/soc/renesas/rmobile-sysc.c genpd->flags |= GENPD_FLAG_PM_CLK | GENPD_FLAG_ACTIVE_WAKEUP; genpd 117 drivers/soc/renesas/rmobile-sysc.c genpd->attach_dev = cpg_mstp_attach_dev; genpd 118 drivers/soc/renesas/rmobile-sysc.c genpd->detach_dev = cpg_mstp_detach_dev; genpd 120 drivers/soc/renesas/rmobile-sysc.c if (!(genpd->flags & GENPD_FLAG_ALWAYS_ON)) { genpd 121 drivers/soc/renesas/rmobile-sysc.c genpd->power_off = rmobile_pd_power_down; genpd 122 drivers/soc/renesas/rmobile-sysc.c genpd->power_on = rmobile_pd_power_up; genpd 126 drivers/soc/renesas/rmobile-sysc.c pm_genpd_init(genpd, gov ? : &simple_qos_governor, false); genpd 231 drivers/soc/renesas/rmobile-sysc.c const char *name = pd->genpd.name; genpd 240 drivers/soc/renesas/rmobile-sysc.c pd->genpd.flags |= GENPD_FLAG_ALWAYS_ON; genpd 256 drivers/soc/renesas/rmobile-sysc.c pd->genpd.flags |= GENPD_FLAG_ALWAYS_ON; genpd 265 drivers/soc/renesas/rmobile-sysc.c pd->genpd.flags |= GENPD_FLAG_ALWAYS_ON; genpd 272 drivers/soc/renesas/rmobile-sysc.c pd->genpd.flags |= GENPD_FLAG_ALWAYS_ON; genpd 300 drivers/soc/renesas/rmobile-sysc.c pd->genpd.name = np->name; genpd 306 drivers/soc/renesas/rmobile-sysc.c pm_genpd_add_subdomain(genpd_parent, &pd->genpd); genpd 307 drivers/soc/renesas/rmobile-sysc.c of_genpd_add_provider_simple(np, &pd->genpd); genpd 309 drivers/soc/renesas/rmobile-sysc.c rmobile_add_pm_domains(base, np, &pd->genpd); genpd 67 drivers/soc/rockchip/pm_domains.c struct generic_pm_domain genpd; genpd 86 drivers/soc/rockchip/pm_domains.c #define to_rockchip_pd(gpd) container_of(gpd, struct rockchip_pm_domain, genpd) genpd 156 drivers/soc/rockchip/pm_domains.c struct generic_pm_domain *genpd = &pd->genpd; genpd 183 drivers/soc/rockchip/pm_domains.c genpd->name, val); genpd 192 drivers/soc/rockchip/pm_domains.c genpd->name, is_idle); genpd 267 drivers/soc/rockchip/pm_domains.c struct generic_pm_domain *genpd = &pd->genpd; genpd 286 drivers/soc/rockchip/pm_domains.c genpd->name, is_on); genpd 343 drivers/soc/rockchip/pm_domains.c static int rockchip_pd_attach_dev(struct generic_pm_domain *genpd, genpd 350 drivers/soc/rockchip/pm_domains.c dev_dbg(dev, "attaching to power domain '%s'\n", genpd->name); genpd 373 drivers/soc/rockchip/pm_domains.c static void rockchip_pd_detach_dev(struct generic_pm_domain *genpd, genpd 376 drivers/soc/rockchip/pm_domains.c dev_dbg(dev, "detaching from power domain '%s'\n", genpd->name); genpd 493 drivers/soc/rockchip/pm_domains.c pd->genpd.name = node->name; genpd 494 drivers/soc/rockchip/pm_domains.c pd->genpd.power_off = rockchip_pd_power_off; genpd 495 drivers/soc/rockchip/pm_domains.c pd->genpd.power_on = rockchip_pd_power_on; genpd 496 drivers/soc/rockchip/pm_domains.c pd->genpd.attach_dev = rockchip_pd_attach_dev; genpd 497 drivers/soc/rockchip/pm_domains.c pd->genpd.detach_dev = rockchip_pd_detach_dev; genpd 498 drivers/soc/rockchip/pm_domains.c pd->genpd.flags = GENPD_FLAG_PM_CLK; genpd 500 drivers/soc/rockchip/pm_domains.c pd->genpd.flags |= GENPD_FLAG_ACTIVE_WAKEUP; genpd 501 drivers/soc/rockchip/pm_domains.c pm_genpd_init(&pd->genpd, NULL, false); genpd 503 drivers/soc/rockchip/pm_domains.c pmu->genpd_data.domains[id] = &pd->genpd; genpd 521 drivers/soc/rockchip/pm_domains.c ret = pm_genpd_remove(&pd->genpd); genpd 524 drivers/soc/rockchip/pm_domains.c pd->genpd.name, ret); genpd 539 drivers/soc/rockchip/pm_domains.c struct generic_pm_domain *genpd; genpd 544 drivers/soc/rockchip/pm_domains.c genpd = pmu->genpd_data.domains[i]; genpd 545 drivers/soc/rockchip/pm_domains.c if (genpd) { genpd 546 drivers/soc/rockchip/pm_domains.c pd = to_rockchip_pd(genpd); genpd 146 drivers/soc/tegra/pmc.c struct generic_pm_domain genpd; genpd 357 drivers/soc/tegra/pmc.c return container_of(domain, struct tegra_powergate, genpd); genpd 665 drivers/soc/tegra/pmc.c pg->genpd.name, err); genpd 690 drivers/soc/tegra/pmc.c pg->genpd.name, err); genpd 1015 drivers/soc/tegra/pmc.c pg->genpd.name = np->name; genpd 1016 drivers/soc/tegra/pmc.c pg->genpd.power_off = tegra_genpd_power_off; genpd 1017 drivers/soc/tegra/pmc.c pg->genpd.power_on = tegra_genpd_power_on; genpd 1041 drivers/soc/tegra/pmc.c err = pm_genpd_init(&pg->genpd, NULL, off); genpd 1048 drivers/soc/tegra/pmc.c err = of_genpd_add_provider_simple(np, &pg->genpd); genpd 1055 drivers/soc/tegra/pmc.c dev_dbg(dev, "added PM domain %s\n", pg->genpd.name); genpd 1060 drivers/soc/tegra/pmc.c pm_genpd_remove(&pg->genpd); genpd 1103 drivers/soc/tegra/pmc.c static void tegra_powergate_remove(struct generic_pm_domain *genpd) genpd 1105 drivers/soc/tegra/pmc.c struct tegra_powergate *pg = to_powergate(genpd); genpd 1121 drivers/soc/tegra/pmc.c struct generic_pm_domain *genpd; genpd 1131 drivers/soc/tegra/pmc.c genpd = of_genpd_remove_last(child); genpd 1132 drivers/soc/tegra/pmc.c if (IS_ERR(genpd)) genpd 1135 drivers/soc/tegra/pmc.c tegra_powergate_remove(genpd); genpd 21 drivers/soc/tegra/powergate-bpmp.c struct generic_pm_domain genpd; genpd 27 drivers/soc/tegra/powergate-bpmp.c to_tegra_powergate(struct generic_pm_domain *genpd) genpd 29 drivers/soc/tegra/powergate-bpmp.c return container_of(genpd, struct tegra_powergate, genpd); genpd 185 drivers/soc/tegra/powergate-bpmp.c powergate->genpd.name = kstrdup(info->name, GFP_KERNEL); genpd 186 drivers/soc/tegra/powergate-bpmp.c powergate->genpd.power_on = tegra_powergate_power_on; genpd 187 drivers/soc/tegra/powergate-bpmp.c powergate->genpd.power_off = tegra_powergate_power_off; genpd 189 drivers/soc/tegra/powergate-bpmp.c err = pm_genpd_init(&powergate->genpd, NULL, off); genpd 191 drivers/soc/tegra/powergate-bpmp.c kfree(powergate->genpd.name); genpd 200 drivers/soc/tegra/powergate-bpmp.c struct generic_pm_domain *genpd = &powergate->genpd; genpd 204 drivers/soc/tegra/powergate-bpmp.c err = pm_genpd_remove(genpd); genpd 207 drivers/soc/tegra/powergate-bpmp.c genpd->name, err); genpd 209 drivers/soc/tegra/powergate-bpmp.c kfree(genpd->name); genpd 257 drivers/soc/tegra/powergate-bpmp.c struct genpd_onecell_data *genpd = &bpmp->genpd; genpd 275 drivers/soc/tegra/powergate-bpmp.c powergate->genpd.name); genpd 276 drivers/soc/tegra/powergate-bpmp.c domains[i] = &powergate->genpd; genpd 279 drivers/soc/tegra/powergate-bpmp.c genpd->num_domains = count; genpd 280 drivers/soc/tegra/powergate-bpmp.c genpd->domains = domains; genpd 290 drivers/soc/tegra/powergate-bpmp.c kfree(genpd->domains); genpd 296 drivers/soc/tegra/powergate-bpmp.c struct genpd_onecell_data *genpd = &bpmp->genpd; genpd 297 drivers/soc/tegra/powergate-bpmp.c unsigned int i = genpd->num_domains; genpd 302 drivers/soc/tegra/powergate-bpmp.c genpd->domains[i]->name); genpd 303 drivers/soc/tegra/powergate-bpmp.c powergate = to_tegra_powergate(genpd->domains[i]); genpd 312 drivers/soc/tegra/powergate-bpmp.c struct genpd_onecell_data *genpd = data; genpd 315 drivers/soc/tegra/powergate-bpmp.c for (i = 0; i < genpd->num_domains; i++) { genpd 318 drivers/soc/tegra/powergate-bpmp.c powergate = to_tegra_powergate(genpd->domains[i]); genpd 320 drivers/soc/tegra/powergate-bpmp.c domain = &powergate->genpd; genpd 348 drivers/soc/tegra/powergate-bpmp.c bpmp->genpd.xlate = tegra_powergate_xlate; genpd 350 drivers/soc/tegra/powergate-bpmp.c err = of_genpd_add_provider_onecell(np, &bpmp->genpd); genpd 116 include/linux/pm_domain.h unsigned int (*opp_to_performance_state)(struct generic_pm_domain *genpd, genpd 118 include/linux/pm_domain.h int (*set_performance_state)(struct generic_pm_domain *genpd, genpd 197 include/linux/pm_domain.h int pm_genpd_add_device(struct generic_pm_domain *genpd, struct device *dev); genpd 199 include/linux/pm_domain.h int pm_genpd_add_subdomain(struct generic_pm_domain *genpd, genpd 201 include/linux/pm_domain.h int pm_genpd_remove_subdomain(struct generic_pm_domain *genpd, genpd 203 include/linux/pm_domain.h int pm_genpd_init(struct generic_pm_domain *genpd, genpd 205 include/linux/pm_domain.h int pm_genpd_remove(struct generic_pm_domain *genpd); genpd 219 include/linux/pm_domain.h static inline int pm_genpd_add_device(struct generic_pm_domain *genpd, genpd 228 include/linux/pm_domain.h static inline int pm_genpd_add_subdomain(struct generic_pm_domain *genpd, genpd 233 include/linux/pm_domain.h static inline int pm_genpd_remove_subdomain(struct generic_pm_domain *genpd, genpd 238 include/linux/pm_domain.h static inline int pm_genpd_init(struct generic_pm_domain *genpd, genpd 243 include/linux/pm_domain.h static inline int pm_genpd_remove(struct generic_pm_domain *genpd) genpd 280 include/linux/pm_domain.h struct generic_pm_domain *genpd); genpd 300 include/linux/pm_domain.h struct generic_pm_domain *genpd) genpd 87 include/soc/tegra/bpmp.h struct genpd_onecell_data genpd;