newton:modify bu92747 irda_irq type for fir EOF
authorlyx <lyx@rock-chips.com>
Mon, 25 Jul 2011 07:33:35 +0000 (00:33 -0700)
committerlyx <lyx@rock-chips.com>
Mon, 25 Jul 2011 07:37:07 +0000 (00:37 -0700)
drivers/net/irda/ir_serial.c

index 76dfdf688e520bf4577a121febbb96a4e875542e..676340e5fd030583101b116b1de991ab98dfd91c 100755 (executable)
@@ -189,7 +189,9 @@ static irqreturn_t bu92747_irda_irq(int irqno, void *dev_id)
        \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
@@ -366,7 +368,7 @@ static int bu92747_irda_startup(struct uart_port *port)
        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