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