Lines Matching full:pd
157 static void rockchip_pmu_lock(struct rockchip_pm_domain *pd) in rockchip_pmu_lock() argument
159 mutex_lock(&pd->pmu->mutex); in rockchip_pmu_lock()
163 static void rockchip_pmu_unlock(struct rockchip_pm_domain *pd) in rockchip_pmu_unlock() argument
166 mutex_unlock(&pd->pmu->mutex); in rockchip_pmu_unlock()
330 static bool rockchip_pmu_domain_is_idle(struct rockchip_pm_domain *pd) in rockchip_pmu_domain_is_idle() argument
332 struct rockchip_pmu *pmu = pd->pmu; in rockchip_pmu_domain_is_idle()
333 const struct rockchip_domain_info *pd_info = pd->info; in rockchip_pmu_domain_is_idle()
348 static int rockchip_pmu_ungate_clk(struct rockchip_pm_domain *pd, bool ungate) in rockchip_pmu_ungate_clk() argument
350 const struct rockchip_domain_info *pd_info = pd->info; in rockchip_pmu_ungate_clk()
351 struct rockchip_pmu *pmu = pd->pmu; in rockchip_pmu_ungate_clk()
366 static int rockchip_pmu_mem_shut_down(struct rockchip_pm_domain *pd, bool sd) in rockchip_pmu_mem_shut_down() argument
368 const struct rockchip_domain_info *pd_info = pd->info; in rockchip_pmu_mem_shut_down()
369 struct rockchip_pmu *pmu = pd->pmu; in rockchip_pmu_mem_shut_down()
384 static int rockchip_pmu_set_idle_request(struct rockchip_pm_domain *pd, in rockchip_pmu_set_idle_request() argument
387 const struct rockchip_domain_info *pd_info = pd->info; in rockchip_pmu_set_idle_request()
388 struct generic_pm_domain *genpd = &pd->genpd; in rockchip_pmu_set_idle_request()
389 struct rockchip_pmu *pmu = pd->pmu; in rockchip_pmu_set_idle_request()
424 ret = readx_poll_timeout_atomic(rockchip_pmu_domain_is_idle, pd, in rockchip_pmu_set_idle_request()
442 struct rockchip_pm_domain *pd; in rockchip_pmu_idle_request() local
452 pd = to_rockchip_pd(genpd); in rockchip_pmu_idle_request()
454 rockchip_pmu_lock(pd); in rockchip_pmu_idle_request()
455 ret = rockchip_pmu_set_idle_request(pd, idle); in rockchip_pmu_idle_request()
456 rockchip_pmu_unlock(pd); in rockchip_pmu_idle_request()
462 static int rockchip_pmu_save_qos(struct rockchip_pm_domain *pd) in rockchip_pmu_save_qos() argument
466 for (i = 0; i < pd->num_qos; i++) { in rockchip_pmu_save_qos()
467 regmap_read(pd->qos_regmap[i], in rockchip_pmu_save_qos()
469 &pd->qos_save_regs[0][i]); in rockchip_pmu_save_qos()
470 regmap_read(pd->qos_regmap[i], in rockchip_pmu_save_qos()
472 &pd->qos_save_regs[1][i]); in rockchip_pmu_save_qos()
473 regmap_read(pd->qos_regmap[i], in rockchip_pmu_save_qos()
475 &pd->qos_save_regs[2][i]); in rockchip_pmu_save_qos()
476 regmap_read(pd->qos_regmap[i], in rockchip_pmu_save_qos()
478 &pd->qos_save_regs[3][i]); in rockchip_pmu_save_qos()
479 regmap_read(pd->qos_regmap[i], in rockchip_pmu_save_qos()
481 &pd->qos_save_regs[4][i]); in rockchip_pmu_save_qos()
486 static int rockchip_pmu_restore_qos(struct rockchip_pm_domain *pd) in rockchip_pmu_restore_qos() argument
490 for (i = 0; i < pd->num_qos; i++) { in rockchip_pmu_restore_qos()
491 regmap_write(pd->qos_regmap[i], in rockchip_pmu_restore_qos()
493 pd->qos_save_regs[0][i]); in rockchip_pmu_restore_qos()
494 regmap_write(pd->qos_regmap[i], in rockchip_pmu_restore_qos()
496 pd->qos_save_regs[1][i]); in rockchip_pmu_restore_qos()
497 regmap_write(pd->qos_regmap[i], in rockchip_pmu_restore_qos()
499 pd->qos_save_regs[2][i]); in rockchip_pmu_restore_qos()
500 regmap_write(pd->qos_regmap[i], in rockchip_pmu_restore_qos()
502 pd->qos_save_regs[3][i]); in rockchip_pmu_restore_qos()
503 regmap_write(pd->qos_regmap[i], in rockchip_pmu_restore_qos()
505 pd->qos_save_regs[4][i]); in rockchip_pmu_restore_qos()
511 static void rockchip_pmu_init_qos(struct rockchip_pm_domain *pd) in rockchip_pmu_init_qos() argument
515 if (!pd->is_qos_need_init) in rockchip_pmu_init_qos()
518 for (i = 0; i < pd->num_qos; i++) { in rockchip_pmu_init_qos()
519 if (pd->qos_is_need_init[0][i]) in rockchip_pmu_init_qos()
520 regmap_write(pd->qos_regmap[i], in rockchip_pmu_init_qos()
522 pd->qos_save_regs[0][i]); in rockchip_pmu_init_qos()
524 if (pd->qos_is_need_init[1][i]) in rockchip_pmu_init_qos()
525 regmap_write(pd->qos_regmap[i], in rockchip_pmu_init_qos()
527 pd->qos_save_regs[1][i]); in rockchip_pmu_init_qos()
529 if (pd->qos_is_need_init[2][i]) in rockchip_pmu_init_qos()
530 regmap_write(pd->qos_regmap[i], in rockchip_pmu_init_qos()
532 pd->qos_save_regs[2][i]); in rockchip_pmu_init_qos()
534 if (pd->qos_is_need_init[3][i]) in rockchip_pmu_init_qos()
535 regmap_write(pd->qos_regmap[i], in rockchip_pmu_init_qos()
537 pd->qos_save_regs[3][i]); in rockchip_pmu_init_qos()
539 if (pd->qos_is_need_init[4][i]) in rockchip_pmu_init_qos()
540 regmap_write(pd->qos_regmap[i], in rockchip_pmu_init_qos()
542 pd->qos_save_regs[4][i]); in rockchip_pmu_init_qos()
545 kfree(pd->qos_is_need_init[0]); in rockchip_pmu_init_qos()
546 pd->qos_is_need_init[0] = NULL; in rockchip_pmu_init_qos()
547 pd->is_qos_need_init = false; in rockchip_pmu_init_qos()
553 struct rockchip_pm_domain *pd; in rockchip_save_qos() local
563 pd = to_rockchip_pd(genpd); in rockchip_save_qos()
565 rockchip_pmu_lock(pd); in rockchip_save_qos()
566 ret = rockchip_pmu_save_qos(pd); in rockchip_save_qos()
567 rockchip_pmu_unlock(pd); in rockchip_save_qos()
576 struct rockchip_pm_domain *pd; in rockchip_restore_qos() local
586 pd = to_rockchip_pd(genpd); in rockchip_restore_qos()
588 rockchip_pmu_lock(pd); in rockchip_restore_qos()
589 ret = rockchip_pmu_restore_qos(pd); in rockchip_restore_qos()
590 rockchip_pmu_unlock(pd); in rockchip_restore_qos()
596 static bool rockchip_pmu_domain_is_mem_on(struct rockchip_pm_domain *pd) in rockchip_pmu_domain_is_mem_on() argument
598 struct rockchip_pmu *pmu = pd->pmu; in rockchip_pmu_domain_is_mem_on()
602 pmu->info->mem_status_offset + pd->info->mem_offset, &val); in rockchip_pmu_domain_is_mem_on()
605 return !(val & pd->info->mem_status_mask); in rockchip_pmu_domain_is_mem_on()
608 static bool rockchip_pmu_domain_is_chain_on(struct rockchip_pm_domain *pd) in rockchip_pmu_domain_is_chain_on() argument
610 struct rockchip_pmu *pmu = pd->pmu; in rockchip_pmu_domain_is_chain_on()
614 pmu->info->chain_status_offset + pd->info->mem_offset, &val); in rockchip_pmu_domain_is_chain_on()
617 return val & pd->info->mem_status_mask; in rockchip_pmu_domain_is_chain_on()
620 static int rockchip_pmu_domain_mem_reset(struct rockchip_pm_domain *pd) in rockchip_pmu_domain_mem_reset() argument
622 struct rockchip_pmu *pmu = pd->pmu; in rockchip_pmu_domain_mem_reset()
623 struct generic_pm_domain *genpd = &pd->genpd; in rockchip_pmu_domain_mem_reset()
627 ret = readx_poll_timeout_atomic(rockchip_pmu_domain_is_chain_on, pd, is_on, in rockchip_pmu_domain_mem_reset()
638 regmap_write(pmu->regmap, pmu->info->mem_pwr_offset + pd->info->pwr_offset, in rockchip_pmu_domain_mem_reset()
639 (pd->info->pwr_mask | pd->info->pwr_w_mask)); in rockchip_pmu_domain_mem_reset()
642 ret = readx_poll_timeout_atomic(rockchip_pmu_domain_is_mem_on, pd, is_on, in rockchip_pmu_domain_mem_reset()
651 regmap_write(pmu->regmap, pmu->info->mem_pwr_offset + pd->info->pwr_offset, in rockchip_pmu_domain_mem_reset()
652 pd->info->pwr_w_mask); in rockchip_pmu_domain_mem_reset()
655 ret = readx_poll_timeout_atomic(rockchip_pmu_domain_is_mem_on, pd, is_on, in rockchip_pmu_domain_mem_reset()
668 static bool rockchip_pmu_domain_is_on(struct rockchip_pm_domain *pd) in rockchip_pmu_domain_is_on() argument
670 struct rockchip_pmu *pmu = pd->pmu; in rockchip_pmu_domain_is_on()
673 if (pd->info->repair_status_mask) { in rockchip_pmu_domain_is_on()
676 return val & pd->info->repair_status_mask; in rockchip_pmu_domain_is_on()
680 if (pd->info->status_mask == 0) in rockchip_pmu_domain_is_on()
681 return !rockchip_pmu_domain_is_idle(pd); in rockchip_pmu_domain_is_on()
686 return !(val & pd->info->status_mask); in rockchip_pmu_domain_is_on()
689 static int rockchip_do_pmu_set_power_domain(struct rockchip_pm_domain *pd, in rockchip_do_pmu_set_power_domain() argument
692 struct rockchip_pmu *pmu = pd->pmu; in rockchip_do_pmu_set_power_domain()
693 struct generic_pm_domain *genpd = &pd->genpd; in rockchip_do_pmu_set_power_domain()
698 if (pd->info->pwr_mask == 0) in rockchip_do_pmu_set_power_domain()
701 if (on && pd->info->mem_status_mask) in rockchip_do_pmu_set_power_domain()
702 is_mem_on = rockchip_pmu_domain_is_mem_on(pd); in rockchip_do_pmu_set_power_domain()
704 if (pd->info->pwr_offset) in rockchip_do_pmu_set_power_domain()
705 pd_pwr_offset = pd->info->pwr_offset; in rockchip_do_pmu_set_power_domain()
707 if (pd->info->pwr_w_mask) in rockchip_do_pmu_set_power_domain()
709 on ? pd->info->pwr_w_mask : in rockchip_do_pmu_set_power_domain()
710 (pd->info->pwr_mask | pd->info->pwr_w_mask)); in rockchip_do_pmu_set_power_domain()
713 pd_pwr_offset, pd->info->pwr_mask, in rockchip_do_pmu_set_power_domain()
719 ret = rockchip_pmu_domain_mem_reset(pd); in rockchip_do_pmu_set_power_domain()
724 ret = readx_poll_timeout_atomic(rockchip_pmu_domain_is_on, pd, is_on, in rockchip_do_pmu_set_power_domain()
739 static int rockchip_pd_power(struct rockchip_pm_domain *pd, bool power_on) in rockchip_pd_power() argument
741 struct rockchip_pmu *pmu = pd->pmu; in rockchip_pd_power()
743 struct generic_pm_domain *genpd = &pd->genpd; in rockchip_pd_power()
753 rockchip_pmu_lock(pd); in rockchip_pd_power()
755 if (rockchip_pmu_domain_is_on(pd) != power_on) { in rockchip_pd_power()
756 if (IS_ERR_OR_NULL(pd->supply) && in rockchip_pd_power()
757 PTR_ERR(pd->supply) != -ENODEV) in rockchip_pd_power()
758 pd->supply = devm_regulator_get_optional(pd->pmu->dev, in rockchip_pd_power()
761 if (power_on && !IS_ERR(pd->supply)) { in rockchip_pd_power()
762 ret = regulator_enable(pd->supply); in rockchip_pd_power()
764 dev_err(pd->pmu->dev, "failed to set vdd supply enable '%s',\n", in rockchip_pd_power()
766 rockchip_pmu_unlock(pd); in rockchip_pd_power()
771 ret = clk_bulk_enable(pd->num_clks, pd->clks); in rockchip_pd_power()
774 rockchip_pmu_unlock(pd); in rockchip_pd_power()
777 rockchip_pmu_ungate_clk(pd, true); in rockchip_pd_power()
780 rockchip_pmu_save_qos(pd); in rockchip_pd_power()
781 pd->is_qos_saved = true; in rockchip_pd_power()
784 ret = rockchip_pmu_set_idle_request(pd, true); in rockchip_pd_power()
786 dev_err(pd->pmu->dev, "failed to set idle request '%s',\n", in rockchip_pd_power()
790 rockchip_pmu_mem_shut_down(pd, true); in rockchip_pd_power()
793 ret = rockchip_do_pmu_set_power_domain(pd, power_on); in rockchip_pd_power()
795 dev_err(pd->pmu->dev, "failed to set power '%s' = %d,\n", in rockchip_pd_power()
801 rockchip_pmu_mem_shut_down(pd, false); in rockchip_pd_power()
803 ret = rockchip_pmu_set_idle_request(pd, false); in rockchip_pd_power()
805 dev_err(pd->pmu->dev, "failed to set deidle request '%s',\n", in rockchip_pd_power()
810 if (pd->is_qos_saved) in rockchip_pd_power()
811 rockchip_pmu_restore_qos(pd); in rockchip_pd_power()
812 if (pd->is_qos_need_init) in rockchip_pd_power()
813 rockchip_pmu_init_qos(pd); in rockchip_pd_power()
817 rockchip_pmu_ungate_clk(pd, false); in rockchip_pd_power()
818 clk_bulk_disable(pd->num_clks, pd->clks); in rockchip_pd_power()
820 if (!power_on && !IS_ERR(pd->supply)) in rockchip_pd_power()
821 ret = regulator_disable(pd->supply); in rockchip_pd_power()
824 rockchip_pmu_unlock(pd); in rockchip_pd_power()
830 struct rockchip_pm_domain *pd = to_rockchip_pd(domain); in rockchip_pd_power_on() local
832 if (pd->is_ignore_pwr) in rockchip_pd_power_on()
835 return rockchip_pd_power(pd, true); in rockchip_pd_power_on()
840 struct rockchip_pm_domain *pd = to_rockchip_pd(domain); in rockchip_pd_power_off() local
842 if (pd->is_ignore_pwr) in rockchip_pd_power_off()
845 return rockchip_pd_power(pd, false); in rockchip_pd_power_off()
851 struct rockchip_pm_domain *pd; in rockchip_pmu_pd_on() local
860 pd = to_rockchip_pd(genpd); in rockchip_pmu_pd_on()
862 return rockchip_pd_power(pd, true); in rockchip_pmu_pd_on()
869 struct rockchip_pm_domain *pd; in rockchip_pmu_pd_off() local
878 pd = to_rockchip_pd(genpd); in rockchip_pmu_pd_off()
880 return rockchip_pd_power(pd, false); in rockchip_pmu_pd_off()
887 struct rockchip_pm_domain *pd; in rockchip_pmu_pd_is_on() local
897 pd = to_rockchip_pd(genpd); in rockchip_pmu_pd_is_on()
899 rockchip_pmu_lock(pd); in rockchip_pmu_pd_is_on()
900 is_on = rockchip_pmu_domain_is_on(pd); in rockchip_pmu_pd_is_on()
901 rockchip_pmu_unlock(pd); in rockchip_pmu_pd_is_on()
945 static void rockchip_pd_qos_init(struct rockchip_pm_domain *pd) in rockchip_pd_qos_init() argument
949 if (!pd->is_qos_need_init) { in rockchip_pd_qos_init()
950 kfree(pd->qos_is_need_init[0]); in rockchip_pd_qos_init()
951 pd->qos_is_need_init[0] = NULL; in rockchip_pd_qos_init()
955 is_pd_on = rockchip_pmu_domain_is_on(pd); in rockchip_pd_qos_init()
957 ret = clk_bulk_enable(pd->num_clks, pd->clks); in rockchip_pd_qos_init()
959 dev_err(pd->pmu->dev, "failed to enable clocks\n"); in rockchip_pd_qos_init()
962 rockchip_pmu_init_qos(pd); in rockchip_pd_qos_init()
963 clk_bulk_disable(pd->num_clks, pd->clks); in rockchip_pd_qos_init()
967 static int rockchip_pd_add_alwasy_on_flag(struct rockchip_pm_domain *pd) in rockchip_pd_add_alwasy_on_flag() argument
971 if (pd->genpd.flags & GENPD_FLAG_ALWAYS_ON) in rockchip_pd_add_alwasy_on_flag()
973 pd->genpd.flags |= GENPD_FLAG_ALWAYS_ON; in rockchip_pd_add_alwasy_on_flag()
974 if (!rockchip_pmu_domain_is_on(pd)) { in rockchip_pd_add_alwasy_on_flag()
975 error = rockchip_pd_power(pd, true); in rockchip_pd_add_alwasy_on_flag()
977 dev_err(pd->pmu->dev, in rockchip_pd_add_alwasy_on_flag()
979 pd->genpd.name, error); in rockchip_pd_add_alwasy_on_flag()
991 struct rockchip_pm_domain *pd; in rockchip_pm_add_one_domain() local
1021 pd = devm_kzalloc(pmu->dev, sizeof(*pd), GFP_KERNEL); in rockchip_pm_add_one_domain()
1022 if (!pd) in rockchip_pm_add_one_domain()
1025 pd->info = pd_info; in rockchip_pm_add_one_domain()
1026 pd->pmu = pmu; in rockchip_pm_add_one_domain()
1028 pd->is_ignore_pwr = true; in rockchip_pm_add_one_domain()
1030 pd->num_clks = of_clk_get_parent_count(node); in rockchip_pm_add_one_domain()
1031 if (pd->num_clks > 0) { in rockchip_pm_add_one_domain()
1032 pd->clks = devm_kcalloc(pmu->dev, pd->num_clks, in rockchip_pm_add_one_domain()
1033 sizeof(*pd->clks), GFP_KERNEL); in rockchip_pm_add_one_domain()
1034 if (!pd->clks) in rockchip_pm_add_one_domain()
1038 node, pd->num_clks); in rockchip_pm_add_one_domain()
1039 pd->num_clks = 0; in rockchip_pm_add_one_domain()
1042 for (i = 0; i < pd->num_clks; i++) { in rockchip_pm_add_one_domain()
1043 pd->clks[i].clk = of_clk_get(node, i); in rockchip_pm_add_one_domain()
1044 if (IS_ERR(pd->clks[i].clk)) { in rockchip_pm_add_one_domain()
1045 error = PTR_ERR(pd->clks[i].clk); in rockchip_pm_add_one_domain()
1053 error = clk_bulk_prepare(pd->num_clks, pd->clks); in rockchip_pm_add_one_domain()
1062 pd->num_qos++; in rockchip_pm_add_one_domain()
1066 if (pd->num_qos > 0) { in rockchip_pm_add_one_domain()
1067 pd->qos_regmap = devm_kcalloc(pmu->dev, pd->num_qos, in rockchip_pm_add_one_domain()
1068 sizeof(*pd->qos_regmap), in rockchip_pm_add_one_domain()
1070 if (!pd->qos_regmap) { in rockchip_pm_add_one_domain()
1075 pd->qos_save_regs[0] = (u32 *)devm_kmalloc(pmu->dev, in rockchip_pm_add_one_domain()
1078 pd->num_qos, in rockchip_pm_add_one_domain()
1080 if (!pd->qos_save_regs[0]) { in rockchip_pm_add_one_domain()
1084 pd->qos_is_need_init[0] = kzalloc(sizeof(bool) * in rockchip_pm_add_one_domain()
1086 pd->num_qos, in rockchip_pm_add_one_domain()
1088 if (!pd->qos_is_need_init[0]) { in rockchip_pm_add_one_domain()
1093 pd->qos_save_regs[i] = pd->qos_save_regs[i - 1] + in rockchip_pm_add_one_domain()
1095 pd->qos_is_need_init[i] = pd->qos_is_need_init[i - 1] + in rockchip_pm_add_one_domain()
1106 pd->qos_regmap[num_qos_reg] = in rockchip_pm_add_one_domain()
1108 if (IS_ERR(pd->qos_regmap[num_qos_reg])) { in rockchip_pm_add_one_domain()
1116 pd->qos_save_regs[0][j] = val; in rockchip_pm_add_one_domain()
1117 pd->qos_is_need_init[0][j] = true; in rockchip_pm_add_one_domain()
1118 pd->is_qos_need_init = true; in rockchip_pm_add_one_domain()
1124 pd->qos_save_regs[1][j] = val; in rockchip_pm_add_one_domain()
1125 pd->qos_is_need_init[1][j] = true; in rockchip_pm_add_one_domain()
1126 pd->is_qos_need_init = true; in rockchip_pm_add_one_domain()
1132 pd->qos_save_regs[2][j] = val; in rockchip_pm_add_one_domain()
1133 pd->qos_is_need_init[2][j] = true; in rockchip_pm_add_one_domain()
1134 pd->is_qos_need_init = true; in rockchip_pm_add_one_domain()
1140 pd->qos_save_regs[3][j] = val; in rockchip_pm_add_one_domain()
1141 pd->qos_is_need_init[3][j] = true; in rockchip_pm_add_one_domain()
1142 pd->is_qos_need_init = true; in rockchip_pm_add_one_domain()
1148 pd->qos_save_regs[4][j] = val; in rockchip_pm_add_one_domain()
1149 pd->qos_is_need_init[4][j] = true; in rockchip_pm_add_one_domain()
1150 pd->is_qos_need_init = true; in rockchip_pm_add_one_domain()
1156 if (num_qos_reg > pd->num_qos) { in rockchip_pm_add_one_domain()
1163 if (pd->info->name) in rockchip_pm_add_one_domain()
1164 pd->genpd.name = pd->info->name; in rockchip_pm_add_one_domain()
1166 pd->genpd.name = kbasename(node->full_name); in rockchip_pm_add_one_domain()
1167 pd->genpd.power_off = rockchip_pd_power_off; in rockchip_pm_add_one_domain()
1168 pd->genpd.power_on = rockchip_pd_power_on; in rockchip_pm_add_one_domain()
1169 pd->genpd.attach_dev = rockchip_pd_attach_dev; in rockchip_pm_add_one_domain()
1170 pd->genpd.detach_dev = rockchip_pd_detach_dev; in rockchip_pm_add_one_domain()
1172 pd->genpd.flags |= GENPD_FLAG_ACTIVE_WAKEUP; in rockchip_pm_add_one_domain()
1174 error = rockchip_pd_add_alwasy_on_flag(pd); in rockchip_pm_add_one_domain()
1178 rockchip_pd_qos_init(pd); in rockchip_pm_add_one_domain()
1180 pm_genpd_init(&pd->genpd, NULL, !rockchip_pmu_domain_is_on(pd)); in rockchip_pm_add_one_domain()
1182 pmu->genpd_data.domains[id] = &pd->genpd; in rockchip_pm_add_one_domain()
1186 kfree(pd->qos_is_need_init[0]); in rockchip_pm_add_one_domain()
1187 pd->qos_is_need_init[0] = NULL; in rockchip_pm_add_one_domain()
1188 clk_bulk_unprepare(pd->num_clks, pd->clks); in rockchip_pm_add_one_domain()
1190 clk_bulk_put(pd->num_clks, pd->clks); in rockchip_pm_add_one_domain()
1194 static void rockchip_pm_remove_one_domain(struct rockchip_pm_domain *pd) in rockchip_pm_remove_one_domain() argument
1202 ret = pm_genpd_remove(&pd->genpd); in rockchip_pm_remove_one_domain()
1204 dev_err(pd->pmu->dev, "failed to remove domain '%s' : %d - state may be inconsistent\n", in rockchip_pm_remove_one_domain()
1205 pd->genpd.name, ret); in rockchip_pm_remove_one_domain()
1207 clk_bulk_unprepare(pd->num_clks, pd->clks); in rockchip_pm_remove_one_domain()
1208 clk_bulk_put(pd->num_clks, pd->clks); in rockchip_pm_remove_one_domain()
1211 rockchip_pmu_lock(pd); in rockchip_pm_remove_one_domain()
1212 pd->num_clks = 0; in rockchip_pm_remove_one_domain()
1213 rockchip_pmu_unlock(pd); in rockchip_pm_remove_one_domain()
1221 struct rockchip_pm_domain *pd; in rockchip_pm_domain_cleanup() local
1227 pd = to_rockchip_pd(genpd); in rockchip_pm_domain_cleanup()
1228 rockchip_pm_remove_one_domain(pd); in rockchip_pm_domain_cleanup()
1315 struct rockchip_pm_domain *pd; in rockchip_pd_keepon_do_release() local
1324 pd = to_rockchip_pd(genpd); in rockchip_pd_keepon_do_release()
1325 if (pd->info->always_on) in rockchip_pd_keepon_do_release()
1327 if (!pd->info->keepon_startup) in rockchip_pd_keepon_do_release()