1*adfcf6e8SChristoph Hellwig /* SPDX-License-Identifier: GPL-2.0-or-later */ 2*adfcf6e8SChristoph Hellwig 3*adfcf6e8SChristoph Hellwig #include <asm/vector.h> 4*adfcf6e8SChristoph Hellwig 5*adfcf6e8SChristoph Hellwig extern const struct raid6_calls raid6_rvvx1; 6*adfcf6e8SChristoph Hellwig extern const struct raid6_calls raid6_rvvx2; 7*adfcf6e8SChristoph Hellwig extern const struct raid6_calls raid6_rvvx4; 8*adfcf6e8SChristoph Hellwig extern const struct raid6_calls raid6_rvvx8; 9*adfcf6e8SChristoph Hellwig extern const struct raid6_recov_calls raid6_recov_rvv; 10*adfcf6e8SChristoph Hellwig 11*adfcf6e8SChristoph Hellwig static __always_inline void __init arch_raid6_init(void) 12*adfcf6e8SChristoph Hellwig { 13*adfcf6e8SChristoph Hellwig raid6_algo_add_default(); 14*adfcf6e8SChristoph Hellwig if (has_vector()) { 15*adfcf6e8SChristoph Hellwig raid6_algo_add(&raid6_rvvx1); 16*adfcf6e8SChristoph Hellwig raid6_algo_add(&raid6_rvvx2); 17*adfcf6e8SChristoph Hellwig raid6_algo_add(&raid6_rvvx4); 18*adfcf6e8SChristoph Hellwig raid6_algo_add(&raid6_rvvx8); 19*adfcf6e8SChristoph Hellwig raid6_recov_algo_add(&raid6_recov_rvv); 20*adfcf6e8SChristoph Hellwig } 21*adfcf6e8SChristoph Hellwig } 22