1*e20043b4SChristoph Hellwig /* SPDX-License-Identifier: GPL-2.0-or-later */ 2*e20043b4SChristoph Hellwig 3*e20043b4SChristoph Hellwig #include <asm/special_insns.h> 4*e20043b4SChristoph Hellwig 5*e20043b4SChristoph Hellwig extern struct xor_block_template xor_block_alpha; 6*e20043b4SChristoph Hellwig extern struct xor_block_template xor_block_alpha_prefetch; 7*e20043b4SChristoph Hellwig 8*e20043b4SChristoph Hellwig /* 9*e20043b4SChristoph Hellwig * Force the use of alpha_prefetch if EV6, as it is significantly faster in the 10*e20043b4SChristoph Hellwig * cold cache case. 11*e20043b4SChristoph Hellwig */ 12*e20043b4SChristoph Hellwig static __always_inline void __init arch_xor_init(void) 13*e20043b4SChristoph Hellwig { 14*e20043b4SChristoph Hellwig if (implver() == IMPLVER_EV6) { 15*e20043b4SChristoph Hellwig xor_force(&xor_block_alpha_prefetch); 16*e20043b4SChristoph Hellwig } else { 17*e20043b4SChristoph Hellwig xor_register(&xor_block_8regs); 18*e20043b4SChristoph Hellwig xor_register(&xor_block_32regs); 19*e20043b4SChristoph Hellwig xor_register(&xor_block_alpha); 20*e20043b4SChristoph Hellwig xor_register(&xor_block_alpha_prefetch); 21*e20043b4SChristoph Hellwig } 22*e20043b4SChristoph Hellwig } 23