static irqreturn_t lis302dl_interrupt_thread2_8b(int irq, void *data) { struct lis3lv02d *lis3 = data; if ((lis3->pdata->irq_cfg & LIS3_IRQ2_MASK) == LIS3_IRQ2_CLICK) lis302dl_interrupt_handle_click(lis3); else lis302dl_interrupt_handle_ff_wu(lis3); return IRQ_HANDLED; }
static irqreturn_t lis302dl_interrupt_thread2_8b(int irq, void *data) { struct lis3lv02d *lis3 = data; u8 irq_cfg = lis3->irq_cfg & LIS3_IRQ2_MASK; if (irq_cfg == LIS3_IRQ2_CLICK) lis302dl_interrupt_handle_click(lis3); else if (unlikely(irq_cfg == LIS3_IRQ2_DATA_READY)) lis302dl_data_ready(lis3, IRQ_LINE1); else lis3lv02d_joystick_poll(lis3->idev); return IRQ_HANDLED; }