static irqreturn_t tcpal_irq_handler(s32 _irq, void *_param) { struct tcbd_irq_data *irq_data = (struct tcbd_irq_data *)_param; struct tcbd_device *device = irq_data->device; disable_irq_nosync(irq_data->tcbd_irq); if (device->is_pal_irq_en) { irq_data->start_tick = tcpal_get_time(); queue_work(irq_data->work_queue, &irq_data->work); tcbd_debug(DEBUG_INTRRUPT, "\n"); } return IRQ_HANDLED; }
static irqreturn_t tcpal_irq_handler(s32 _irq, void *_param) { struct tcbd_irq_data *irq_data = (struct tcbd_irq_data *)_param; struct tcbd_device *device = irq_data->device; disable_irq_nosync(irq_data->tcbd_irq); if (device->is_pal_irq_en) { #if defined(__WORKQUEUE__) irq_data->start_tick = tcpal_get_time(); queue_work(irq_data->work_queue, &irq_data->work); #else /*__WORKQUEUE__*/ tcpal_split_stream(irq_data); #endif /*!__WORKQUEUE__*/ tcbd_debug(DEBUG_INTRRUPT, "\n"); } return IRQ_HANDLED; }