首先
if (ts->use_irq==0){
ret = gtp_request_irq(ts);
然后
ret = request_irq(ts->client->irq,
goodix_ts_irq_handler,
irq_table[ts->int_trigger_type],
ts->client->name,
ts);
然后找goodix_ts_irq_handler
static irqreturn_t goodix_ts_irq_handler(int irq, void *dev_id)
{
struct goodix_ts_data *ts = dev_id;
gtp_irq_disable(ts);
queue_work(goodix_wq, &ts->work);
return IRQ_HANDLED;
}
然后看这个work在probe里
INIT_WORK(&ts->work, goodix_ts_work_func);
这个goodix_ts_work_func就是中断处理函数