riscv: cpufeature: call match_isa_ext() for single-letter extensions
Single-letter extensions may also imply multiple subextensions. For example, Vector extension implies zve64d, and zve64d implies zve64f. Extension parsing for "riscv,isa-extensions" has the ability to resolve the dependency by calling match_isa_ext(). This patch makes deprecated parser call the same function for single letter extensions. Signed-off-by: Andy Chiu <andy.chiu@sifive.com> Reviewed-by: Conor Dooley <conor.dooley@microchip.com> Link: https://lore.kernel.org/r/20240510-zve-detection-v5-3-0711bdd26c12@sifive.com Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
This commit is contained in:
parent
38a94c4666
commit
98a5700dfa
@ -468,16 +468,15 @@ static void __init riscv_parse_isa_string(unsigned long *this_hwcap, struct risc
|
||||
|
||||
if (unlikely(ext_err))
|
||||
continue;
|
||||
|
||||
for (int i = 0; i < riscv_isa_ext_count; i++)
|
||||
match_isa_ext(&riscv_isa_ext[i], ext, ext_end, isainfo);
|
||||
|
||||
if (!ext_long) {
|
||||
int nr = tolower(*ext) - 'a';
|
||||
|
||||
if (riscv_isa_extension_check(nr)) {
|
||||
if (riscv_isa_extension_check(nr))
|
||||
*this_hwcap |= isa2hwcap[nr];
|
||||
set_bit(nr, isainfo->isa);
|
||||
}
|
||||
} else {
|
||||
for (int i = 0; i < riscv_isa_ext_count; i++)
|
||||
match_isa_ext(&riscv_isa_ext[i], ext, ext_end, isainfo);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user