Lines Matching full:cluster

412 	struct cluster_info *cluster;  in rockchip_cluster_info_lookup()  local
414 list_for_each_entry(cluster, &cluster_info_list, list_head) { in rockchip_cluster_info_lookup()
415 if (cpumask_test_cpu(cpu, &cluster->cpus)) in rockchip_cluster_info_lookup()
416 return cluster; in rockchip_cluster_info_lookup()
452 struct cluster_info *cluster; in cpu_opp_helper() local
459 cluster = rockchip_cluster_info_lookup(dev->id); in cpu_opp_helper()
460 if (!cluster) in cpu_opp_helper()
462 opp_info = &cluster->opp_info; in cpu_opp_helper()
521 cluster->volt = new_supply_vdd->u_volt; in cpu_opp_helper()
522 cluster->mem_volt = new_supply_mem->u_volt; in cpu_opp_helper()
541 static int rockchip_cpufreq_cluster_init(int cpu, struct cluster_info *cluster) in rockchip_cpufreq_cluster_init() argument
543 struct rockchip_opp_info *opp_info = &cluster->opp_info; in rockchip_cpufreq_cluster_init()
581 ret = dev_pm_opp_of_get_sharing_cpus(dev, &cluster->cpus); in rockchip_cpufreq_cluster_init()
587 cluster->is_opp_shared_dsu = of_property_read_bool(np, "rockchip,opp-shared-dsu"); in rockchip_cpufreq_cluster_init()
589 cluster->idle_threshold_freq = freq; in rockchip_cpufreq_cluster_init()
609 &cluster->scale, &volt_sel); in rockchip_cpufreq_cluster_init()
616 cluster->regulator_count = 2; in rockchip_cpufreq_cluster_init()
630 cluster->regulator_count = 1; in rockchip_cpufreq_cluster_init()
651 struct cluster_info *cluster; in rockchip_cpufreq_adjust_power_scale() local
653 cluster = rockchip_cluster_info_lookup(dev->id); in rockchip_cpufreq_adjust_power_scale()
654 if (!cluster) in rockchip_cpufreq_adjust_power_scale()
656 rockchip_adjust_power_scale(dev, cluster->scale); in rockchip_cpufreq_adjust_power_scale()
657 rockchip_pvtpll_calibrate_opp(&cluster->opp_info); in rockchip_cpufreq_adjust_power_scale()
658 rockchip_pvtpll_add_length(&cluster->opp_info); in rockchip_cpufreq_adjust_power_scale()
666 struct cluster_info *cluster; in rockchip_cpufreq_opp_set_rate() local
671 cluster = rockchip_cluster_info_lookup(dev->id); in rockchip_cpufreq_opp_set_rate()
672 if (!cluster) in rockchip_cpufreq_opp_set_rate()
675 rockchip_monitor_volt_adjust_lock(cluster->mdev_info); in rockchip_cpufreq_opp_set_rate()
678 cluster->rate = target_freq; in rockchip_cpufreq_opp_set_rate()
679 if (cluster->regulator_count == 1) { in rockchip_cpufreq_opp_set_rate()
681 opp = dev_pm_opp_find_freq_ceil(cluster->opp_info.dev, &freq); in rockchip_cpufreq_opp_set_rate()
683 cluster->volt = dev_pm_opp_get_voltage(opp); in rockchip_cpufreq_opp_set_rate()
688 rockchip_monitor_volt_adjust_unlock(cluster->mdev_info); in rockchip_cpufreq_opp_set_rate()
705 static int rockchip_cpufreq_add_monitor(struct cluster_info *cluster, in rockchip_cpufreq_add_monitor() argument
708 struct device *dev = cluster->opp_info.dev; in rockchip_cpufreq_add_monitor()
721 mdevp->opp_info = &cluster->opp_info; in rockchip_cpufreq_add_monitor()
730 cluster->mdev_info = mdev_info; in rockchip_cpufreq_add_monitor()
735 static int rockchip_cpufreq_remove_monitor(struct cluster_info *cluster) in rockchip_cpufreq_remove_monitor() argument
737 if (cluster->mdev_info) { in rockchip_cpufreq_remove_monitor()
738 kfree(cluster->mdev_info->devp); in rockchip_cpufreq_remove_monitor()
739 rockchip_system_monitor_unregister(cluster->mdev_info); in rockchip_cpufreq_remove_monitor()
740 cluster->mdev_info = NULL; in rockchip_cpufreq_remove_monitor()
746 static int rockchip_cpufreq_remove_dsu_qos(struct cluster_info *cluster) in rockchip_cpufreq_remove_dsu_qos() argument
750 if (!cluster->is_opp_shared_dsu) in rockchip_cpufreq_remove_dsu_qos()
763 static int rockchip_cpufreq_add_dsu_qos_req(struct cluster_info *cluster, in rockchip_cpufreq_add_dsu_qos_req() argument
766 struct device *dev = cluster->opp_info.dev; in rockchip_cpufreq_add_dsu_qos_req()
770 if (!cluster->is_opp_shared_dsu) in rockchip_cpufreq_add_dsu_qos_req()
789 rockchip_cpufreq_remove_dsu_qos(cluster); in rockchip_cpufreq_add_dsu_qos_req()
798 struct cluster_info *cluster; in rockchip_cpufreq_notifier() local
800 cluster = rockchip_cluster_info_lookup(policy->cpu); in rockchip_cpufreq_notifier()
801 if (!cluster) in rockchip_cpufreq_notifier()
805 if (rockchip_cpufreq_add_monitor(cluster, policy)) in rockchip_cpufreq_notifier()
807 if (rockchip_cpufreq_add_dsu_qos_req(cluster, policy)) in rockchip_cpufreq_notifier()
810 rockchip_cpufreq_remove_monitor(cluster); in rockchip_cpufreq_notifier()
811 rockchip_cpufreq_remove_dsu_qos(cluster); in rockchip_cpufreq_notifier()
877 static int rockchip_cpufreq_update_dsu_req(struct cluster_info *cluster, in rockchip_cpufreq_update_dsu_req() argument
880 struct device *dev = cluster->opp_info.dev; in rockchip_cpufreq_update_dsu_req()
883 if (cluster->is_opp_shared_dsu || in rockchip_cpufreq_update_dsu_req()
884 !freq_qos_request_active(&cluster->dsu_qos_req)) in rockchip_cpufreq_update_dsu_req()
889 return freq_qos_update_request(&cluster->dsu_qos_req, dsu_freq); in rockchip_cpufreq_update_dsu_req()
897 struct cluster_info *cluster; in rockchip_cpufreq_transition_notifier() local
899 cluster = rockchip_cluster_info_lookup(policy->cpu); in rockchip_cpufreq_transition_notifier()
900 if (!cluster) in rockchip_cpufreq_transition_notifier()
904 if (cluster->idle_threshold_freq && in rockchip_cpufreq_transition_notifier()
905 freqs->new >= cluster->idle_threshold_freq && in rockchip_cpufreq_transition_notifier()
906 !cluster->is_idle_disabled) { in rockchip_cpufreq_transition_notifier()
909 cluster->is_idle_disabled = true; in rockchip_cpufreq_transition_notifier()
912 if (cluster->idle_threshold_freq && in rockchip_cpufreq_transition_notifier()
913 freqs->new < cluster->idle_threshold_freq && in rockchip_cpufreq_transition_notifier()
914 cluster->is_idle_disabled) { in rockchip_cpufreq_transition_notifier()
917 cluster->is_idle_disabled = false; in rockchip_cpufreq_transition_notifier()
919 rockchip_cpufreq_update_dsu_req(cluster, freqs->new); in rockchip_cpufreq_transition_notifier()
955 struct cluster_info *cluster, *pos; in rockchip_cpufreq_driver_init() local
960 cluster = rockchip_cluster_info_lookup(cpu); in rockchip_cpufreq_driver_init()
961 if (cluster) in rockchip_cpufreq_driver_init()
964 cluster = kzalloc(sizeof(*cluster), GFP_KERNEL); in rockchip_cpufreq_driver_init()
965 if (!cluster) { in rockchip_cpufreq_driver_init()
970 ret = rockchip_cpufreq_cluster_init(cpu, cluster); in rockchip_cpufreq_driver_init()
975 list_add(&cluster->list_head, &cluster_info_list); in rockchip_cpufreq_driver_init()
1012 list_for_each_entry_safe(cluster, pos, &cluster_info_list, list_head) { in rockchip_cpufreq_driver_init()
1013 list_del(&cluster->list_head); in rockchip_cpufreq_driver_init()
1014 kfree(cluster); in rockchip_cpufreq_driver_init()