* [PATCH] iio: accel: mma8452: use pm_ptr() for dev_pm_ops
@ 2026-04-14 19:20 Sanjay Chitroda
2026-04-15 9:42 ` Andy Shevchenko
2026-04-16 15:33 ` kernel test robot
0 siblings, 2 replies; 3+ messages in thread
From: Sanjay Chitroda @ 2026-04-14 19:20 UTC (permalink / raw)
To: jic23; +Cc: dlechner, nuno.sa, andy, linux-iio, linux-kernel
From: Sanjay Chitroda <sanjayembeddedse@gmail.com>
Use pm_ptr() so the PM ops pointer is automatically set to
NULL when CONFIG_PM is disabled. This avoids unused-function warnings
and follows modern kernel power-management conventions.
Signed-off-by: Sanjay Chitroda <sanjayembeddedse@gmail.com>
---
drivers/iio/accel/mma8452.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/drivers/iio/accel/mma8452.c b/drivers/iio/accel/mma8452.c
index 15172ba2972c..f2b71077574b 100644
--- a/drivers/iio/accel/mma8452.c
+++ b/drivers/iio/accel/mma8452.c
@@ -1744,7 +1744,6 @@ static void mma8452_remove(struct i2c_client *client)
regulator_disable(data->vdd_reg);
}
-#ifdef CONFIG_PM
static int mma8452_runtime_suspend(struct device *dev)
{
struct iio_dev *indio_dev = i2c_get_clientdata(to_i2c_client(dev));
@@ -1812,7 +1811,6 @@ static int mma8452_runtime_resume(struct device *dev)
return ret;
}
-#endif
static const struct dev_pm_ops mma8452_pm_ops = {
SET_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend, pm_runtime_force_resume)
@@ -1835,7 +1833,7 @@ static struct i2c_driver mma8452_driver = {
.driver = {
.name = "mma8452",
.of_match_table = mma8452_dt_ids,
- .pm = &mma8452_pm_ops,
+ .pm = pm_ptr(&mma8452_pm_ops),
},
.probe = mma8452_probe,
.remove = mma8452_remove,
--
2.34.1
^ permalink raw reply related [flat|nested] 3+ messages in thread* Re: [PATCH] iio: accel: mma8452: use pm_ptr() for dev_pm_ops
2026-04-14 19:20 [PATCH] iio: accel: mma8452: use pm_ptr() for dev_pm_ops Sanjay Chitroda
@ 2026-04-15 9:42 ` Andy Shevchenko
2026-04-16 15:33 ` kernel test robot
1 sibling, 0 replies; 3+ messages in thread
From: Andy Shevchenko @ 2026-04-15 9:42 UTC (permalink / raw)
To: Sanjay Chitroda; +Cc: jic23, dlechner, nuno.sa, andy, linux-iio, linux-kernel
On Wed, Apr 15, 2026 at 12:50:45AM +0530, Sanjay Chitroda wrote:
> Use pm_ptr() so the PM ops pointer is automatically set to
> NULL when CONFIG_PM is disabled. This avoids unused-function warnings
> and follows modern kernel power-management conventions.
...
> static const struct dev_pm_ops mma8452_pm_ops = {
> SET_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend, pm_runtime_force_resume)
You also want to change this to DEFINE_RUNTIME_DEV_PM_OPS().
--
With Best Regards,
Andy Shevchenko
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [PATCH] iio: accel: mma8452: use pm_ptr() for dev_pm_ops
2026-04-14 19:20 [PATCH] iio: accel: mma8452: use pm_ptr() for dev_pm_ops Sanjay Chitroda
2026-04-15 9:42 ` Andy Shevchenko
@ 2026-04-16 15:33 ` kernel test robot
1 sibling, 0 replies; 3+ messages in thread
From: kernel test robot @ 2026-04-16 15:33 UTC (permalink / raw)
To: Sanjay Chitroda, jic23
Cc: oe-kbuild-all, dlechner, nuno.sa, andy, linux-iio, linux-kernel
Hi Sanjay,
kernel test robot noticed the following build warnings:
[auto build test WARNING on jic23-iio/togreg]
[also build test WARNING on linus/master v7.0 next-20260415]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Sanjay-Chitroda/iio-accel-mma8452-use-pm_ptr-for-dev_pm_ops/20260416-061819
base: https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio.git togreg
patch link: https://lore.kernel.org/r/20260414192045.3598010-1-sanjayembedded%40gmail.com
patch subject: [PATCH] iio: accel: mma8452: use pm_ptr() for dev_pm_ops
config: m68k-allyesconfig (https://download.01.org/0day-ci/archive/20260416/202604162323.4pYsEj7A-lkp@intel.com/config)
compiler: m68k-linux-gcc (GCC) 15.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260416/202604162323.4pYsEj7A-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202604162323.4pYsEj7A-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> drivers/iio/accel/mma8452.c:1776:12: warning: 'mma8452_runtime_resume' defined but not used [-Wunused-function]
1776 | static int mma8452_runtime_resume(struct device *dev)
| ^~~~~~~~~~~~~~~~~~~~~~
>> drivers/iio/accel/mma8452.c:1747:12: warning: 'mma8452_runtime_suspend' defined but not used [-Wunused-function]
1747 | static int mma8452_runtime_suspend(struct device *dev)
| ^~~~~~~~~~~~~~~~~~~~~~~
vim +/mma8452_runtime_resume +1776 drivers/iio/accel/mma8452.c
c7eeea93ac60ab Peter Meerwald 2014-02-05 1746
96c0cb2bbfe0a5 Martin Kepplinger 2016-03-03 @1747 static int mma8452_runtime_suspend(struct device *dev)
96c0cb2bbfe0a5 Martin Kepplinger 2016-03-03 1748 {
96c0cb2bbfe0a5 Martin Kepplinger 2016-03-03 1749 struct iio_dev *indio_dev = i2c_get_clientdata(to_i2c_client(dev));
96c0cb2bbfe0a5 Martin Kepplinger 2016-03-03 1750 struct mma8452_data *data = iio_priv(indio_dev);
96c0cb2bbfe0a5 Martin Kepplinger 2016-03-03 1751 int ret;
96c0cb2bbfe0a5 Martin Kepplinger 2016-03-03 1752
96c0cb2bbfe0a5 Martin Kepplinger 2016-03-03 1753 mutex_lock(&data->lock);
96c0cb2bbfe0a5 Martin Kepplinger 2016-03-03 1754 ret = mma8452_standby(data);
96c0cb2bbfe0a5 Martin Kepplinger 2016-03-03 1755 mutex_unlock(&data->lock);
96c0cb2bbfe0a5 Martin Kepplinger 2016-03-03 1756 if (ret < 0) {
96c0cb2bbfe0a5 Martin Kepplinger 2016-03-03 1757 dev_err(&data->client->dev, "powering off device failed\n");
96c0cb2bbfe0a5 Martin Kepplinger 2016-03-03 1758 return -EAGAIN;
96c0cb2bbfe0a5 Martin Kepplinger 2016-03-03 1759 }
96c0cb2bbfe0a5 Martin Kepplinger 2016-03-03 1760
f6ff49b8a3b6f7 Anson Huang 2019-01-08 1761 ret = regulator_disable(data->vddio_reg);
f6ff49b8a3b6f7 Anson Huang 2019-01-08 1762 if (ret) {
f6ff49b8a3b6f7 Anson Huang 2019-01-08 1763 dev_err(dev, "failed to disable VDDIO regulator\n");
f6ff49b8a3b6f7 Anson Huang 2019-01-08 1764 return ret;
f6ff49b8a3b6f7 Anson Huang 2019-01-08 1765 }
f6ff49b8a3b6f7 Anson Huang 2019-01-08 1766
f6ff49b8a3b6f7 Anson Huang 2019-01-08 1767 ret = regulator_disable(data->vdd_reg);
f6ff49b8a3b6f7 Anson Huang 2019-01-08 1768 if (ret) {
f6ff49b8a3b6f7 Anson Huang 2019-01-08 1769 dev_err(dev, "failed to disable VDD regulator\n");
f6ff49b8a3b6f7 Anson Huang 2019-01-08 1770 return ret;
f6ff49b8a3b6f7 Anson Huang 2019-01-08 1771 }
f6ff49b8a3b6f7 Anson Huang 2019-01-08 1772
96c0cb2bbfe0a5 Martin Kepplinger 2016-03-03 1773 return 0;
96c0cb2bbfe0a5 Martin Kepplinger 2016-03-03 1774 }
96c0cb2bbfe0a5 Martin Kepplinger 2016-03-03 1775
96c0cb2bbfe0a5 Martin Kepplinger 2016-03-03 @1776 static int mma8452_runtime_resume(struct device *dev)
96c0cb2bbfe0a5 Martin Kepplinger 2016-03-03 1777 {
96c0cb2bbfe0a5 Martin Kepplinger 2016-03-03 1778 struct iio_dev *indio_dev = i2c_get_clientdata(to_i2c_client(dev));
96c0cb2bbfe0a5 Martin Kepplinger 2016-03-03 1779 struct mma8452_data *data = iio_priv(indio_dev);
96c0cb2bbfe0a5 Martin Kepplinger 2016-03-03 1780 int ret, sleep_val;
96c0cb2bbfe0a5 Martin Kepplinger 2016-03-03 1781
f6ff49b8a3b6f7 Anson Huang 2019-01-08 1782 ret = regulator_enable(data->vdd_reg);
f6ff49b8a3b6f7 Anson Huang 2019-01-08 1783 if (ret) {
f6ff49b8a3b6f7 Anson Huang 2019-01-08 1784 dev_err(dev, "failed to enable VDD regulator\n");
f6ff49b8a3b6f7 Anson Huang 2019-01-08 1785 return ret;
f6ff49b8a3b6f7 Anson Huang 2019-01-08 1786 }
f6ff49b8a3b6f7 Anson Huang 2019-01-08 1787
f6ff49b8a3b6f7 Anson Huang 2019-01-08 1788 ret = regulator_enable(data->vddio_reg);
f6ff49b8a3b6f7 Anson Huang 2019-01-08 1789 if (ret) {
f6ff49b8a3b6f7 Anson Huang 2019-01-08 1790 dev_err(dev, "failed to enable VDDIO regulator\n");
f6ff49b8a3b6f7 Anson Huang 2019-01-08 1791 regulator_disable(data->vdd_reg);
f6ff49b8a3b6f7 Anson Huang 2019-01-08 1792 return ret;
f6ff49b8a3b6f7 Anson Huang 2019-01-08 1793 }
f6ff49b8a3b6f7 Anson Huang 2019-01-08 1794
96c0cb2bbfe0a5 Martin Kepplinger 2016-03-03 1795 ret = mma8452_active(data);
96c0cb2bbfe0a5 Martin Kepplinger 2016-03-03 1796 if (ret < 0)
f6ff49b8a3b6f7 Anson Huang 2019-01-08 1797 goto runtime_resume_failed;
96c0cb2bbfe0a5 Martin Kepplinger 2016-03-03 1798
96c0cb2bbfe0a5 Martin Kepplinger 2016-03-03 1799 ret = mma8452_get_odr_index(data);
96c0cb2bbfe0a5 Martin Kepplinger 2016-03-03 1800 sleep_val = 1000 / mma8452_samp_freq[ret][0];
96c0cb2bbfe0a5 Martin Kepplinger 2016-03-03 1801 if (sleep_val < 20)
96c0cb2bbfe0a5 Martin Kepplinger 2016-03-03 1802 usleep_range(sleep_val * 1000, 20000);
96c0cb2bbfe0a5 Martin Kepplinger 2016-03-03 1803 else
96c0cb2bbfe0a5 Martin Kepplinger 2016-03-03 1804 msleep_interruptible(sleep_val);
96c0cb2bbfe0a5 Martin Kepplinger 2016-03-03 1805
96c0cb2bbfe0a5 Martin Kepplinger 2016-03-03 1806 return 0;
96c0cb2bbfe0a5 Martin Kepplinger 2016-03-03 1807
f6ff49b8a3b6f7 Anson Huang 2019-01-08 1808 runtime_resume_failed:
f6ff49b8a3b6f7 Anson Huang 2019-01-08 1809 regulator_disable(data->vddio_reg);
f6ff49b8a3b6f7 Anson Huang 2019-01-08 1810 regulator_disable(data->vdd_reg);
c7eeea93ac60ab Peter Meerwald 2014-02-05 1811
f6ff49b8a3b6f7 Anson Huang 2019-01-08 1812 return ret;
c7eeea93ac60ab Peter Meerwald 2014-02-05 1813 }
c7eeea93ac60ab Peter Meerwald 2014-02-05 1814
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-04-16 15:33 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-14 19:20 [PATCH] iio: accel: mma8452: use pm_ptr() for dev_pm_ops Sanjay Chitroda
2026-04-15 9:42 ` Andy Shevchenko
2026-04-16 15:33 ` kernel test robot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox