1*e20043b4SChristoph Hellwig /* SPDX-License-Identifier: GPL-2.0-only */ 2*e20043b4SChristoph Hellwig /* 3*e20043b4SChristoph Hellwig * Authors: Jackie Liu <liuyun01@kylinos.cn> 4*e20043b4SChristoph Hellwig * Copyright (C) 2018,Tianjin KYLIN Information Technology Co., Ltd. 5*e20043b4SChristoph Hellwig */ 6*e20043b4SChristoph Hellwig #include <asm/simd.h> 7*e20043b4SChristoph Hellwig 8*e20043b4SChristoph Hellwig extern struct xor_block_template xor_block_neon; 9*e20043b4SChristoph Hellwig extern struct xor_block_template xor_block_eor3; 10*e20043b4SChristoph Hellwig 11*e20043b4SChristoph Hellwig static __always_inline void __init arch_xor_init(void) 12*e20043b4SChristoph Hellwig { 13*e20043b4SChristoph Hellwig xor_register(&xor_block_8regs); 14*e20043b4SChristoph Hellwig xor_register(&xor_block_32regs); 15*e20043b4SChristoph Hellwig if (cpu_has_neon()) { 16*e20043b4SChristoph Hellwig if (cpu_have_named_feature(SHA3)) 17*e20043b4SChristoph Hellwig xor_register(&xor_block_eor3); 18*e20043b4SChristoph Hellwig else 19*e20043b4SChristoph Hellwig xor_register(&xor_block_neon); 20*e20043b4SChristoph Hellwig } 21*e20043b4SChristoph Hellwig } 22