Lines Matching refs:spin_table
163 static inline void flush_spin_table(void *spin_table) in flush_spin_table() argument
165 flush_dcache_range((ulong)spin_table, in flush_spin_table()
166 (ulong)spin_table + sizeof(struct epapr_spin_table)); in flush_spin_table()
169 static inline u32 read_spin_table_addr_l(void *spin_table) in read_spin_table_addr_l() argument
171 flush_dcache_range((ulong)spin_table, in read_spin_table_addr_l()
172 (ulong)spin_table + sizeof(struct epapr_spin_table)); in read_spin_table_addr_l()
173 return in_be32(&((struct epapr_spin_table *)spin_table)->addr_l); in read_spin_table_addr_l()
196 struct epapr_spin_table __iomem *spin_table; in smp_85xx_start_cpu() local
215 spin_table = ioremap_coherent(*cpu_rel_addr, in smp_85xx_start_cpu()
218 spin_table = phys_to_virt(*cpu_rel_addr); in smp_85xx_start_cpu()
227 if (read_spin_table_addr_l(spin_table) != 1) { in smp_85xx_start_cpu()
240 read_spin_table_addr_l(spin_table) == 1, in smp_85xx_start_cpu()
249 flush_spin_table(spin_table); in smp_85xx_start_cpu()
250 out_be32(&spin_table->pir, hw_cpu); in smp_85xx_start_cpu()
252 out_be64((u64 *)(&spin_table->addr_h), in smp_85xx_start_cpu()
262 out_be32(&spin_table->addr_h, __pa(__early_start) >> 32); in smp_85xx_start_cpu()
264 out_be32(&spin_table->addr_l, __pa(__early_start)); in smp_85xx_start_cpu()
266 flush_spin_table(spin_table); in smp_85xx_start_cpu()
271 iounmap(spin_table); in smp_85xx_start_cpu()