Re: [PATCH v3 50/50] iio:adc:stm32*: Use pm[_sleep]_ptr() etc to avoid need to make pm __maybe_unused

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 1/30/22 8:31 PM, Jonathan Cameron wrote:
> From: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx>
> 
> The combinations of either
> * pm_sleep_ptr() and DEFINE_SIMPLE_DEV_PM_OPS()
> * pm_ptr() and RUNTIME_PM_OPS()/SYSTEM_SLEEP_PM_OPS
> Make sure the functions are always visible to the compiler and removed by
> it rather than requring #ifdef magic.
> 
> This removes the need to mark the functions as __maybe_unused and saves
> additional space with some build options as the dev_pm_ops structure
> itself can be dropped automatically if CONFIG_PM is not enabled.
> 
> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx>
> Cc: Olivier Moysan <olivier.moysan@xxxxxx>
> Cc: Fabrice Gasnier <fabrice.gasnier@xxxxxxxxxxx>
> ---

Hi Jonathan,

You can add my:
Reviewed-by: Fabrice Gasnier <fabrice.gasnier@xxxxxxxxxxx>

Thanks for the patch,
Best Regards,
Fabrice

>  drivers/iio/adc/stm32-dfsdm-adc.c         | 11 ++++++-----
>  drivers/iio/adc/stm32-dfsdm-core.c        | 19 +++++++++----------
>  drivers/iio/dac/stm32-dac-core.c          | 16 ++++++++--------
>  drivers/iio/dac/stm32-dac.c               |  9 ++++-----
>  drivers/iio/trigger/stm32-timer-trigger.c | 12 ++++++------
>  5 files changed, 33 insertions(+), 34 deletions(-)
> 
> diff --git a/drivers/iio/adc/stm32-dfsdm-adc.c b/drivers/iio/adc/stm32-dfsdm-adc.c
> index 1cfefb3b5e56..9704cf0b9753 100644
> --- a/drivers/iio/adc/stm32-dfsdm-adc.c
> +++ b/drivers/iio/adc/stm32-dfsdm-adc.c
> @@ -1632,7 +1632,7 @@ static int stm32_dfsdm_adc_remove(struct platform_device *pdev)
>  	return 0;
>  }
>  
> -static int __maybe_unused stm32_dfsdm_adc_suspend(struct device *dev)
> +static int stm32_dfsdm_adc_suspend(struct device *dev)
>  {
>  	struct iio_dev *indio_dev = dev_get_drvdata(dev);
>  
> @@ -1642,7 +1642,7 @@ static int __maybe_unused stm32_dfsdm_adc_suspend(struct device *dev)
>  	return 0;
>  }
>  
> -static int __maybe_unused stm32_dfsdm_adc_resume(struct device *dev)
> +static int stm32_dfsdm_adc_resume(struct device *dev)
>  {
>  	struct iio_dev *indio_dev = dev_get_drvdata(dev);
>  	struct stm32_dfsdm_adc *adc = iio_priv(indio_dev);
> @@ -1665,14 +1665,15 @@ static int __maybe_unused stm32_dfsdm_adc_resume(struct device *dev)
>  	return 0;
>  }
>  
> -static SIMPLE_DEV_PM_OPS(stm32_dfsdm_adc_pm_ops,
> -			 stm32_dfsdm_adc_suspend, stm32_dfsdm_adc_resume);
> +static DEFINE_SIMPLE_DEV_PM_OPS(stm32_dfsdm_adc_pm_ops,
> +				stm32_dfsdm_adc_suspend,
> +				stm32_dfsdm_adc_resume);
>  
>  static struct platform_driver stm32_dfsdm_adc_driver = {
>  	.driver = {
>  		.name = "stm32-dfsdm-adc",
>  		.of_match_table = stm32_dfsdm_adc_match,
> -		.pm = &stm32_dfsdm_adc_pm_ops,
> +		.pm = pm_sleep_ptr(&stm32_dfsdm_adc_pm_ops),
>  	},
>  	.probe = stm32_dfsdm_adc_probe,
>  	.remove = stm32_dfsdm_adc_remove,
> diff --git a/drivers/iio/adc/stm32-dfsdm-core.c b/drivers/iio/adc/stm32-dfsdm-core.c
> index a627af9a825e..a3d4de6ba4c2 100644
> --- a/drivers/iio/adc/stm32-dfsdm-core.c
> +++ b/drivers/iio/adc/stm32-dfsdm-core.c
> @@ -381,7 +381,7 @@ static int stm32_dfsdm_core_remove(struct platform_device *pdev)
>  	return 0;
>  }
>  
> -static int __maybe_unused stm32_dfsdm_core_suspend(struct device *dev)
> +static int stm32_dfsdm_core_suspend(struct device *dev)
>  {
>  	struct stm32_dfsdm *dfsdm = dev_get_drvdata(dev);
>  	struct dfsdm_priv *priv = to_stm32_dfsdm_priv(dfsdm);
> @@ -397,7 +397,7 @@ static int __maybe_unused stm32_dfsdm_core_suspend(struct device *dev)
>  	return pinctrl_pm_select_sleep_state(dev);
>  }
>  
> -static int __maybe_unused stm32_dfsdm_core_resume(struct device *dev)
> +static int stm32_dfsdm_core_resume(struct device *dev)
>  {
>  	struct stm32_dfsdm *dfsdm = dev_get_drvdata(dev);
>  	struct dfsdm_priv *priv = to_stm32_dfsdm_priv(dfsdm);
> @@ -414,7 +414,7 @@ static int __maybe_unused stm32_dfsdm_core_resume(struct device *dev)
>  	return pm_runtime_force_resume(dev);
>  }
>  
> -static int __maybe_unused stm32_dfsdm_core_runtime_suspend(struct device *dev)
> +static int stm32_dfsdm_core_runtime_suspend(struct device *dev)
>  {
>  	struct stm32_dfsdm *dfsdm = dev_get_drvdata(dev);
>  
> @@ -423,7 +423,7 @@ static int __maybe_unused stm32_dfsdm_core_runtime_suspend(struct device *dev)
>  	return 0;
>  }
>  
> -static int __maybe_unused stm32_dfsdm_core_runtime_resume(struct device *dev)
> +static int stm32_dfsdm_core_runtime_resume(struct device *dev)
>  {
>  	struct stm32_dfsdm *dfsdm = dev_get_drvdata(dev);
>  
> @@ -431,11 +431,10 @@ static int __maybe_unused stm32_dfsdm_core_runtime_resume(struct device *dev)
>  }
>  
>  static const struct dev_pm_ops stm32_dfsdm_core_pm_ops = {
> -	SET_SYSTEM_SLEEP_PM_OPS(stm32_dfsdm_core_suspend,
> -				stm32_dfsdm_core_resume)
> -	SET_RUNTIME_PM_OPS(stm32_dfsdm_core_runtime_suspend,
> -			   stm32_dfsdm_core_runtime_resume,
> -			   NULL)
> +	SYSTEM_SLEEP_PM_OPS(stm32_dfsdm_core_suspend, stm32_dfsdm_core_resume)
> +	RUNTIME_PM_OPS(stm32_dfsdm_core_runtime_suspend,
> +		       stm32_dfsdm_core_runtime_resume,
> +		       NULL)
>  };
>  
>  static struct platform_driver stm32_dfsdm_driver = {
> @@ -444,7 +443,7 @@ static struct platform_driver stm32_dfsdm_driver = {
>  	.driver = {
>  		.name = "stm32-dfsdm",
>  		.of_match_table = stm32_dfsdm_of_match,
> -		.pm = &stm32_dfsdm_core_pm_ops,
> +		.pm = pm_ptr(&stm32_dfsdm_core_pm_ops),
>  	},
>  };
>  
> diff --git a/drivers/iio/dac/stm32-dac-core.c b/drivers/iio/dac/stm32-dac-core.c
> index bd7a3b20e645..83bf184e3adc 100644
> --- a/drivers/iio/dac/stm32-dac-core.c
> +++ b/drivers/iio/dac/stm32-dac-core.c
> @@ -195,7 +195,7 @@ static int stm32_dac_remove(struct platform_device *pdev)
>  	return 0;
>  }
>  
> -static int __maybe_unused stm32_dac_core_resume(struct device *dev)
> +static int stm32_dac_core_resume(struct device *dev)
>  {
>  	struct stm32_dac_common *common = dev_get_drvdata(dev);
>  	struct stm32_dac_priv *priv = to_stm32_dac_priv(common);
> @@ -213,23 +213,23 @@ static int __maybe_unused stm32_dac_core_resume(struct device *dev)
>  	return pm_runtime_force_resume(dev);
>  }
>  
> -static int __maybe_unused stm32_dac_core_runtime_suspend(struct device *dev)
> +static int stm32_dac_core_runtime_suspend(struct device *dev)
>  {
>  	stm32_dac_core_hw_stop(dev);
>  
>  	return 0;
>  }
>  
> -static int __maybe_unused stm32_dac_core_runtime_resume(struct device *dev)
> +static int stm32_dac_core_runtime_resume(struct device *dev)
>  {
>  	return stm32_dac_core_hw_start(dev);
>  }
>  
>  static const struct dev_pm_ops stm32_dac_core_pm_ops = {
> -	SET_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend, stm32_dac_core_resume)
> -	SET_RUNTIME_PM_OPS(stm32_dac_core_runtime_suspend,
> -			   stm32_dac_core_runtime_resume,
> -			   NULL)
> +	SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend, stm32_dac_core_resume)
> +	RUNTIME_PM_OPS(stm32_dac_core_runtime_suspend,
> +		       stm32_dac_core_runtime_resume,
> +		       NULL)
>  };
>  
>  static const struct stm32_dac_cfg stm32h7_dac_cfg = {
> @@ -253,7 +253,7 @@ static struct platform_driver stm32_dac_driver = {
>  	.driver = {
>  		.name = "stm32-dac-core",
>  		.of_match_table = stm32_dac_of_match,
> -		.pm = &stm32_dac_core_pm_ops,
> +		.pm = pm_ptr(&stm32_dac_core_pm_ops),
>  	},
>  };
>  module_platform_driver(stm32_dac_driver);
> diff --git a/drivers/iio/dac/stm32-dac.c b/drivers/iio/dac/stm32-dac.c
> index cd71cc4553a7..b20192a071cb 100644
> --- a/drivers/iio/dac/stm32-dac.c
> +++ b/drivers/iio/dac/stm32-dac.c
> @@ -372,7 +372,7 @@ static int stm32_dac_remove(struct platform_device *pdev)
>  	return 0;
>  }
>  
> -static int __maybe_unused stm32_dac_suspend(struct device *dev)
> +static int stm32_dac_suspend(struct device *dev)
>  {
>  	struct iio_dev *indio_dev = dev_get_drvdata(dev);
>  	int channel = indio_dev->channels[0].channel;
> @@ -386,9 +386,8 @@ static int __maybe_unused stm32_dac_suspend(struct device *dev)
>  	return pm_runtime_force_suspend(dev);
>  }
>  
> -static const struct dev_pm_ops stm32_dac_pm_ops = {
> -	SET_SYSTEM_SLEEP_PM_OPS(stm32_dac_suspend, pm_runtime_force_resume)
> -};
> +static DEFINE_SIMPLE_DEV_PM_OPS(stm32_dac_pm_ops, stm32_dac_suspend,
> +				pm_runtime_force_resume);
>  
>  static const struct of_device_id stm32_dac_of_match[] = {
>  	{ .compatible = "st,stm32-dac", },
> @@ -402,7 +401,7 @@ static struct platform_driver stm32_dac_driver = {
>  	.driver = {
>  		.name = "stm32-dac",
>  		.of_match_table = stm32_dac_of_match,
> -		.pm = &stm32_dac_pm_ops,
> +		.pm = pm_sleep_ptr(&stm32_dac_pm_ops),
>  	},
>  };
>  module_platform_driver(stm32_dac_driver);
> diff --git a/drivers/iio/trigger/stm32-timer-trigger.c b/drivers/iio/trigger/stm32-timer-trigger.c
> index 4f9461e1412c..d72ac4c0bca4 100644
> --- a/drivers/iio/trigger/stm32-timer-trigger.c
> +++ b/drivers/iio/trigger/stm32-timer-trigger.c
> @@ -827,7 +827,7 @@ static int stm32_timer_trigger_remove(struct platform_device *pdev)
>  	return 0;
>  }
>  
> -static int __maybe_unused stm32_timer_trigger_suspend(struct device *dev)
> +static int stm32_timer_trigger_suspend(struct device *dev)
>  {
>  	struct stm32_timer_trigger *priv = dev_get_drvdata(dev);
>  
> @@ -849,7 +849,7 @@ static int __maybe_unused stm32_timer_trigger_suspend(struct device *dev)
>  	return 0;
>  }
>  
> -static int __maybe_unused stm32_timer_trigger_resume(struct device *dev)
> +static int stm32_timer_trigger_resume(struct device *dev)
>  {
>  	struct stm32_timer_trigger *priv = dev_get_drvdata(dev);
>  	int ret;
> @@ -875,9 +875,9 @@ static int __maybe_unused stm32_timer_trigger_resume(struct device *dev)
>  	return 0;
>  }
>  
> -static SIMPLE_DEV_PM_OPS(stm32_timer_trigger_pm_ops,
> -			 stm32_timer_trigger_suspend,
> -			 stm32_timer_trigger_resume);
> +static DEFINE_SIMPLE_DEV_PM_OPS(stm32_timer_trigger_pm_ops,
> +				stm32_timer_trigger_suspend,
> +				stm32_timer_trigger_resume);
>  
>  static const struct stm32_timer_trigger_cfg stm32_timer_trg_cfg = {
>  	.valids_table = valids_table,
> @@ -907,7 +907,7 @@ static struct platform_driver stm32_timer_trigger_driver = {
>  	.driver = {
>  		.name = "stm32-timer-trigger",
>  		.of_match_table = stm32_trig_of_match,
> -		.pm = &stm32_timer_trigger_pm_ops,
> +		.pm = pm_sleep_ptr(&stm32_timer_trigger_pm_ops),
>  	},
>  };
>  module_platform_driver(stm32_timer_trigger_driver);
> 



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux