Lines Matching full:cluster
2 * arch/arm/mach-vexpress/dcscb.c - Dual Cluster System Configuration Block
41 static int dcscb_cpu_powerup(unsigned int cpu, unsigned int cluster) in dcscb_cpu_powerup() argument
45 pr_debug("%s: cpu %u cluster %u\n", __func__, cpu, cluster); in dcscb_cpu_powerup()
46 if (cluster >= 2 || !(cpumask & dcscb_allcpus_mask[cluster])) in dcscb_cpu_powerup()
49 rst_hold = readl_relaxed(dcscb_base + RST_HOLD0 + cluster * 4); in dcscb_cpu_powerup()
51 writel_relaxed(rst_hold, dcscb_base + RST_HOLD0 + cluster * 4); in dcscb_cpu_powerup()
55 static int dcscb_cluster_powerup(unsigned int cluster) in dcscb_cluster_powerup() argument
59 pr_debug("%s: cluster %u\n", __func__, cluster); in dcscb_cluster_powerup()
60 if (cluster >= 2) in dcscb_cluster_powerup()
63 /* remove cluster reset and add individual CPU's reset */ in dcscb_cluster_powerup()
64 rst_hold = readl_relaxed(dcscb_base + RST_HOLD0 + cluster * 4); in dcscb_cluster_powerup()
66 rst_hold |= dcscb_allcpus_mask[cluster]; in dcscb_cluster_powerup()
67 writel_relaxed(rst_hold, dcscb_base + RST_HOLD0 + cluster * 4); in dcscb_cluster_powerup()
71 static void dcscb_cpu_powerdown_prepare(unsigned int cpu, unsigned int cluster) in dcscb_cpu_powerdown_prepare() argument
75 pr_debug("%s: cpu %u cluster %u\n", __func__, cpu, cluster); in dcscb_cpu_powerdown_prepare()
76 BUG_ON(cluster >= 2 || !((1 << cpu) & dcscb_allcpus_mask[cluster])); in dcscb_cpu_powerdown_prepare()
78 rst_hold = readl_relaxed(dcscb_base + RST_HOLD0 + cluster * 4); in dcscb_cpu_powerdown_prepare()
80 writel_relaxed(rst_hold, dcscb_base + RST_HOLD0 + cluster * 4); in dcscb_cpu_powerdown_prepare()
83 static void dcscb_cluster_powerdown_prepare(unsigned int cluster) in dcscb_cluster_powerdown_prepare() argument
87 pr_debug("%s: cluster %u\n", __func__, cluster); in dcscb_cluster_powerdown_prepare()
88 BUG_ON(cluster >= 2); in dcscb_cluster_powerdown_prepare()
90 rst_hold = readl_relaxed(dcscb_base + RST_HOLD0 + cluster * 4); in dcscb_cluster_powerdown_prepare()
92 writel_relaxed(rst_hold, dcscb_base + RST_HOLD0 + cluster * 4); in dcscb_cluster_powerdown_prepare()
103 /* Flush all cache levels for this cluster. */ in dcscb_cluster_cache_disable()
110 * cluster standing" would need to be implemented if the in dcscb_cluster_cache_disable()
119 * Disable cluster-level coherency by masking in dcscb_cluster_cache_disable()
167 * through the cluster entry vectors. in dcscb_init()