[PATCH V4 13/23] RISC-V: cpufeature: Add ACPI support in riscv_fill_hwcap()
Conor Dooley
conor at kernel.org
Sat Apr 29 03:31:20 PDT 2023
Hey Sunil,
On Tue, Apr 04, 2023 at 11:50:27PM +0530, Sunil V L wrote:
> @@ -103,14 +109,36 @@ void __init riscv_fill_hwcap(void)
>
> bitmap_zero(riscv_isa, RISCV_ISA_EXT_MAX);
>
> - for_each_of_cpu_node(node) {
> + if (!acpi_disabled) {
> + status = acpi_get_table(ACPI_SIG_RHCT, 0, &rhct);
> + if (ACPI_FAILURE(status))
> + return;
> + }
> +
> + for_each_possible_cpu(cpu) {
> unsigned long this_hwcap = 0;
> DECLARE_BITMAP(this_isa, RISCV_ISA_EXT_MAX);
> const char *temp;
>
> - if (of_property_read_string(node, "riscv,isa", &isa)) {
> - pr_warn("Unable to find \"riscv,isa\" devicetree entry\n");
> - continue;
> + if (acpi_disabled) {
> + node = of_cpu_device_node_get(cpu);
> + if (node) {
> + rc = of_property_read_string(node, "riscv,isa", &isa);
> + of_node_put(node);
> + if (rc) {
> + pr_warn("Unable to find \"riscv,isa\" devicetree entry\n");
> + continue;
> + }
> + } else {
> + pr_warn("Unable to find cpu node\n");
> + continue;
I was poking at this the last few days and went back to look at the ACPI
code again. Is there a reason we don't do early-return here? IOW:
node = of_cpu_device_node_get(cpu);
if (!node) {
pr_warn()
continue;
}
rc = of_property_read_string(node, "riscv,isa", &isa);
of_node_put(node);
if (rc) {
pr_warn();
continue;
}
Cheers,
Conor.
> + }
> + } else {
> + rc = acpi_get_riscv_isa(rhct, cpu, &isa);
> + if (rc < 0) {
> + pr_warn("Unable to get ISA for the hart - %d\n", cpu);
> + continue;
> + }
> }
>
> temp = isa;
> @@ -243,6 +271,9 @@ void __init riscv_fill_hwcap(void)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 228 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-riscv/attachments/20230429/1276256f/attachment.sig>
More information about the linux-riscv
mailing list