As the build bot noticed - this patch is invalid as the virtio_driver.{freeze,restore} callbacks are guarded by #ifdefs. Feel free to apply the rest (if everybody is happy with them) and I'll respin this one. Cheers, -Paul Le samedi 22 juillet 2023 à 13:53 +0200, Paul Cercueil a écrit : > Use the new PM macros for the suspend and resume functions to be > automatically dropped by the compiler when CONFIG_PM or > CONFIG_PM_SLEEP are disabled, without having to use #ifdef guards. > > This has the advantage of always compiling these functions in, > independently of any Kconfig option. Thanks to that, bugs and other > regressions are subsequently easier to catch. > > Signed-off-by: Paul Cercueil <paul@xxxxxxxxxxxxxxx> > Reviewed-by: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx> > Acked-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx> > > --- > Cc: Conghui Chen <conghui.chen@xxxxxxxxx> > Cc: Viresh Kumar <viresh.kumar@xxxxxxxxxx> > Cc: virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx > --- > drivers/i2c/busses/i2c-virtio.c | 8 ++------ > 1 file changed, 2 insertions(+), 6 deletions(-) > > diff --git a/drivers/i2c/busses/i2c-virtio.c > b/drivers/i2c/busses/i2c-virtio.c > index 4b9536f50800..c60ae531ba57 100644 > --- a/drivers/i2c/busses/i2c-virtio.c > +++ b/drivers/i2c/busses/i2c-virtio.c > @@ -243,7 +243,6 @@ static struct virtio_device_id id_table[] = { > }; > MODULE_DEVICE_TABLE(virtio, id_table); > > -#ifdef CONFIG_PM_SLEEP > static int virtio_i2c_freeze(struct virtio_device *vdev) > { > virtio_i2c_del_vqs(vdev); > @@ -254,7 +253,6 @@ static int virtio_i2c_restore(struct > virtio_device *vdev) > { > return virtio_i2c_setup_vqs(vdev->priv); > } > -#endif > > static const unsigned int features[] = { > VIRTIO_I2C_F_ZERO_LENGTH_REQUEST, > @@ -269,10 +267,8 @@ static struct virtio_driver virtio_i2c_driver = > { > .driver = { > .name = "i2c_virtio", > }, > -#ifdef CONFIG_PM_SLEEP > - .freeze = virtio_i2c_freeze, > - .restore = virtio_i2c_restore, > -#endif > + .freeze = pm_sleep_ptr(virtio_i2c_freeze), > + .restore = pm_sleep_ptr(virtio_i2c_restore), > }; > module_virtio_driver(virtio_i2c_driver); >