mbox series

[v2,0/4] scmi: Bypass set fwnode and introduce allow/block list to address devlink issue

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

Message

Peng Fan Jan. 20, 2025, 7:13 a.m. UTC
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,

Comments

Peng Fan Feb. 4, 2025, 3:31 a.m. UTC | #1
> 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>
Linus Walleij Feb. 6, 2025, 9:07 a.m. UTC | #2
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