Home
last modified time | relevance | path

Searched refs:genpd (Results 1 – 25 of 35) sorted by relevance

12

/linux-5.15/drivers/base/power/
H A Ddomain.c30 #define GENPD_DEV_CALLBACK(genpd, type, callback, dev) \ argument
35 __routine = genpd->dev_ops.callback; \
46 void (*lock)(struct generic_pm_domain *genpd);
47 void (*lock_nested)(struct generic_pm_domain *genpd, int depth);
48 int (*lock_interruptible)(struct generic_pm_domain *genpd);
49 void (*unlock)(struct generic_pm_domain *genpd);
52 static void genpd_lock_mtx(struct generic_pm_domain *genpd) in genpd_lock_mtx() argument
54 mutex_lock(&genpd->mlock); in genpd_lock_mtx()
57 static void genpd_lock_nested_mtx(struct generic_pm_domain *genpd, in genpd_lock_nested_mtx() argument
60 mutex_lock_nested(&genpd->mlock, depth); in genpd_lock_nested_mtx()
[all …]
H A Ddomain_governor.c120 static void update_domain_next_wakeup(struct generic_pm_domain *genpd, ktime_t now) in update_domain_next_wakeup() argument
127 if (!(genpd->flags & GENPD_FLAG_MIN_RESIDENCY)) in update_domain_next_wakeup()
138 list_for_each_entry(pdd, &genpd->dev_list, list_node) { in update_domain_next_wakeup()
145 list_for_each_entry(link, &genpd->parent_links, parent_node) { in update_domain_next_wakeup()
152 genpd->next_wakeup = domain_wakeup; in update_domain_next_wakeup()
155 static bool next_wakeup_allows_state(struct generic_pm_domain *genpd, in next_wakeup_allows_state() argument
158 ktime_t domain_wakeup = genpd->next_wakeup; in next_wakeup_allows_state()
161 min_sleep_ns = genpd->states[state].power_off_latency_ns + in next_wakeup_allows_state()
162 genpd->states[state].residency_ns; in next_wakeup_allows_state()
172 struct generic_pm_domain *genpd = pd_to_genpd(pd); in __default_power_down_ok() local
[all …]
/linux-5.15/drivers/soc/renesas/
A Drmobile-sysc.c33 struct generic_pm_domain genpd; member
43 return container_of(d, struct rmobile_pm_domain, genpd); in to_rmobile_pd()
46 static int rmobile_pd_power_down(struct generic_pm_domain *genpd) in rmobile_pd_power_down() argument
48 struct rmobile_pm_domain *rmobile_pd = to_rmobile_pd(genpd); in rmobile_pd_power_down()
69 pr_debug("%s: Power off, 0x%08x -> PSTR = 0x%08x\n", genpd->name, mask, in rmobile_pd_power_down()
98 rmobile_pd->genpd.name, mask, in __rmobile_pd_power_up()
104 static int rmobile_pd_power_up(struct generic_pm_domain *genpd) in rmobile_pd_power_up() argument
106 return __rmobile_pd_power_up(to_rmobile_pd(genpd)); in rmobile_pd_power_up()
111 struct generic_pm_domain *genpd = &rmobile_pd->genpd; in rmobile_init_pm_domain() local
114 genpd->flags |= GENPD_FLAG_PM_CLK | GENPD_FLAG_ACTIVE_WAKEUP; in rmobile_init_pm_domain()
[all …]
A Drcar-sysc.c177 struct generic_pm_domain genpd; member
185 return container_of(d, struct rcar_sysc_pd, genpd); in to_rcar_pd()
188 static int rcar_sysc_pd_power_off(struct generic_pm_domain *genpd) in rcar_sysc_pd_power_off() argument
190 struct rcar_sysc_pd *pd = to_rcar_pd(genpd); in rcar_sysc_pd_power_off()
192 pr_debug("%s: %s\n", __func__, genpd->name); in rcar_sysc_pd_power_off()
196 static int rcar_sysc_pd_power_on(struct generic_pm_domain *genpd) in rcar_sysc_pd_power_on() argument
198 struct rcar_sysc_pd *pd = to_rcar_pd(genpd); in rcar_sysc_pd_power_on()
200 pr_debug("%s: %s\n", __func__, genpd->name); in rcar_sysc_pd_power_on()
208 struct generic_pm_domain *genpd = &pd->genpd; in rcar_sysc_pd_setup() local
209 const char *name = pd->genpd.name; in rcar_sysc_pd_setup()
[all …]
A Dr8a779a0-sysc.c271 struct generic_pm_domain genpd; member
279 return container_of(d, struct r8a779a0_sysc_pd, genpd); in to_r8a779a0_pd()
282 static int r8a779a0_sysc_pd_power_off(struct generic_pm_domain *genpd) in r8a779a0_sysc_pd_power_off() argument
284 struct r8a779a0_sysc_pd *pd = to_r8a779a0_pd(genpd); in r8a779a0_sysc_pd_power_off()
286 pr_debug("%s: %s\n", __func__, genpd->name); in r8a779a0_sysc_pd_power_off()
290 static int r8a779a0_sysc_pd_power_on(struct generic_pm_domain *genpd) in r8a779a0_sysc_pd_power_on() argument
292 struct r8a779a0_sysc_pd *pd = to_r8a779a0_pd(genpd); in r8a779a0_sysc_pd_power_on()
294 pr_debug("%s: %s\n", __func__, genpd->name); in r8a779a0_sysc_pd_power_on()
300 struct generic_pm_domain *genpd = &pd->genpd; in r8a779a0_sysc_pd_setup() local
301 const char *name = pd->genpd.name; in r8a779a0_sysc_pd_setup()
[all …]
/linux-5.15/drivers/soc/tegra/
A Dpowergate-bpmp.c20 struct generic_pm_domain genpd; member
26 to_tegra_powergate(struct generic_pm_domain *genpd) in to_tegra_powergate() argument
28 return container_of(genpd, struct tegra_powergate, genpd); in to_tegra_powergate()
184 powergate->genpd.name = kstrdup(info->name, GFP_KERNEL); in tegra_powergate_add()
185 powergate->genpd.power_on = tegra_powergate_power_on; in tegra_powergate_add()
186 powergate->genpd.power_off = tegra_powergate_power_off; in tegra_powergate_add()
188 err = pm_genpd_init(&powergate->genpd, NULL, off); in tegra_powergate_add()
190 kfree(powergate->genpd.name); in tegra_powergate_add()
199 struct generic_pm_domain *genpd = &powergate->genpd; in tegra_powergate_remove() local
203 err = pm_genpd_remove(genpd); in tegra_powergate_remove()
[all …]
A Dpmc.c257 struct generic_pm_domain genpd; member
445 return container_of(domain, struct tegra_powergate, genpd); in to_powergate()
874 pg->genpd.name, err); in tegra_genpd_power_on()
893 pg->genpd.name, err); in tegra_genpd_power_off()
900 pg->genpd.name, err); in tegra_genpd_power_off()
1239 pg->genpd.name = np->name; in tegra_powergate_add()
1240 pg->genpd.power_off = tegra_genpd_power_off; in tegra_powergate_add()
1241 pg->genpd.power_on = tegra_genpd_power_on; in tegra_powergate_add()
1265 err = pm_genpd_init(&pg->genpd, NULL, off); in tegra_powergate_add()
1272 err = of_genpd_add_provider_simple(np, &pg->genpd); in tegra_powergate_add()
[all …]
/linux-5.15/drivers/clk/mmp/
A Dpwr-island.c14 #define to_mmp_pm_domain(genpd) container_of(genpd, struct mmp_pm_domain, genpd) argument
17 struct generic_pm_domain genpd; member
26 static int mmp_pm_domain_power_on(struct generic_pm_domain *genpd) in mmp_pm_domain_power_on() argument
28 struct mmp_pm_domain *pm_domain = to_mmp_pm_domain(genpd); in mmp_pm_domain_power_on()
67 static int mmp_pm_domain_power_off(struct generic_pm_domain *genpd) in mmp_pm_domain_power_off() argument
69 struct mmp_pm_domain *pm_domain = to_mmp_pm_domain(genpd); in mmp_pm_domain_power_off()
109 pm_genpd_init(&pm_domain->genpd, NULL, true); in mmp_pm_domain_register()
110 pm_domain->genpd.name = name; in mmp_pm_domain_register()
111 pm_domain->genpd.power_on = mmp_pm_domain_power_on; in mmp_pm_domain_register()
112 pm_domain->genpd.power_off = mmp_pm_domain_power_off; in mmp_pm_domain_register()
[all …]
/linux-5.15/drivers/soc/bcm/bcm63xx/
A Dbcm63xx-power.c20 struct generic_pm_domain genpd; member
30 struct generic_pm_domain **genpd; member
74 static int bcm63xx_power_on(struct generic_pm_domain *genpd) in bcm63xx_power_on() argument
76 struct bcm63xx_power_dev *pmd = container_of(genpd, in bcm63xx_power_on()
77 struct bcm63xx_power_dev, genpd); in bcm63xx_power_on()
82 static int bcm63xx_power_off(struct generic_pm_domain *genpd) in bcm63xx_power_off() argument
84 struct bcm63xx_power_dev *pmd = container_of(genpd, in bcm63xx_power_off()
85 struct bcm63xx_power_dev, genpd); in bcm63xx_power_off()
132 power->genpd = devm_kcalloc(dev, power->genpd_data.num_domains, in bcm63xx_power_probe()
135 if (!power->genpd) in bcm63xx_power_probe()
[all …]
A Dbcm-pmb.c88 struct generic_pm_domain genpd; member
234 static int bcm_pmb_power_on(struct generic_pm_domain *genpd) in bcm_pmb_power_on() argument
236 struct bcm_pmb_pm_domain *pd = container_of(genpd, struct bcm_pmb_pm_domain, genpd); in bcm_pmb_power_on()
255 static int bcm_pmb_power_off(struct generic_pm_domain *genpd) in bcm_pmb_power_off() argument
257 struct bcm_pmb_pm_domain *pd = container_of(genpd, struct bcm_pmb_pm_domain, genpd); in bcm_pmb_power_off()
319 pd->genpd.name = e->name; in bcm_pmb_probe()
320 pd->genpd.power_on = bcm_pmb_power_on; in bcm_pmb_probe()
321 pd->genpd.power_off = bcm_pmb_power_off; in bcm_pmb_probe()
323 pm_genpd_init(&pd->genpd, NULL, true); in bcm_pmb_probe()
324 pmb->genpd_onecell_data.domains[e->id] = &pd->genpd; in bcm_pmb_probe()
/linux-5.15/drivers/soc/imx/
A Dgpcv2.c188 struct generic_pm_domain genpd; member
215 to_imx_pgc_domain(struct generic_pm_domain *genpd) in to_imx_pgc_domain() argument
217 return container_of(genpd, struct imx_pgc_domain, genpd); in to_imx_pgc_domain()
220 static int imx_pgc_power_up(struct generic_pm_domain *genpd) in imx_pgc_power_up() argument
222 struct imx_pgc_domain *domain = to_imx_pgc_domain(genpd); in imx_pgc_power_up()
311 static int imx_pgc_power_down(struct generic_pm_domain *genpd) in imx_pgc_power_down() argument
313 struct imx_pgc_domain *domain = to_imx_pgc_domain(genpd); in imx_pgc_power_down()
384 .genpd = {
396 .genpd = {
408 .genpd = {
[all …]
A Dgpc.c54 to_imx_pm_domain(struct generic_pm_domain *genpd) in to_imx_pm_domain() argument
56 return container_of(genpd, struct imx_pm_domain, base); in to_imx_pm_domain()
59 static int imx6_pm_domain_power_off(struct generic_pm_domain *genpd) in imx6_pm_domain_power_off() argument
61 struct imx_pm_domain *pd = to_imx_pm_domain(genpd); in imx6_pm_domain_power_off()
87 static int imx6_pm_domain_power_on(struct generic_pm_domain *genpd) in imx6_pm_domain_power_on() argument
89 struct imx_pm_domain *pd = to_imx_pm_domain(genpd); in imx6_pm_domain_power_on()
118 pr_err("powerup request on domain %s timed out\n", genpd->name); in imx6_pm_domain_power_on()
/linux-5.15/scripts/gdb/linux/
A Dgenpd.py46 def summary_one(self, genpd): argument
47 if genpd['status'] == 0:
50 status_string = 'off-{}'.format(genpd['state_idx'])
54 genpd['parent_links'],
60 genpd['name'].string(),
65 for pm_data in list_for_each_entry(genpd['dev_list'],
76 for genpd in list_for_each_entry(
80 self.summary_one(genpd)
/linux-5.15/drivers/soc/amlogic/
A Dmeson-gx-pwrc-vpu.c34 struct generic_pm_domain genpd; member
45 return container_of(d, struct meson_gx_pwrc_vpu, genpd); in genpd_to_pd()
48 static int meson_gx_pwrc_vpu_power_off(struct generic_pm_domain *genpd) in meson_gx_pwrc_vpu_power_off() argument
50 struct meson_gx_pwrc_vpu *pd = genpd_to_pd(genpd); in meson_gx_pwrc_vpu_power_off()
86 static int meson_g12a_pwrc_vpu_power_off(struct generic_pm_domain *genpd) in meson_g12a_pwrc_vpu_power_off() argument
88 struct meson_gx_pwrc_vpu *pd = genpd_to_pd(genpd); in meson_g12a_pwrc_vpu_power_off()
144 static int meson_gx_pwrc_vpu_power_on(struct generic_pm_domain *genpd) in meson_gx_pwrc_vpu_power_on() argument
146 struct meson_gx_pwrc_vpu *pd = genpd_to_pd(genpd); in meson_gx_pwrc_vpu_power_on()
192 static int meson_g12a_pwrc_vpu_power_on(struct generic_pm_domain *genpd) in meson_g12a_pwrc_vpu_power_on() argument
194 struct meson_gx_pwrc_vpu *pd = genpd_to_pd(genpd); in meson_g12a_pwrc_vpu_power_on()
[all …]
/linux-5.15/drivers/firmware/arm_scmi/
A Dscmi_pm_domain.c18 struct generic_pm_domain genpd; member
24 #define to_scmi_pd(gpd) container_of(gpd, struct scmi_pm_domain, genpd)
124 scmi_pd->genpd.name = scmi_pd->name; in scmi_pm_domain_probe()
125 scmi_pd->genpd.power_off = scmi_pd_power_off; in scmi_pm_domain_probe()
126 scmi_pd->genpd.power_on = scmi_pd_power_on; in scmi_pm_domain_probe()
127 scmi_pd->genpd.attach_dev = scmi_pd_attach_dev; in scmi_pm_domain_probe()
128 scmi_pd->genpd.detach_dev = scmi_pd_detach_dev; in scmi_pm_domain_probe()
129 scmi_pd->genpd.flags = GENPD_FLAG_PM_CLK | in scmi_pm_domain_probe()
132 pm_genpd_init(&scmi_pd->genpd, NULL, in scmi_pm_domain_probe()
135 domains[i] = &scmi_pd->genpd; in scmi_pm_domain_probe()
/linux-5.15/include/linux/
H A Dpm_domain.h132 unsigned int (*opp_to_performance_state)(struct generic_pm_domain *genpd,
134 int (*set_performance_state)(struct generic_pm_domain *genpd,
218 int pm_genpd_add_device(struct generic_pm_domain *genpd, struct device *dev);
220 int pm_genpd_add_subdomain(struct generic_pm_domain *genpd,
222 int pm_genpd_remove_subdomain(struct generic_pm_domain *genpd,
224 int pm_genpd_init(struct generic_pm_domain *genpd,
226 int pm_genpd_remove(struct generic_pm_domain *genpd);
243 static inline int pm_genpd_add_device(struct generic_pm_domain *genpd, in pm_genpd_add_device() argument
252 static inline int pm_genpd_add_subdomain(struct generic_pm_domain *genpd, in pm_genpd_add_subdomain() argument
257 static inline int pm_genpd_remove_subdomain(struct generic_pm_domain *genpd, in pm_genpd_remove_subdomain() argument
[all …]
/linux-5.15/drivers/soc/mediatek/
A Dmtk-pm-domains.c36 struct generic_pm_domain genpd; member
56 #define to_scpsys_domain(gpd) container_of(gpd, struct scpsys_domain, genpd)
203 static int scpsys_power_on(struct generic_pm_domain *genpd) in scpsys_power_on() argument
205 struct scpsys_domain *pd = container_of(genpd, struct scpsys_domain, genpd); in scpsys_power_on()
257 static int scpsys_power_off(struct generic_pm_domain *genpd) in scpsys_power_off() argument
259 struct scpsys_domain *pd = container_of(genpd, struct scpsys_domain, genpd); in scpsys_power_off()
424 ret = scpsys_power_on(&pd->genpd); in scpsys_add_one_domain()
439 pd->genpd.name = node->name; in scpsys_add_one_domain()
441 pd->genpd.name = pd->data->name; in scpsys_add_one_domain()
443 pd->genpd.power_off = scpsys_power_off; in scpsys_add_one_domain()
[all …]
A Dmtk-scpsys.c136 struct generic_pm_domain genpd; member
303 static int scpsys_power_on(struct generic_pm_domain *genpd) in scpsys_power_on() argument
305 struct scp_domain *scpd = container_of(genpd, struct scp_domain, genpd); in scpsys_power_on()
356 dev_err(scp->dev, "Failed to power on domain %s\n", genpd->name); in scpsys_power_on()
361 static int scpsys_power_off(struct generic_pm_domain *genpd) in scpsys_power_off() argument
363 struct scp_domain *scpd = container_of(genpd, struct scp_domain, genpd); in scpsys_power_off()
409 dev_err(scp->dev, "Failed to power off domain %s\n", genpd->name); in scpsys_power_off()
488 struct generic_pm_domain *genpd = &scpd->genpd; in init_scp() local
491 pd_data->domains[i] = genpd; in init_scp()
508 genpd->name = data->name; in init_scp()
[all …]
/linux-5.15/drivers/firmware/
A Dscpi_pm_domain.c16 struct generic_pm_domain genpd; member
32 #define to_scpi_pd(gpd) container_of(gpd, struct scpi_pm_domain, genpd)
109 domains[i] = &scpi_pd->genpd; in scpi_pm_domain_probe()
114 scpi_pd->genpd.name = scpi_pd->name; in scpi_pm_domain_probe()
115 scpi_pd->genpd.power_off = scpi_pd_power_off; in scpi_pm_domain_probe()
116 scpi_pd->genpd.power_on = scpi_pd_power_on; in scpi_pm_domain_probe()
124 pm_genpd_init(&scpi_pd->genpd, NULL, true); in scpi_pm_domain_probe()
/linux-5.15/drivers/soc/actions/
A Dowl-sps.c39 #define to_owl_pd(gpd) container_of(gpd, struct owl_sps_domain, genpd)
42 struct generic_pm_domain genpd; member
86 pd->genpd.name = pd->info->name; in owl_sps_init_domain()
87 pd->genpd.power_on = owl_sps_power_on; in owl_sps_init_domain()
88 pd->genpd.power_off = owl_sps_power_off; in owl_sps_init_domain()
89 pd->genpd.flags = pd->info->genpd_flags; in owl_sps_init_domain()
90 pm_genpd_init(&pd->genpd, NULL, false); in owl_sps_init_domain()
92 sps->genpd_data.domains[index] = &pd->genpd; in owl_sps_init_domain()
/linux-5.15/drivers/soc/rockchip/
A Dpm_domains.c69 struct generic_pm_domain genpd; member
88 #define to_rockchip_pd(gpd) container_of(gpd, struct rockchip_pm_domain, genpd)
164 struct generic_pm_domain *genpd = &pd->genpd; in rockchip_pmu_set_idle_request() local
191 genpd->name, val); in rockchip_pmu_set_idle_request()
200 genpd->name, is_idle); in rockchip_pmu_set_idle_request()
275 struct generic_pm_domain *genpd = &pd->genpd; in rockchip_do_pmu_set_power_domain() local
294 genpd->name, is_on); in rockchip_do_pmu_set_power_domain()
351 static int rockchip_pd_attach_dev(struct generic_pm_domain *genpd, in rockchip_pd_attach_dev() argument
358 dev_dbg(dev, "attaching to power domain '%s'\n", genpd->name); in rockchip_pd_attach_dev()
381 static void rockchip_pd_detach_dev(struct generic_pm_domain *genpd, in rockchip_pd_detach_dev() argument
[all …]
/linux-5.15/drivers/clk/renesas/
A Drzg2l-cpg.c644 struct generic_pm_domain *genpd; in rzg2l_cpg_add_clk_domain() local
646 genpd = devm_kzalloc(dev, sizeof(*genpd), GFP_KERNEL); in rzg2l_cpg_add_clk_domain()
647 if (!genpd) in rzg2l_cpg_add_clk_domain()
650 genpd->name = np->name; in rzg2l_cpg_add_clk_domain()
651 genpd->flags = GENPD_FLAG_PM_CLK | GENPD_FLAG_ALWAYS_ON | in rzg2l_cpg_add_clk_domain()
653 genpd->attach_dev = rzg2l_cpg_attach_dev; in rzg2l_cpg_add_clk_domain()
654 genpd->detach_dev = rzg2l_cpg_detach_dev; in rzg2l_cpg_add_clk_domain()
655 pm_genpd_init(genpd, &pm_domain_always_on_gov, false); in rzg2l_cpg_add_clk_domain()
657 of_genpd_add_provider_simple(np, genpd); in rzg2l_cpg_add_clk_domain()
A Drenesas-cpg-mssr.c470 struct generic_pm_domain genpd; member
482 if (clkspec->np != pd->genpd.dev.of_node || clkspec->args_count != 2) in cpg_mssr_is_pm_clk()
560 struct generic_pm_domain *genpd; in cpg_mssr_add_clk_domain() local
571 genpd = &pd->genpd; in cpg_mssr_add_clk_domain()
572 genpd->name = np->name; in cpg_mssr_add_clk_domain()
573 genpd->flags = GENPD_FLAG_PM_CLK | GENPD_FLAG_ALWAYS_ON | in cpg_mssr_add_clk_domain()
575 genpd->attach_dev = cpg_mssr_attach_dev; in cpg_mssr_add_clk_domain()
576 genpd->detach_dev = cpg_mssr_detach_dev; in cpg_mssr_add_clk_domain()
577 pm_genpd_init(genpd, &pm_domain_always_on_gov, false); in cpg_mssr_add_clk_domain()
580 of_genpd_add_provider_simple(np, genpd); in cpg_mssr_add_clk_domain()
/linux-5.15/drivers/cpuidle/
A Dcpuidle-psci-domain.c183 struct generic_pm_domain *genpd; in psci_pd_remove() local
188 genpd = of_genpd_remove_last(pd_provider->node); in psci_pd_remove()
189 if (!IS_ERR(genpd)) in psci_pd_remove()
190 kfree(genpd); in psci_pd_remove()
/linux-5.15/drivers/media/platform/qcom/camss/
A Dcamss.c1257 camss->genpd[i] = dev_pm_domain_attach_by_id(camss->dev, i); in camss_configure_pd()
1258 if (IS_ERR(camss->genpd[i])) { in camss_configure_pd()
1259 ret = PTR_ERR(camss->genpd[i]); in camss_configure_pd()
1263 camss->genpd_link[i] = device_link_add(camss->dev, camss->genpd[i], in camss_configure_pd()
1267 dev_pm_domain_detach(camss->genpd[i], true); in camss_configure_pd()
1280 dev_pm_domain_detach(camss->genpd[i], true); in camss_configure_pd()
1465 dev_pm_domain_detach(camss->genpd[i], true); in camss_delete()

12