Lines Matching refs:spin_table
159 static inline void flush_spin_table(void *spin_table) in flush_spin_table() argument
161 flush_dcache_range((ulong)spin_table, in flush_spin_table()
162 (ulong)spin_table + sizeof(struct epapr_spin_table)); in flush_spin_table()
165 static inline u32 read_spin_table_addr_l(void *spin_table) in read_spin_table_addr_l() argument
167 flush_dcache_range((ulong)spin_table, in read_spin_table_addr_l()
168 (ulong)spin_table + sizeof(struct epapr_spin_table)); in read_spin_table_addr_l()
169 return in_be32(&((struct epapr_spin_table *)spin_table)->addr_l); in read_spin_table_addr_l()
194 __iomem struct epapr_spin_table *spin_table; in smp_85xx_kick_cpu() local
248 spin_table = ioremap_prot(*cpu_rel_addr, in smp_85xx_kick_cpu()
251 spin_table = phys_to_virt(*cpu_rel_addr); in smp_85xx_kick_cpu()
267 flush_spin_table(spin_table); in smp_85xx_kick_cpu()
268 out_be32(&spin_table->addr_l, 0); in smp_85xx_kick_cpu()
269 flush_spin_table(spin_table); in smp_85xx_kick_cpu()
283 read_spin_table_addr_l(spin_table) == 1, in smp_85xx_kick_cpu()
295 flush_spin_table(spin_table); in smp_85xx_kick_cpu()
296 out_be32(&spin_table->pir, hw_cpu); in smp_85xx_kick_cpu()
297 out_be32(&spin_table->addr_l, __pa(__early_start)); in smp_85xx_kick_cpu()
298 flush_spin_table(spin_table); in smp_85xx_kick_cpu()
312 flush_spin_table(spin_table); in smp_85xx_kick_cpu()
313 out_be32(&spin_table->pir, hw_cpu); in smp_85xx_kick_cpu()
314 out_be64((u64 *)(&spin_table->addr_h), in smp_85xx_kick_cpu()
316 flush_spin_table(spin_table); in smp_85xx_kick_cpu()
322 iounmap(spin_table); in smp_85xx_kick_cpu()