Delayed work queue:
static struct delayed_work lcm_suspend_work
Initialize a work
INIT_DELAYED_WORK(&lcm_suspend_work, lcm_suspend_work_func);
Handler
static void lcm_suspend_work_func(struct work_struct *work){
lcm_backlight_control(false);
pre_state_screen_on = 0;
}
Mission start, as will be scheduled for execution in the second lcm_wakeup_time
schedule_delayed_work(&lcm_suspend_work, lcm_wakeup_time*HZ);
Cancel the task execution
cancel_delayed_work(&lcm_suspend_work);