On Wed, Mar 12, 2025 at 11:28:52AM +0000, Sudeep Holla wrote: >On Wed, Mar 12, 2025 at 10:52:23AM +0000, Sudeep Holla wrote: >> On Tue, Mar 11, 2025 at 11:23:12AM +0000, Sudeep Holla wrote: >> > On Tue, Mar 11, 2025 at 11:12:45AM +0000, Peng Fan wrote: >> > > >> > > So it is clear that wrong fw_devlink is created, it is because scmi cpufreq device is >> > > created earlier and when device_add, the below logic makes the fwnode pointer points >> > > to scmi cpufreq device. >> > > if (dev->fwnode && !dev->fwnode->dev) { >> > > dev->fwnode->dev = dev; >> > > fw_devlink_link_device(dev); >> > > } >> > > >> > >> > Thanks, looks like simple way to reproduce the issue. I will give it a try. >> > >> >> I could reproduce but none of my solution solved the problem completely >> or properly. And I don't like the DT proposal you came up with. I am >> not inclined to just drop this fwnode setting in the scmi devices and >> just use of_node. >> > >Sorry for the typo that changes the meaning: s/not/now > >I meant "I am now inclined ..", until we figure out a way to make this >work with devlinks properly. when you have time, please give a look at https://github.com/MrVan/linux/commit/b500c29cb7f6f32a38b1ed462e333db5a3e301e4 The upper patch was to follow Cristian's and Dan's suggestion in V2[1] to use a flag SCMI_DEVICE_NO_FWNODE for scmi device. I could post out the upper patch as V3 if it basically looks no design flaw. I will drop the pinctrl patch in v3, considering we are first going to resolve the fw_devlink issue for cpufreq/devfreq. [1] https://lore.kernel.org/all/Z6SgFGb4Z88v783c@pluto/ Thanks, Peng. > >-- >Regards, >Sudeep