Message ID | 20250120-scmi-fwdevlink-v2-0-3af2fa37dbac@nxp.com (mailing list archive) |
---|---|
Headers | show |
Series | scmi: Bypass set fwnode and introduce allow/block list to address devlink issue | expand |
> Subject: [PATCH v2 0/4] scmi: Bypass set fwnode and introduce > allow/block list to address devlink issue Any comments on this patchset? Thanks, Peng. > > Current scmi drivers not work well with devlink. This patchset is a retry > to address the issue in [1] which was a few months ago. > > Current scmi devices are not created from device tree, they are created > from a scmi_device_id entry of each driver with the protocol matches > with the fwnode reg value, this means there could be multiple devices > created for one fwnode, but the fwnode only has one device pointer. > > This patchset is to do more checking before setting the device fwnode. > And Introduce machine_allowlist and machine_blocklist. > > The reason to introduce machine_blocklist is for case that if pinctrl- > scmi.c probes before pinctrl-imx-scmi.c probes on i.MX platform. > Need to block pinctrl-scmi.c on i.MX platform. > > This may looks like hack, but seems no better way to make scmi works > well with devlink. > > [1]: https://lore.kernel.org/arm-scmi/CAGETcx8m48cy- > EzP6_uoGN7KWsQw=CfZWQ-hNUzz_7LZ0voG8A@mail.gmail.com/ > > Signed-off-by: Peng Fan <peng.fan@nxp.com> > --- > Changes in v2: > - Introduce machine_allowlist and machine_blocklist > - Keep of_node for cpufreq device per Cristian > - Patch 2 is an optimization patch when fixing the devlink issue > - Link to v1: https://lore.kernel.org/r/20241225-scmi-fwdevlink-v1-0- > e9a3a5341362@nxp.com > > --- > Peng Fan (4): > firmware: arm_scmi: Bypass setting fwnode for scmi cpufreq > firmware: arm_scmi: Add machine_allowlist and machine_blocklist > pinctrl: freescale: scmi: Switch to use machine_allowlist > pinctrl: scmi: Switch to use machine_blocklist > > drivers/firmware/arm_scmi/bus.c | 31 > +++++++++++++++++++++++++++- > drivers/pinctrl/freescale/pinctrl-imx-scmi.c | 15 ++++++-------- > drivers/pinctrl/pinctrl-scmi.c | 15 ++++++-------- > include/linux/scmi_protocol.h | 3 +++ > 4 files changed, 45 insertions(+), 19 deletions(-) > --- > base-commit: 9dff7bbdd359c73f1b44ab592bbb17e1c174fe43 > change-id: 20241225-scmi-fwdevlink-afb5131f19ea > > Best regards, > -- > Peng Fan <peng.fan@nxp.com>
On Tue, Feb 4, 2025 at 4:31 AM Peng Fan <peng.fan@nxp.com> wrote: > > Subject: [PATCH v2 0/4] scmi: Bypass set fwnode and introduce > > allow/block list to address devlink issue > > Any comments on this patchset? The pinctrl changes look OK to me so for those 2 patches: Acked-by: Linus Walleij <linus.walleij@linaro.org> in case you want to merge it through some other tree. Yours, Linus Walleij
Current scmi drivers not work well with devlink. This patchset is a retry to address the issue in [1] which was a few months ago. Current scmi devices are not created from device tree, they are created from a scmi_device_id entry of each driver with the protocol matches with the fwnode reg value, this means there could be multiple devices created for one fwnode, but the fwnode only has one device pointer. This patchset is to do more checking before setting the device fwnode. And Introduce machine_allowlist and machine_blocklist. The reason to introduce machine_blocklist is for case that if pinctrl-scmi.c probes before pinctrl-imx-scmi.c probes on i.MX platform. Need to block pinctrl-scmi.c on i.MX platform. This may looks like hack, but seems no better way to make scmi works well with devlink. [1]: https://lore.kernel.org/arm-scmi/CAGETcx8m48cy-EzP6_uoGN7KWsQw=CfZWQ-hNUzz_7LZ0voG8A@mail.gmail.com/ Signed-off-by: Peng Fan <peng.fan@nxp.com> --- Changes in v2: - Introduce machine_allowlist and machine_blocklist - Keep of_node for cpufreq device per Cristian - Patch 2 is an optimization patch when fixing the devlink issue - Link to v1: https://lore.kernel.org/r/20241225-scmi-fwdevlink-v1-0-e9a3a5341362@nxp.com --- Peng Fan (4): firmware: arm_scmi: Bypass setting fwnode for scmi cpufreq firmware: arm_scmi: Add machine_allowlist and machine_blocklist pinctrl: freescale: scmi: Switch to use machine_allowlist pinctrl: scmi: Switch to use machine_blocklist drivers/firmware/arm_scmi/bus.c | 31 +++++++++++++++++++++++++++- drivers/pinctrl/freescale/pinctrl-imx-scmi.c | 15 ++++++-------- drivers/pinctrl/pinctrl-scmi.c | 15 ++++++-------- include/linux/scmi_protocol.h | 3 +++ 4 files changed, 45 insertions(+), 19 deletions(-) --- base-commit: 9dff7bbdd359c73f1b44ab592bbb17e1c174fe43 change-id: 20241225-scmi-fwdevlink-afb5131f19ea Best regards,