1e20043b4SChristoph Hellwig /* SPDX-License-Identifier: GPL-2.0-only */ 2e20043b4SChristoph Hellwig /* 3e20043b4SChristoph Hellwig * Copyright (C) 2001 Russell King 4e20043b4SChristoph Hellwig */ 5e20043b4SChristoph Hellwig #include <asm/neon.h> 6e20043b4SChristoph Hellwig 7e20043b4SChristoph Hellwig extern struct xor_block_template xor_block_arm4regs; 8e20043b4SChristoph Hellwig extern struct xor_block_template xor_block_neon; 9e20043b4SChristoph Hellwig 10*80dcf0a7SChristoph Hellwig void xor_gen_neon_inner(void *dest, void **srcs, unsigned int src_cnt, 11*80dcf0a7SChristoph Hellwig unsigned int bytes); 12*80dcf0a7SChristoph Hellwig 13e20043b4SChristoph Hellwig static __always_inline void __init arch_xor_init(void) 14e20043b4SChristoph Hellwig { 15e20043b4SChristoph Hellwig xor_register(&xor_block_arm4regs); 16e20043b4SChristoph Hellwig xor_register(&xor_block_8regs); 17e20043b4SChristoph Hellwig xor_register(&xor_block_32regs); 18e20043b4SChristoph Hellwig #ifdef CONFIG_KERNEL_MODE_NEON 19e20043b4SChristoph Hellwig if (cpu_has_neon()) 20e20043b4SChristoph Hellwig xor_register(&xor_block_neon); 21e20043b4SChristoph Hellwig #endif 22e20043b4SChristoph Hellwig } 23