Re: [net-next PATCH v2 10/14] device property: Introduce fwnode_get_id()
From: Calvin Johnson <hidden>
Date: 2020-12-18 06:13:33
Also in:
linux-acpi, linux-arm-kernel, lkml
From: Calvin Johnson <hidden>
Date: 2020-12-18 06:13:33
Also in:
linux-acpi, linux-arm-kernel, lkml
On Tue, Dec 15, 2020 at 07:45:16PM +0200, Andy Shevchenko wrote:
On Tue, Dec 15, 2020 at 6:44 PM Calvin Johnson [off-list ref] wrote:quoted
Using fwnode_get_id(), get the reg property value for DT node and get the _ADR object value for ACPI node.and -> or ...quoted
+/** + * fwnode_get_id - Get the id of a fwnode. + * @fwnode: firmware node + * @id: id of the fwnode + * + * Returns 0 on success or a negative errno. + */ +int fwnode_get_id(struct fwnode_handle *fwnode, u32 *id) +{ + unsigned long long adr; + acpi_status status; + + if (is_of_node(fwnode)) { + return of_property_read_u32(to_of_node(fwnode), "reg", id);ACPI nodes can hold reg property as well. I would rather think about ret = fwnode_property_read_u32(fwnode, "reg", id) if (!(ret && is_acpi_node(fwnode))) return ret;
Got it. Will rework on it.
quoted
+ } else if (is_acpi_node(fwnode)) {Redundant 'else'quoted
+ status = acpi_evaluate_integer(ACPI_HANDLE_FWNODE(fwnode), + METHOD_NAME__ADR, NULL, &adr); + if (ACPI_FAILURE(status)) + return -ENODATA;I'm wondering if it compiles when CONFIG_ACPI=n.
Correct. It doesn't compile for non-ACPI case. Will resolve it. Thanks Calvin