iio:accel:kxsd9: Switch from CONFIG_PM guards to pm_ptr() etc
authorJonathan Cameron <Jonathan.Cameron@huawei.com>
Sat, 4 Jun 2022 16:12:19 +0000 (17:12 +0100)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Wed, 15 Jun 2022 21:07:09 +0000 (22:07 +0100)
Letting the compiler remove these functions when the kernel is built
without CONFIG_PM support is simpler and less error prone than the
use of #ifdef based config guards.

Removing instances of this approach from IIO also stops them being
copied into new drivers.

Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Link: https://lore.kernel.org/r/20220220181522.541718-5-jic23@kernel.org
Link: https://lore.kernel.org/r/20220604161223.461847-2-jic23@kernel.org
drivers/iio/accel/kxsd9-i2c.c
drivers/iio/accel/kxsd9-spi.c
drivers/iio/accel/kxsd9.c

index c8dc52f..d57f264 100644 (file)
@@ -55,7 +55,7 @@ static struct i2c_driver kxsd9_i2c_driver = {
        .driver = {
                .name   = "kxsd9",
                .of_match_table = kxsd9_of_match,
-               .pm = &kxsd9_dev_pm_ops,
+               .pm = pm_ptr(&kxsd9_dev_pm_ops),
        },
        .probe          = kxsd9_i2c_probe,
        .remove         = kxsd9_i2c_remove,
index b7b5af4..07f14a9 100644 (file)
@@ -52,7 +52,7 @@ MODULE_DEVICE_TABLE(of, kxsd9_of_match);
 static struct spi_driver kxsd9_spi_driver = {
        .driver = {
                .name = "kxsd9",
-               .pm = &kxsd9_dev_pm_ops,
+               .pm = pm_ptr(&kxsd9_dev_pm_ops),
                .of_match_table = kxsd9_of_match,
        },
        .probe = kxsd9_spi_probe,
index 3975860..ba99649 100644 (file)
@@ -492,7 +492,6 @@ void kxsd9_common_remove(struct device *dev)
 }
 EXPORT_SYMBOL_NS(kxsd9_common_remove, IIO_KXSD9);
 
-#ifdef CONFIG_PM
 static int kxsd9_runtime_suspend(struct device *dev)
 {
        struct iio_dev *indio_dev = dev_get_drvdata(dev);
@@ -508,15 +507,9 @@ static int kxsd9_runtime_resume(struct device *dev)
 
        return kxsd9_power_up(st);
 }
-#endif /* CONFIG_PM */
 
-const struct dev_pm_ops kxsd9_dev_pm_ops = {
-       SET_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend,
-                               pm_runtime_force_resume)
-       SET_RUNTIME_PM_OPS(kxsd9_runtime_suspend,
-                          kxsd9_runtime_resume, NULL)
-};
-EXPORT_SYMBOL_NS(kxsd9_dev_pm_ops, IIO_KXSD9);
+EXPORT_NS_RUNTIME_DEV_PM_OPS(kxsd9_dev_pm_ops, kxsd9_runtime_suspend,
+                            kxsd9_runtime_resume, NULL, IIO_KXSD9);
 
 MODULE_AUTHOR("Jonathan Cameron <jic23@kernel.org>");
 MODULE_DESCRIPTION("Kionix KXSD9 driver");