Lines Matching refs:spin_table
167 static inline void flush_spin_table(void *spin_table) in flush_spin_table() argument
169 flush_dcache_range((ulong)spin_table, in flush_spin_table()
170 (ulong)spin_table + sizeof(struct epapr_spin_table)); in flush_spin_table()
173 static inline u32 read_spin_table_addr_l(void *spin_table) in read_spin_table_addr_l() argument
175 flush_dcache_range((ulong)spin_table, in read_spin_table_addr_l()
176 (ulong)spin_table + sizeof(struct epapr_spin_table)); in read_spin_table_addr_l()
177 return in_be32(&((struct epapr_spin_table *)spin_table)->addr_l); in read_spin_table_addr_l()
200 struct epapr_spin_table __iomem *spin_table; in smp_85xx_start_cpu() local
219 spin_table = ioremap_prot(*cpu_rel_addr, in smp_85xx_start_cpu()
222 spin_table = phys_to_virt(*cpu_rel_addr); in smp_85xx_start_cpu()
231 if (read_spin_table_addr_l(spin_table) != 1) { in smp_85xx_start_cpu()
244 read_spin_table_addr_l(spin_table) == 1, in smp_85xx_start_cpu()
253 flush_spin_table(spin_table); in smp_85xx_start_cpu()
254 out_be32(&spin_table->pir, hw_cpu); in smp_85xx_start_cpu()
256 out_be64((u64 *)(&spin_table->addr_h), in smp_85xx_start_cpu()
259 out_be32(&spin_table->addr_l, __pa(__early_start)); in smp_85xx_start_cpu()
261 flush_spin_table(spin_table); in smp_85xx_start_cpu()
266 iounmap(spin_table); in smp_85xx_start_cpu()