[PATCH v2 1/2] firmware: arm_scmi: bus: Add pm ops

Peng Fan peng.fan at nxp.com
Mon Jul 7 18:32:15 PDT 2025


> Subject: Re: [PATCH v2 1/2] firmware: arm_scmi: bus: Add pm ops
> 
> On Fri, Jul 04, 2025 at 11:09:35AM +0800, Peng Fan wrote:
> > Take platform_pm_ops as reference. Add pm ops for scmi_bus_type,
> then
> > the scmi devices under scmi bus could have their own hooks for
> > suspend, resume function.
> >
> > Signed-off-by: Peng Fan <peng.fan at nxp.com>
> > ---
> >  drivers/firmware/arm_scmi/bus.c | 33
> > +++++++++++++++++++++++++++++++++
> >  1 file changed, 33 insertions(+)
> >
> > diff --git a/drivers/firmware/arm_scmi/bus.c
> > b/drivers/firmware/arm_scmi/bus.c index
> >
> 1adef03894751dae9bb752b8c7f86e5d01c5d4fd..b6ade837ecea34f14
> 7fc1b734c55
> > eafecca5ae0c 100644
> > --- a/drivers/firmware/arm_scmi/bus.c
> > +++ b/drivers/firmware/arm_scmi/bus.c
> > @@ -323,6 +323,38 @@ static struct attribute
> > *scmi_device_attributes_attrs[] = {  };
> > ATTRIBUTE_GROUPS(scmi_device_attributes);
> >
> > +#ifdef CONFIG_SUSPEND
> > +static int scmi_pm_suspend(struct device *dev) {
> > +	const struct device_driver *drv = dev->driver;
> > +
> > +	if (drv && drv->pm && drv->pm->suspend)
> > +		return drv->pm->suspend(dev);
> > +
> > +	return 0;
> > +}
> > +
> > +static int scmi_pm_resume(struct device *dev) {
> > +	const struct device_driver *drv = dev->driver;
> > +
> > +	if (drv && drv->pm && drv->pm->resume)
> > +		return drv->pm->resume(dev);
> > +
> > +	return 0;
> > +}
> > +
> > +static const struct dev_pm_ops scmi_dev_pm_ops = {
> > +	.suspend = scmi_pm_suspend,
> 
> I have use pm_sleep_ptr() and removed the below NULL based struct.
> Have a look at for-next/scmi/updates and let me know if you are happy
> with that.

Thanks for the cleanup. Seems kernel build bot report a failure, not
sure related to this macro or else, I am still trying to see what happens.

Thanks,
Peng.

> 
> --
> Regards,
> Sudeep




More information about the linux-arm-kernel mailing list