\r
if (irq_src & (REG_INT_DRX | FRM_EVT_RX_EOFRX | FRM_EVT_RX_RDE)) {\r
bu92747_irda_do_rx(s);\r
- tty_flip_buffer_push(s->port.state->port.tty);\r
+ if (!IS_FIR(s))\r
+ tty_flip_buffer_push(s->port.state->port.tty);\r
+\r
}\r
\r
if ((irq_src & REG_INT_EOF) && (s->port.state->port.tty != NULL)) {\r
INIT_WORK(&s->work, bu92747_irda_work);\r
\r
if (request_irq(s->irq, bu92747_irda_irq,\r
- IRQ_TYPE_EDGE_FALLING, "bu92747_irda", s) < 0) {\r
+ IRQ_TYPE_LEVEL_LOW, "bu92747_irda", s) < 0) {\r
dev_warn(s->dev, "cannot allocate irq %d\n", s->irq);\r
s->irq = 0;\r
destroy_workqueue(s->workqueue);\r