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. >
