Lines Matching +full:domain +full:- +full:idle +full:- +full:states

1 /* SPDX-License-Identifier: GPL-2.0-only */
3 * pm_domain.h - Definitions and headers related to device power domains.
25 * PD_FLAG_NO_DEV_LINK: As the default behaviour creates a device-link
26 * for every PM domain that gets attached, this
29 * PD_FLAG_DEV_LINK_ON: Add the DL_FLAG_RPM_ACTIVE to power-on the
30 * supplier and its PM domain when creating the
31 * device-links.
37 * index for the attached PM domain.
68 * ->power_on|off(), doesn't sleep. Hence, these
70 * enables genpd to power on/off the PM domain,
76 * GENPD_FLAG_ALWAYS_ON: Instructs genpd to always keep the PM domain
79 * GENPD_FLAG_ACTIVE_WAKEUP: Instructs genpd to keep the PM domain powered
87 * deploy idle power management support for CPUs
90 * last-man-standing algorithm, for the CPUs in the
91 * PM domain.
93 * GENPD_FLAG_RPM_ALWAYS_ON: Instructs genpd to always keep the PM domain
98 * optimal idle state.
100 * GENPD_FLAG_OPP_TABLE_FW: The genpd provider supports performance states,
106 * get their genpd-names directly from FW.
119 GENPD_STATE_ON = 0, /* PM domain is on */
120 GENPD_STATE_OFF, /* PM domain is off */
131 bool (*power_down_ok)(struct dev_pm_domain *domain);
166 struct dev_pm_domain domain; /* PM domain operations */ member
168 struct list_head parent_links; /* Links with PM domain as a parent */
169 struct list_head child_links; /* Links with PM domain as a child */
174 struct fwnode_handle *provider; /* Identity of the domain provider */
178 enum gpd_status status; /* Current state of the domain */
186 int (*power_off)(struct generic_pm_domain *domain);
187 int (*power_on)(struct generic_pm_domain *domain);
193 int (*set_hwmode_dev)(struct generic_pm_domain *domain,
195 bool (*get_hwmode_dev)(struct generic_pm_domain *domain,
197 int (*attach_dev)(struct generic_pm_domain *domain,
199 void (*detach_dev)(struct generic_pm_domain *domain,
202 struct genpd_power_state *states; member
203 void (*free_states)(struct genpd_power_state *states,
205 unsigned int state_count; /* number of states */
225 return container_of(pd, struct generic_pm_domain, domain); in pd_to_genpd()
234 /* Sub-domain's per-master domain performance state */
275 return to_gpd_data(dev->power.subsys_data->domain_data); in dev_gpd_data()
306 return ERR_PTR(-ENOSYS); in dev_gpd_data()
311 return -ENOSYS; in pm_genpd_add_device()
315 return -ENOSYS; in pm_genpd_remove_device()
320 return -ENOSYS; in pm_genpd_add_subdomain()
325 return -ENOSYS; in pm_genpd_remove_subdomain()
330 return -ENOSYS; in pm_genpd_init()
334 return -EOPNOTSUPP; in pm_genpd_remove()
339 return ERR_PTR(-EOPNOTSUPP); in dev_to_genpd_dev()
345 return -EOPNOTSUPP; in dev_pm_genpd_set_performance_state()
351 return -EOPNOTSUPP; in dev_pm_genpd_add_notifier()
356 return -EOPNOTSUPP; in dev_pm_genpd_remove_notifier()
371 return -EOPNOTSUPP; in dev_pm_genpd_set_hwmode()
391 /* OF PM domain providers */
416 struct genpd_power_state **states, int *n);
427 return -EOPNOTSUPP; in of_genpd_add_provider_simple()
433 return -EOPNOTSUPP; in of_genpd_add_provider_onecell()
441 return -ENODEV; in of_genpd_add_device()
447 return -ENODEV; in of_genpd_add_subdomain()
453 return -ENODEV; in of_genpd_remove_subdomain()
457 struct genpd_power_state **states, int *n) in of_genpd_parse_idle_states() argument
459 return -ENODEV; in of_genpd_parse_idle_states()
482 return ERR_PTR(-EOPNOTSUPP); in of_genpd_remove_last()