I am trying to apply the kernel(5.10) hibernation to my board which I apply a watchdog that will reboot in about 1.25s if not being feed.
Hibernation code disables local interrupts in the end of the resume as below, during the suspension of system:
static int resume_target_kernel(bool platform_mode)
{
....
local_irq_disable();
system_state = SYSTEM_SUSPEND;
....
if (!error) {
error = swsusp_arch_resume();
}
....
Enable_irqs:
local_irq_enable();
}
Disable the interrupt means that our watchdog timer cannot feed the dog and will reboot the system in 1.25s. The thing is that this part of process takes too long to finish and our system reboot before finishing it. My current approach is to feed the dog in this process manually.
My question is: Is there any hook method provided that can feed the dog during the resume? Or is this suspension of system on my board takes too long to finish? Because I am not sure that disabling the interrupt for more than 1 second is expected?