uart: use proper interrupt decoding

This commit is contained in:
CTCaer
2021-03-17 08:51:49 +02:00
parent e8cf85bd65
commit 513f77a2ad
3 changed files with 18 additions and 2 deletions

View File

@@ -122,7 +122,12 @@ u32 uart_get_IIR(u32 idx)
{
uart_t *uart = (uart_t *)(UART_BASE + uart_baseoff[idx]);
return uart->UART_IIR_FCR;
u32 iir = uart->UART_IIR_FCR & UART_IIR_INT_MASK;
if (iir & UART_IIR_NO_INT)
return 0;
else
return ((iir >> 1) + 1); // Return encoded interrupt.
}
void uart_set_IIR(u32 idx)