static struct work_struct cvbs_det_eint_work;
static struct workqueue_struct *cvbs_det_eint_workqueue=NULL;
static irqreturn_t cvbs_det_eint_func(void)
{
queue_work(cvbs_det_eint_workqueue,&cvbs_det_eint_work);
}
static int avin_irq_registration(void)
{
int ret;
//申请中断号,申请中断处理。
ret = request_irq(avin_irq, (irq_handler_t)cvbs_det_eint_func,IRQF_TRIGGER_NONE, AVIN_DEVICE, NULL);
}
static void cvbs_det_eint_work_callback(struct work_struct *work)
{
//处理相关问题
}
static int __init cvbs_init(void)
{
cvbs_det_eint_workqueue=create_singlethread_workqueue("cvbs_det_eint");
INIT_WORK(&cvbs_det_eint_work,cvbs_det_eint_work_callback);
avin_irq_registration();
}