待机(STR)suspend device flow

待机(STR)suspend device flow

[17-04-12.162][ 234.769661] [<ffffff8008155698>] alarmtimer_suspend+0x1dc/0x1f4
[17-04-12.162][ 234.769667] [<ffffff8008635750>] platform_pm_suspend+0x38/0x6c
[17-04-12.162][ 234.769671] [<ffffff8008643224>] dpm_run_callback+0x5c/0x238
[17-04-12.162][ 234.769675] [<ffffff800864443c>] __device_suspend+0x164/0x478
[17-04-12.162][ 234.769678] [<ffffff8008644b5c>] dpm_suspend+0x134/0x3a0
[17-04-12.162][ 234.769682] [<ffffff80086453c4>] dpm_suspend_start+0x78/0x84
[17-04-12.163][ 234.769686] [<ffffff8008127ff0>] suspend_devices_and_enter+0x13c/0x3b8
[17-04-12.163][ 234.769690] [<ffffff8008128814>] pm_suspend+0x5a8/0x8a8
[17-04-12.163][ 234.769694] [<ffffff8008128e74>] try_to_suspend+0x14c/0x158
[17-04-12.163][ 234.769699] [<ffffff80080e6c74>] process_one_work+0x15c/0x430
[17-04-12.163][ 234.769703] [<ffffff80080e7090>] worker_thread+0x148/0x45c
[17-04-12.163][ 234.769707] [<ffffff80080ed898>] kthread+0xec/0x100
[17-04-12.164][ 234.769712] [<ffffff8008084910>] ret_from_fork+0x10/0x40

alarmtimer_suspend是dev_pm_ops结构体里的suspend:

/* Suspend hook structures */
static const struct dev_pm_ops alarmtimer_pm_ops = {
    .suspend = alarmtimer_suspend,
};

static struct platform_driver alarmtimer_driver = {
    .driver = {
        .name = "alarmtimer",
        .pm = &alarmtimer_pm_ops,
    }
};
原文地址:https://www.cnblogs.com/aspirs/p/13706869.html