Re: [net-next PATCH v3 09/15] device property: Introduce fwnode_get_id()
From: "Rafael J. Wysocki" <rafael@kernel.org>
Date: 2021-01-22 16:46:24
Also in:
linux-acpi, lkml, netdev
On Wed, Jan 20, 2021 at 9:01 PM Saravana Kannan [off-list ref] wrote:
On Wed, Jan 20, 2021 at 11:15 AM Rafael J. Wysocki [off-list ref] wrote:quoted
On Wed, Jan 20, 2021 at 7:51 PM Andy Shevchenko [off-list ref] wrote:quoted
On Wed, Jan 20, 2021 at 8:18 PM Rafael J. Wysocki [off-list ref] wrote:quoted
On Tue, Jan 12, 2021 at 7:02 PM Andy Shevchenko [off-list ref] wrote:quoted
On Tue, Jan 12, 2021 at 09:30:31AM -0800, Saravana Kannan wrote:quoted
On Tue, Jan 12, 2021 at 5:42 AM Calvin Johnson [off-list ref] wrote:...quoted
quoted
quoted
quoted
+ ret = fwnode_property_read_u32(fwnode, "reg", id); + if (!(ret && is_acpi_node(fwnode))) + return ret; + +#ifdef CONFIG_ACPI + status = acpi_evaluate_integer(ACPI_HANDLE_FWNODE(fwnode), + METHOD_NAME__ADR, NULL, &adr); + if (ACPI_FAILURE(status)) + return -EINVAL; + *id = (u32)adr; +#endif + return 0;quoted
quoted
quoted
Also ACPI and DT aren't mutually exclusive if I'm not mistaken.That's why we try 'reg' property for both cases first. is_acpi_fwnode() conditional is that what I don't like though.I'm not sure what you mean here, care to elaborate?I meant is_acpi_node(fwnode) in the conditional. I think it's redundant and we can simple do something like this: if (ret) { #ifdef ACPI ... #else return ret; #endif } return 0; --Right, that should work. And I'd prefer it too.Rafael, I'd rather this new function be an ops instead of a bunch of #ifdef or if (acpi) checks. Thoughts?
Well, it looks more like a helper function than like an op and I'm not even sure how many potential users of it will expect that _ADR should be evaluated in the absence of the "reg" property. It's just that the "reg" property happens to be kind of an _ADR equivalent in this particular binding AFAICS. _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel