/linux-6.6.21/arch/arm/common/ |
D | mcpm_entry.c | 34 static void __mcpm_cpu_going_down(unsigned int cpu, unsigned int cluster) in __mcpm_cpu_going_down() argument 36 mcpm_sync.clusters[cluster].cpus[cpu].cpu = CPU_GOING_DOWN; in __mcpm_cpu_going_down() 37 sync_cache_w(&mcpm_sync.clusters[cluster].cpus[cpu].cpu); in __mcpm_cpu_going_down() 47 static void __mcpm_cpu_down(unsigned int cpu, unsigned int cluster) in __mcpm_cpu_down() argument 50 mcpm_sync.clusters[cluster].cpus[cpu].cpu = CPU_DOWN; in __mcpm_cpu_down() 51 sync_cache_w(&mcpm_sync.clusters[cluster].cpus[cpu].cpu); in __mcpm_cpu_down() 63 static void __mcpm_outbound_leave_critical(unsigned int cluster, int state) in __mcpm_outbound_leave_critical() argument 66 mcpm_sync.clusters[cluster].cluster = state; in __mcpm_outbound_leave_critical() 67 sync_cache_w(&mcpm_sync.clusters[cluster].cluster); in __mcpm_outbound_leave_critical() 82 static bool __mcpm_outbound_enter_critical(unsigned int cpu, unsigned int cluster) in __mcpm_outbound_enter_critical() argument [all …]
|
D | bL_switcher.c | 273 int cluster; in bL_switcher_thread() local 288 cluster = t->wanted_cluster; in bL_switcher_thread() 295 if (cluster != -1) { in bL_switcher_thread() 296 bL_switch_to(cluster); in bL_switcher_thread() 422 unsigned int cpu, cluster, mask; in bL_switcher_halve_cpus() local 429 cluster = MPIDR_AFFINITY_LEVEL(cpu_logical_map(i), 1); in bL_switcher_halve_cpus() 430 if (cluster >= 2) { in bL_switcher_halve_cpus() 436 mask |= (1 << cluster); in bL_switcher_halve_cpus() 454 cluster = MPIDR_AFFINITY_LEVEL(cpu_logical_map(i), 1); in bL_switcher_halve_cpus() 456 cluster_0 = cluster; in bL_switcher_halve_cpus() [all …]
|
D | mcpm_head.S | 56 ubfx r10, r0, #8, #8 @ r10 = cluster 88 mla r8, r0, r10, r8 @ r8 = sync cluster base 96 @ At this point, the cluster cannot unexpectedly enter the GOING_DOWN 100 mla r11, r0, r10, r11 @ r11 = cluster first man lock 106 bne mcpm_setup_wait @ wait for cluster setup if so 109 cmp r0, #CLUSTER_UP @ cluster already up? 110 bne mcpm_setup @ if not, set up the cluster 120 @ Signal that the cluster is being brought up: 125 @ Any CPU trying to take the cluster into CLUSTER_GOING_DOWN from this 128 @ Wait for any previously-pending cluster teardown operations to abort [all …]
|
/linux-6.6.21/arch/arm/mach-sunxi/ |
D | mc_smp.c | 87 static bool sunxi_core_is_cortex_a15(unsigned int core, unsigned int cluster) in sunxi_core_is_cortex_a15() argument 90 int cpu = cluster * SUNXI_CPUS_PER_CLUSTER + core; in sunxi_core_is_cortex_a15() 105 __func__, cluster, core); in sunxi_core_is_cortex_a15() 115 static int sunxi_cpu_power_switch_set(unsigned int cpu, unsigned int cluster, in sunxi_cpu_power_switch_set() argument 121 reg = readl(prcm_base + PRCM_PWR_SWITCH_REG(cluster, cpu)); in sunxi_cpu_power_switch_set() 125 cluster, cpu); in sunxi_cpu_power_switch_set() 129 writel(0xff, prcm_base + PRCM_PWR_SWITCH_REG(cluster, cpu)); in sunxi_cpu_power_switch_set() 131 writel(0xfe, prcm_base + PRCM_PWR_SWITCH_REG(cluster, cpu)); in sunxi_cpu_power_switch_set() 133 writel(0xf8, prcm_base + PRCM_PWR_SWITCH_REG(cluster, cpu)); in sunxi_cpu_power_switch_set() 135 writel(0xf0, prcm_base + PRCM_PWR_SWITCH_REG(cluster, cpu)); in sunxi_cpu_power_switch_set() [all …]
|
/linux-6.6.21/arch/arm/mach-versatile/ |
D | tc2_pm.c | 46 static int tc2_pm_cpu_powerup(unsigned int cpu, unsigned int cluster) in tc2_pm_cpu_powerup() argument 48 pr_debug("%s: cpu %u cluster %u\n", __func__, cpu, cluster); in tc2_pm_cpu_powerup() 49 if (cluster >= TC2_CLUSTERS || cpu >= tc2_nr_cpus[cluster]) in tc2_pm_cpu_powerup() 51 ve_spc_set_resume_addr(cluster, cpu, in tc2_pm_cpu_powerup() 53 ve_spc_cpu_wakeup_irq(cluster, cpu, true); in tc2_pm_cpu_powerup() 57 static int tc2_pm_cluster_powerup(unsigned int cluster) in tc2_pm_cluster_powerup() argument 59 pr_debug("%s: cluster %u\n", __func__, cluster); in tc2_pm_cluster_powerup() 60 if (cluster >= TC2_CLUSTERS) in tc2_pm_cluster_powerup() 62 ve_spc_powerdown(cluster, false); in tc2_pm_cluster_powerup() 66 static void tc2_pm_cpu_powerdown_prepare(unsigned int cpu, unsigned int cluster) in tc2_pm_cpu_powerdown_prepare() argument [all …]
|
D | dcscb.c | 39 static int dcscb_cpu_powerup(unsigned int cpu, unsigned int cluster) in dcscb_cpu_powerup() argument 43 pr_debug("%s: cpu %u cluster %u\n", __func__, cpu, cluster); in dcscb_cpu_powerup() 44 if (cluster >= 2 || !(cpumask & dcscb_allcpus_mask[cluster])) in dcscb_cpu_powerup() 47 rst_hold = readl_relaxed(dcscb_base + RST_HOLD0 + cluster * 4); in dcscb_cpu_powerup() 49 writel_relaxed(rst_hold, dcscb_base + RST_HOLD0 + cluster * 4); in dcscb_cpu_powerup() 53 static int dcscb_cluster_powerup(unsigned int cluster) in dcscb_cluster_powerup() argument 57 pr_debug("%s: cluster %u\n", __func__, cluster); in dcscb_cluster_powerup() 58 if (cluster >= 2) in dcscb_cluster_powerup() 62 rst_hold = readl_relaxed(dcscb_base + RST_HOLD0 + cluster * 4); in dcscb_cluster_powerup() 64 rst_hold |= dcscb_allcpus_mask[cluster]; in dcscb_cluster_powerup() [all …]
|
D | spc.c | 111 static inline bool cluster_is_a15(u32 cluster) in cluster_is_a15() argument 113 return cluster == info->a15_clusid; in cluster_is_a15() 150 void ve_spc_cpu_wakeup_irq(u32 cluster, u32 cpu, bool set) in ve_spc_cpu_wakeup_irq() argument 154 if (cluster >= MAX_CLUSTERS) in ve_spc_cpu_wakeup_irq() 159 if (!cluster_is_a15(cluster)) in ve_spc_cpu_wakeup_irq() 179 void ve_spc_set_resume_addr(u32 cluster, u32 cpu, u32 addr) in ve_spc_set_resume_addr() argument 183 if (cluster >= MAX_CLUSTERS) in ve_spc_set_resume_addr() 186 if (cluster_is_a15(cluster)) in ve_spc_set_resume_addr() 204 void ve_spc_powerdown(u32 cluster, bool enable) in ve_spc_powerdown() argument 208 if (cluster >= MAX_CLUSTERS) in ve_spc_powerdown() [all …]
|
D | spc.h | 13 void ve_spc_cpu_wakeup_irq(u32 cluster, u32 cpu, bool set); 14 void ve_spc_set_resume_addr(u32 cluster, u32 cpu, u32 addr); 15 void ve_spc_powerdown(u32 cluster, bool enable); 16 int ve_spc_cpu_in_wfi(u32 cpu, u32 cluster);
|
/linux-6.6.21/fs/ocfs2/cluster/ |
D | nodemanager.c | 49 struct o2nm_cluster *cluster = o2nm_single_cluster; in o2nm_configured_node_map() local 51 BUG_ON(bytes < (sizeof(cluster->cl_nodes_bitmap))); in o2nm_configured_node_map() 53 if (cluster == NULL) in o2nm_configured_node_map() 56 read_lock(&cluster->cl_nodes_lock); in o2nm_configured_node_map() 57 bitmap_copy(map, cluster->cl_nodes_bitmap, O2NM_MAX_NODES); in o2nm_configured_node_map() 58 read_unlock(&cluster->cl_nodes_lock); in o2nm_configured_node_map() 64 static struct o2nm_node *o2nm_node_ip_tree_lookup(struct o2nm_cluster *cluster, in o2nm_node_ip_tree_lookup() argument 69 struct rb_node **p = &cluster->cl_node_ip_tree.rb_node; in o2nm_node_ip_tree_lookup() 102 struct o2nm_cluster *cluster = o2nm_single_cluster; in o2nm_get_node_by_ip() local 104 if (cluster == NULL) in o2nm_get_node_by_ip() [all …]
|
/linux-6.6.21/arch/arm/mach-exynos/ |
D | mcpm-exynos.c | 57 static int exynos_cpu_powerup(unsigned int cpu, unsigned int cluster) in exynos_cpu_powerup() argument 59 unsigned int cpunr = cpu + (cluster * EXYNOS5420_CPUS_PER_CLUSTER); in exynos_cpu_powerup() 62 pr_debug("%s: cpu %u cluster %u\n", __func__, cpu, cluster); in exynos_cpu_powerup() 64 cluster >= EXYNOS5420_NR_CLUSTERS) in exynos_cpu_powerup() 76 if (cluster && in exynos_cpu_powerup() 77 cluster == MPIDR_AFFINITY_LEVEL(cpu_logical_map(0), 1)) { in exynos_cpu_powerup() 93 cpu, cluster); in exynos_cpu_powerup() 106 static int exynos_cluster_powerup(unsigned int cluster) in exynos_cluster_powerup() argument 108 pr_debug("%s: cluster %u\n", __func__, cluster); in exynos_cluster_powerup() 109 if (cluster >= EXYNOS5420_NR_CLUSTERS) in exynos_cluster_powerup() [all …]
|
/linux-6.6.21/arch/arm/mach-hisi/ |
D | platmcpm.c | 71 static bool hip04_cluster_is_down(unsigned int cluster) in hip04_cluster_is_down() argument 76 if (hip04_cpu_table[cluster][i]) in hip04_cluster_is_down() 81 static void hip04_set_snoop_filter(unsigned int cluster, unsigned int on) in hip04_set_snoop_filter() argument 89 data |= 1 << cluster; in hip04_set_snoop_filter() 91 data &= ~(1 << cluster); in hip04_set_snoop_filter() 100 unsigned int mpidr, cpu, cluster; in hip04_boot_secondary() local 106 cluster = MPIDR_AFFINITY_LEVEL(mpidr, 1); in hip04_boot_secondary() 110 if (cluster >= HIP04_MAX_CLUSTERS || cpu >= HIP04_MAX_CPUS_PER_CLUSTER) in hip04_boot_secondary() 115 if (hip04_cpu_table[cluster][cpu]) in hip04_boot_secondary() 118 sys_dreq = sysctrl + SC_CPU_RESET_DREQ(cluster); in hip04_boot_secondary() [all …]
|
/linux-6.6.21/drivers/perf/ |
D | qcom_l2_pmu.c | 243 static void cluster_pmu_set_resr(struct cluster_pmu *cluster, in cluster_pmu_set_resr() argument 254 spin_lock_irqsave(&cluster->pmu_lock, flags); in cluster_pmu_set_resr() 262 spin_unlock_irqrestore(&cluster->pmu_lock, flags); in cluster_pmu_set_resr() 319 static void l2_cache_cluster_set_period(struct cluster_pmu *cluster, in l2_cache_cluster_set_period() argument 339 static int l2_cache_get_event_idx(struct cluster_pmu *cluster, in l2_cache_get_event_idx() argument 344 int num_ctrs = cluster->l2cache_pmu->num_counters - 1; in l2_cache_get_event_idx() 348 if (test_and_set_bit(l2_cycle_ctr_idx, cluster->used_counters)) in l2_cache_get_event_idx() 354 idx = find_first_zero_bit(cluster->used_counters, num_ctrs); in l2_cache_get_event_idx() 365 if (test_bit(group, cluster->used_groups)) in l2_cache_get_event_idx() 368 set_bit(idx, cluster->used_counters); in l2_cache_get_event_idx() [all …]
|
/linux-6.6.21/arch/arm/include/asm/ |
D | mcpm.h | 44 void mcpm_set_entry_vector(unsigned cpu, unsigned cluster, void *ptr); 51 void mcpm_set_early_poke(unsigned cpu, unsigned cluster, 84 int mcpm_cpu_power_up(unsigned int cpu, unsigned int cluster); 132 int mcpm_wait_for_cpu_powerdown(unsigned int cpu, unsigned int cluster); 219 int (*cpu_powerup)(unsigned int cpu, unsigned int cluster); 220 int (*cluster_powerup)(unsigned int cluster); 221 void (*cpu_suspend_prepare)(unsigned int cpu, unsigned int cluster); 222 void (*cpu_powerdown_prepare)(unsigned int cpu, unsigned int cluster); 223 void (*cluster_powerdown_prepare)(unsigned int cluster); 226 void (*cpu_is_up)(unsigned int cpu, unsigned int cluster); [all …]
|
/linux-6.6.21/drivers/remoteproc/ |
D | ti_k3_r5_remoteproc.c | 162 struct k3_r5_cluster *cluster; member 282 static int k3_r5_lockstep_reset(struct k3_r5_cluster *cluster) in k3_r5_lockstep_reset() argument 288 list_for_each_entry(core, &cluster->cores, elem) { in k3_r5_lockstep_reset() 299 list_for_each_entry(core, &cluster->cores, elem) { in k3_r5_lockstep_reset() 312 list_for_each_entry_continue_reverse(core, &cluster->cores, elem) { in k3_r5_lockstep_reset() 317 core = list_last_entry(&cluster->cores, struct k3_r5_core, elem); in k3_r5_lockstep_reset() 319 list_for_each_entry_from_reverse(core, &cluster->cores, elem) { in k3_r5_lockstep_reset() 327 static int k3_r5_lockstep_release(struct k3_r5_cluster *cluster) in k3_r5_lockstep_release() argument 333 list_for_each_entry_reverse(core, &cluster->cores, elem) { in k3_r5_lockstep_release() 345 list_for_each_entry_reverse(core, &cluster->cores, elem) { in k3_r5_lockstep_release() [all …]
|
D | xlnx_r5_remoteproc.c | 710 struct zynqmp_r5_cluster *cluster; in add_tcm_banks() local 720 cluster = dev_get_drvdata(dev->parent); in add_tcm_banks() 721 if (!cluster) { in add_tcm_banks() 731 if (cluster->mode == SPLIT_MODE) in add_tcm_banks() 733 else if (cluster->mode == LOCKSTEP_MODE) in add_tcm_banks() 896 static int zynqmp_r5_get_tcm_node(struct zynqmp_r5_cluster *cluster) in zynqmp_r5_get_tcm_node() argument 898 struct device *dev = cluster->dev; in zynqmp_r5_get_tcm_node() 906 tcm_bank_count = tcm_bank_count / cluster->core_count; in zynqmp_r5_get_tcm_node() 914 for (i = 0; i < cluster->core_count; i++) { in zynqmp_r5_get_tcm_node() 915 r5_core = cluster->r5_cores[i]; in zynqmp_r5_get_tcm_node() [all …]
|
/linux-6.6.21/Documentation/arch/arm/ |
D | cluster-pm-race-avoidance.rst | 6 cluster setup and teardown operations and to manage hardware coherency 29 cluster-level operations are only performed when it is truly safe to do 34 are not immediately enabled when a cluster powers up. Since enabling or 38 power-down and power-up at the cluster level. 48 Each cluster and CPU is assigned a state, as follows: 67 The CPU or cluster is not coherent, and is either powered off or 71 The CPU or cluster has committed to moving to the UP state. 76 The CPU or cluster is active and coherent at the hardware 81 The CPU or cluster has committed to moving to the DOWN 89 Each cluster is also assigned a state, but it is necessary to split the [all …]
|
/linux-6.6.21/drivers/cpufreq/ |
D | vexpress-spc-cpufreq.c | 45 #define ACTUAL_FREQ(cluster, freq) ((cluster == A7_CLUSTER) ? freq << 1 : freq) argument 46 #define VIRT_FREQ(cluster, freq) ((cluster == A7_CLUSTER) ? freq >> 1 : freq) argument 71 static unsigned int find_cluster_maxfreq(int cluster) in find_cluster_maxfreq() argument 79 if (cluster == per_cpu(physical_cluster, j) && in find_cluster_maxfreq() 282 u32 cluster = raw_cpu_to_cluster(cpu_dev->id); in _put_cluster_clk_and_freq_table() local 284 if (!freq_table[cluster]) in _put_cluster_clk_and_freq_table() 287 clk_put(clk[cluster]); in _put_cluster_clk_and_freq_table() 288 dev_pm_opp_free_cpufreq_table(cpu_dev, &freq_table[cluster]); in _put_cluster_clk_and_freq_table() 294 u32 cluster = cpu_to_cluster(cpu_dev->id); in put_cluster_clk_and_freq_table() local 297 if (atomic_dec_return(&cluster_usage[cluster])) in put_cluster_clk_and_freq_table() [all …]
|
D | tegra186-cpufreq.c | 75 unsigned int cluster = data->cpus[policy->cpu].bpmp_cluster_id; in tegra186_cpufreq_init() local 77 policy->freq_table = data->clusters[cluster].table; in tegra186_cpufreq_init() 100 struct tegra186_cpufreq_cluster *cluster; in tegra186_cpufreq_get() local 112 cluster = &data->clusters[cluster_id]; in tegra186_cpufreq_get() 115 return (cluster->ref_clk_khz * ndiv) / cluster->div; in tegra186_cpufreq_get() 131 struct tegra186_cpufreq_cluster *cluster, unsigned int cluster_id) in init_vhint_table() argument 187 cluster->ref_clk_khz = data->ref_clk_hz / 1000; in init_vhint_table() 188 cluster->div = data->pdiv * data->mdiv; in init_vhint_table() 207 point->frequency = (cluster->ref_clk_khz * ndiv) / cluster->div; in init_vhint_table() 243 struct tegra186_cpufreq_cluster *cluster = &data->clusters[i]; in tegra186_cpufreq_probe() local [all …]
|
/linux-6.6.21/Documentation/devicetree/bindings/cpufreq/ |
D | apple,cluster-cpufreq.yaml | 4 $id: http://devicetree.org/schemas/cpufreq/apple,cluster-cpufreq.yaml# 7 title: Apple SoC cluster cpufreq device 13 Apple SoCs (e.g. M1) have a per-cpu-cluster DVFS controller that is part of 14 the cluster management register block. This binding uses the standard 23 - apple,t8103-cluster-cpufreq 24 - apple,t8112-cluster-cpufreq 25 - const: apple,cluster-cpufreq 27 - const: apple,t6000-cluster-cpufreq 28 - const: apple,t8103-cluster-cpufreq 29 - const: apple,cluster-cpufreq [all …]
|
/linux-6.6.21/Documentation/ABI/testing/ |
D | sysfs-ocfs2 | 14 covers how ocfs2 uses distributed locking between cluster 18 cluster nodes can interoperate if they have an identical 34 the available plugins to support ocfs2 cluster operation. 35 A cluster plugin is required to use ocfs2 in a cluster. 38 * 'o2cb' - The classic o2cb cluster stack that ocfs2 has 40 * 'user' - A plugin supporting userspace cluster software 54 cluster plugin is currently in use by the filesystem. 62 the cluster stack in use. The contents may change 63 when all filesystems are unmounted and the cluster stack 71 of current ocfs2 cluster stack. This value is set by [all …]
|
/linux-6.6.21/arch/mips/include/asm/ |
D | mips-cps.h | 130 static inline uint64_t mips_cps_cluster_config(unsigned int cluster) in mips_cps_cluster_config() argument 140 WARN_ON(cluster != 0); in mips_cps_cluster_config() 148 mips_cm_lock_other(cluster, 0, 0, CM_GCR_Cx_OTHER_BLOCK_GLOBAL); in mips_cps_cluster_config() 163 static inline unsigned int mips_cps_numcores(unsigned int cluster) in mips_cps_numcores() argument 170 mips_cps_cluster_config(cluster) + 1); in mips_cps_numcores() 180 static inline unsigned int mips_cps_numiocu(unsigned int cluster) in mips_cps_numiocu() argument 186 mips_cps_cluster_config(cluster)); in mips_cps_numiocu() 198 static inline unsigned int mips_cps_numvps(unsigned int cluster, unsigned int core) in mips_cps_numvps() argument 209 mips_cm_lock_other(cluster, core, 0, CM_GCR_Cx_OTHER_BLOCK_LOCAL); in mips_cps_numvps()
|
/linux-6.6.21/fs/fat/ |
D | cache.c | 225 int fat_get_cluster(struct inode *inode, int cluster, int *fclus, int *dclus) in fat_get_cluster() argument 244 if (cluster == 0) in fat_get_cluster() 247 if (fat_cache_lookup(inode, cluster, &cid, fclus, dclus) < 0) { in fat_get_cluster() 256 while (*fclus < cluster) { in fat_get_cluster() 291 static int fat_bmap_cluster(struct inode *inode, int cluster) in fat_bmap_cluster() argument 299 ret = fat_get_cluster(inode, cluster, &fclus, &dclus); in fat_bmap_cluster() 316 int cluster, offset; in fat_get_mapped_cluster() local 318 cluster = sector >> (sbi->cluster_bits - sb->s_blocksize_bits); in fat_get_mapped_cluster() 320 cluster = fat_bmap_cluster(inode, cluster); in fat_get_mapped_cluster() 321 if (cluster < 0) in fat_get_mapped_cluster() [all …]
|
/linux-6.6.21/arch/arm/mach-milbeaut/ |
D | platsmp.c | 25 unsigned int mpidr, cpu, cluster; in m10v_boot_secondary() local 32 cluster = MPIDR_AFFINITY_LEVEL(mpidr, 1); in m10v_boot_secondary() 38 __func__, cpu, l_cpu, cluster); in m10v_boot_secondary() 48 unsigned int mpidr, cpu, cluster; in m10v_smp_init() local 61 cluster = MPIDR_AFFINITY_LEVEL(mpidr, 1); in m10v_smp_init() 62 pr_info("MCPM boot on cpu_%u cluster_%u\n", cpu, cluster); in m10v_smp_init()
|
/linux-6.6.21/Documentation/devicetree/bindings/phy/ |
D | phy-mvebu.txt | 23 Armada 375 USB cluster 27 controller. The USB cluster control register allows to manage common 32 - compatible: "marvell,armada-375-usb-cluster" 33 - reg: Should contain usb cluster register location and length. 38 usbcluster: usb-cluster@18400 { 39 compatible = "marvell,armada-375-usb-cluster";
|
/linux-6.6.21/arch/arm64/boot/dts/apple/ |
D | t600x-dieX.dtsi | 10 …compatible = "apple,t6000-cluster-cpufreq", "apple,t8103-cluster-cpufreq", "apple,cluster-cpufreq"; 16 …compatible = "apple,t6000-cluster-cpufreq", "apple,t8103-cluster-cpufreq", "apple,cluster-cpufreq"; 22 …compatible = "apple,t6000-cluster-cpufreq", "apple,t8103-cluster-cpufreq", "apple,cluster-cpufreq";
|