1,定义工作结构体变量bat_work
static struct work_struct bat_work;
2,编写一个实现某功能的工作处理函数
static void wm97xx_bat_work(struct work_struct *work)
{
wm97xx_bat_update(&bat_ps);
}
3,初始化工作队列,
INIT_WORK(&bat_work, wm97xx_bat_work);
初始化指定工作,目的是把用户指定的函数wm97xx_bat_work赋给work_struct的func变量。
4,对工作进行调度,
schedule_work(&bat_work);
添加入队列的工作完成后会自动从队列中删除
5,cancel_work_sync(&bat_work);
取消一个已提交给工作队列入口项
6, flush_work_sync(&bat_work);
等待任务完成