On 12/15/25 2:08 PM, Jiri Pirko wrote:
Sun, Dec 14, 2025 at 08:35:01PM +0100, [email protected] wrote:
On December 12, 2025 12:25:12 PM GMT+01:00, Jiri Pirko <[email protected]> wrote:
Thu, Dec 11, 2025 at 08:47:45PM +0100, [email protected] wrote:
[..]
@@ -559,7 +563,8 @@ EXPORT_SYMBOL(dpll_netdev_pin_clear);
*/
struct dpll_pin *
dpll_pin_get(u64 clock_id, u32 pin_idx, struct module *module,
- const struct dpll_pin_properties *prop)
+ const struct dpll_pin_properties *prop,
+ struct fwnode_handle *fwnode)
{
struct dpll_pin *pos, *ret = NULL;
unsigned long i;
@@ -568,14 +573,15 @@ dpll_pin_get(u64 clock_id, u32 pin_idx, struct module
*module,
xa_for_each(&dpll_pin_xa, i, pos) {
if (pos->clock_id == clock_id &&
pos->pin_idx == pin_idx &&
- pos->module == module) {
+ pos->module == module &&
+ pos->fwnode == fwnode) {
Is fwnode part of the key? Doesn't look to me like that. Then you can
have a simple helper to set fwnode on struct dpll_pin *, and leave
dpll_pin_get() out of this, no?
IMHO yes, because particular fwnode identifies exact dpll pin, so
I think it should be a part of the key.
The key items serve for userspace identification purposes as well. For
that, fwnode is non-sense.
fwnode identifies exact pin, that is nice. But is it the only
differentiator among other key items? I don't expect so.
From this point of view, not. I will not touch dpll_pin_get() and rather
use new helper like dpll_pin_fwnode_set(), ok?
Thanks,
Ivan