Hi Matthias: Thanks for your suggestion, I think device_links is a good way to make dependency of module's suspend/resume order. Hi Jonathan: Is it ok to keep using late_suspend and early_resume, or do you think it's better to use device_links? Thanks, Chun-Hung On Wed, 2019-05-22 at 18:28 +0200, Matthias Brugger wrote: > > On 20/05/2019 08:03, Chun-Hung Wu wrote: > > Hi Jonathan: > > > > Thanks for the prompt reply, > > > > On Sat, 2019-05-18 at 11:35 +0100, Jonathan Cameron wrote: > >> On Thu, 16 May 2019 16:10:46 +0800 > >> Chun-Hung Wu <chun-hung.wu@xxxxxxxxxxxx> wrote: > >> > >>> Move suspend/resume to late_suspend and > >>> early_resume to gurantee users can use auxadc > >> guarantee > >> > > will fix it in next version. > >>> driver at suspend/resume stage. > >> No problem with the patch content, but we need a reason why they may > >> want to do so? > > Our thermal drivers uses auxadc at suspend/resume stage. > > In order to avoid auxadc suspended prior to thermal driver, > > we move auxadc to late_suspend and early_resume. > > > > That sounds like a user of device_links [1] to me. > > [1] https://www.kernel.org/doc/html/latest/driver-api/device_link.html > > > Thanks, > > Chun-Hung > >> > >> Thanks, > >> > >> Jonathan > >>> > >>> Signed-off-by: Chun-Hung Wu <chun-hung.wu@xxxxxxxxxxxx> > >>> --- > >>> drivers/iio/adc/mt6577_auxadc.c | 7 ++++--- > >>> 1 file changed, 4 insertions(+), 3 deletions(-) > >>> > >>> diff --git a/drivers/iio/adc/mt6577_auxadc.c b/drivers/iio/adc/mt6577_auxadc.c > >>> index e1bdcc0..58d7cb2 100644 > >>> --- a/drivers/iio/adc/mt6577_auxadc.c > >>> +++ b/drivers/iio/adc/mt6577_auxadc.c > >>> @@ -326,9 +326,10 @@ static int mt6577_auxadc_remove(struct platform_device *pdev) > >>> return 0; > >>> } > >>> > >>> -static SIMPLE_DEV_PM_OPS(mt6577_auxadc_pm_ops, > >>> - mt6577_auxadc_suspend, > >>> - mt6577_auxadc_resume); > >>> +static const struct dev_pm_ops mt6577_auxadc_pm_ops = { > >>> + SET_LATE_SYSTEM_SLEEP_PM_OPS(mt6577_auxadc_suspend, > >>> + mt6577_auxadc_resume) > >>> +}; > >>> > >>> static const struct of_device_id mt6577_auxadc_of_match[] = { > >>> { .compatible = "mediatek,mt2701-auxadc", .data = &mt8173_compat}, > >> > > > >