iio:adc:stm32*: Use pm[_sleep]_ptr() etc to avoid need to make pm __maybe_unused

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@huawei.com>
Cc: Olivier Moysan <olivier.moysan@st.com>
Cc: Fabrice Gasnier <fabrice.gasnier@foss.st.com>
Reviewed-by: Fabrice Gasnier <fabrice.gasnier@foss.st.com>
Reviewed-by: Paul Cercueil <paul@crapouillou.net>
Link: https://lore.kernel.org/r/20220130193147.279148-51-jic23@kernel.org
This commit is contained in:
Jonathan Cameron 2022-01-30 19:31:47 +00:00
Родитель 33b0a376f9
Коммит ade59a7af2
5 изменённых файлов: 33 добавлений и 34 удалений

Просмотреть файл

@ -1632,7 +1632,7 @@ static int stm32_dfsdm_adc_remove(struct platform_device *pdev)
return 0; 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); 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; 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 iio_dev *indio_dev = dev_get_drvdata(dev);
struct stm32_dfsdm_adc *adc = iio_priv(indio_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; return 0;
} }
static SIMPLE_DEV_PM_OPS(stm32_dfsdm_adc_pm_ops, static DEFINE_SIMPLE_DEV_PM_OPS(stm32_dfsdm_adc_pm_ops,
stm32_dfsdm_adc_suspend, stm32_dfsdm_adc_resume); stm32_dfsdm_adc_suspend,
stm32_dfsdm_adc_resume);
static struct platform_driver stm32_dfsdm_adc_driver = { static struct platform_driver stm32_dfsdm_adc_driver = {
.driver = { .driver = {
.name = "stm32-dfsdm-adc", .name = "stm32-dfsdm-adc",
.of_match_table = stm32_dfsdm_adc_match, .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, .probe = stm32_dfsdm_adc_probe,
.remove = stm32_dfsdm_adc_remove, .remove = stm32_dfsdm_adc_remove,

Просмотреть файл

@ -381,7 +381,7 @@ static int stm32_dfsdm_core_remove(struct platform_device *pdev)
return 0; 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 stm32_dfsdm *dfsdm = dev_get_drvdata(dev);
struct dfsdm_priv *priv = to_stm32_dfsdm_priv(dfsdm); 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); 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 stm32_dfsdm *dfsdm = dev_get_drvdata(dev);
struct dfsdm_priv *priv = to_stm32_dfsdm_priv(dfsdm); 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); 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); 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; 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); 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 = { static const struct dev_pm_ops stm32_dfsdm_core_pm_ops = {
SET_SYSTEM_SLEEP_PM_OPS(stm32_dfsdm_core_suspend, SYSTEM_SLEEP_PM_OPS(stm32_dfsdm_core_suspend, stm32_dfsdm_core_resume)
stm32_dfsdm_core_resume) RUNTIME_PM_OPS(stm32_dfsdm_core_runtime_suspend,
SET_RUNTIME_PM_OPS(stm32_dfsdm_core_runtime_suspend, stm32_dfsdm_core_runtime_resume,
stm32_dfsdm_core_runtime_resume, NULL)
NULL)
}; };
static struct platform_driver stm32_dfsdm_driver = { static struct platform_driver stm32_dfsdm_driver = {
@ -444,7 +443,7 @@ static struct platform_driver stm32_dfsdm_driver = {
.driver = { .driver = {
.name = "stm32-dfsdm", .name = "stm32-dfsdm",
.of_match_table = stm32_dfsdm_of_match, .of_match_table = stm32_dfsdm_of_match,
.pm = &stm32_dfsdm_core_pm_ops, .pm = pm_ptr(&stm32_dfsdm_core_pm_ops),
}, },
}; };

Просмотреть файл

@ -195,7 +195,7 @@ static int stm32_dac_remove(struct platform_device *pdev)
return 0; 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_common *common = dev_get_drvdata(dev);
struct stm32_dac_priv *priv = to_stm32_dac_priv(common); 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); 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); stm32_dac_core_hw_stop(dev);
return 0; 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); return stm32_dac_core_hw_start(dev);
} }
static const struct dev_pm_ops stm32_dac_core_pm_ops = { static const struct dev_pm_ops stm32_dac_core_pm_ops = {
SET_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend, stm32_dac_core_resume) SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend, stm32_dac_core_resume)
SET_RUNTIME_PM_OPS(stm32_dac_core_runtime_suspend, RUNTIME_PM_OPS(stm32_dac_core_runtime_suspend,
stm32_dac_core_runtime_resume, stm32_dac_core_runtime_resume,
NULL) NULL)
}; };
static const struct stm32_dac_cfg stm32h7_dac_cfg = { static const struct stm32_dac_cfg stm32h7_dac_cfg = {
@ -253,7 +253,7 @@ static struct platform_driver stm32_dac_driver = {
.driver = { .driver = {
.name = "stm32-dac-core", .name = "stm32-dac-core",
.of_match_table = stm32_dac_of_match, .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); module_platform_driver(stm32_dac_driver);

Просмотреть файл

@ -372,7 +372,7 @@ static int stm32_dac_remove(struct platform_device *pdev)
return 0; 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); struct iio_dev *indio_dev = dev_get_drvdata(dev);
int channel = indio_dev->channels[0].channel; 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); return pm_runtime_force_suspend(dev);
} }
static const struct dev_pm_ops stm32_dac_pm_ops = { static DEFINE_SIMPLE_DEV_PM_OPS(stm32_dac_pm_ops, stm32_dac_suspend,
SET_SYSTEM_SLEEP_PM_OPS(stm32_dac_suspend, pm_runtime_force_resume) pm_runtime_force_resume);
};
static const struct of_device_id stm32_dac_of_match[] = { static const struct of_device_id stm32_dac_of_match[] = {
{ .compatible = "st,stm32-dac", }, { .compatible = "st,stm32-dac", },
@ -402,7 +401,7 @@ static struct platform_driver stm32_dac_driver = {
.driver = { .driver = {
.name = "stm32-dac", .name = "stm32-dac",
.of_match_table = stm32_dac_of_match, .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); module_platform_driver(stm32_dac_driver);

Просмотреть файл

@ -828,7 +828,7 @@ static int stm32_timer_trigger_remove(struct platform_device *pdev)
return 0; 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); struct stm32_timer_trigger *priv = dev_get_drvdata(dev);
@ -850,7 +850,7 @@ static int __maybe_unused stm32_timer_trigger_suspend(struct device *dev)
return 0; 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); struct stm32_timer_trigger *priv = dev_get_drvdata(dev);
int ret; int ret;
@ -876,9 +876,9 @@ static int __maybe_unused stm32_timer_trigger_resume(struct device *dev)
return 0; return 0;
} }
static SIMPLE_DEV_PM_OPS(stm32_timer_trigger_pm_ops, static DEFINE_SIMPLE_DEV_PM_OPS(stm32_timer_trigger_pm_ops,
stm32_timer_trigger_suspend, stm32_timer_trigger_suspend,
stm32_timer_trigger_resume); stm32_timer_trigger_resume);
static const struct stm32_timer_trigger_cfg stm32_timer_trg_cfg = { static const struct stm32_timer_trigger_cfg stm32_timer_trg_cfg = {
.valids_table = valids_table, .valids_table = valids_table,
@ -908,7 +908,7 @@ static struct platform_driver stm32_timer_trigger_driver = {
.driver = { .driver = {
.name = "stm32-timer-trigger", .name = "stm32-timer-trigger",
.of_match_table = stm32_trig_of_match, .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); module_platform_driver(stm32_timer_trigger_driver);