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()
201 __iomem struct epapr_spin_table *spin_table; in smp_85xx_kick_cpu() local
261 spin_table = ioremap_prot(*cpu_rel_addr, in smp_85xx_kick_cpu()
264 spin_table = phys_to_virt(*cpu_rel_addr); in smp_85xx_kick_cpu()
280 flush_spin_table(spin_table); in smp_85xx_kick_cpu()
281 out_be32(&spin_table->addr_l, 0); in smp_85xx_kick_cpu()
282 flush_spin_table(spin_table); in smp_85xx_kick_cpu()
296 read_spin_table_addr_l(spin_table) == 1, in smp_85xx_kick_cpu()
308 flush_spin_table(spin_table); in smp_85xx_kick_cpu()
309 out_be32(&spin_table->pir, hw_cpu); in smp_85xx_kick_cpu()
310 out_be32(&spin_table->addr_l, __pa(__early_start)); in smp_85xx_kick_cpu()
311 flush_spin_table(spin_table); in smp_85xx_kick_cpu()
325 flush_spin_table(spin_table); in smp_85xx_kick_cpu()
326 out_be32(&spin_table->pir, hw_cpu); in smp_85xx_kick_cpu()
327 out_be64((u64 *)(&spin_table->addr_h), in smp_85xx_kick_cpu()
329 flush_spin_table(spin_table); in smp_85xx_kick_cpu()
335 iounmap(spin_table); in smp_85xx_kick_cpu()