public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [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