- 论坛徽章:
- 0
|
/*
* Interrupt handler
*/
static irqreturn_t atmel_interrupt(int irq, void *dev_id)
{
struct uart_port *port = dev_id;
unsigned int status, pending, pass_counter = 0;
do {
status = UART_GET_CSR(port);
pending = status & UART_GET_IMR(port);
if (!pending)
break;
atmel_handle_receive(port, pending);
atmel_handle_status(port, pending, status);
atmel_handle_transmit(port, pending);
} while (pass_counter++ < ATMEL_ISR_PASS_LIMIT); //256
return pass_counter ? IRQ_HANDLED : IRQ_NONE;
}
请问循环 ATMEL_ISR_PASS_LIMIT次是干什么用的?我理解的话串口中断处理一次不就行了吗?谢谢! |
|