From cc5b0439a8f05afbb48a868e97ca9f196f5a8404 Mon Sep 17 00:00:00 2001 From: Solomon Peachy Date: Sat, 29 Aug 2020 23:38:56 -0400 Subject: jz4760: Prioritize Audio DMA and TCU0 (systick) above all others (And loop in the IRQ handler to make sure we catch everything!) Change-Id: I813272c69e981fdc214ec28448ced403ad366ea0 --- .../target/mips/ingenic_jz47xx/system-jz4760.c | 44 +++++++--------------- .../target/mips/ingenic_jz47xx/system-target.h | 16 ++++---- 2 files changed, 21 insertions(+), 39 deletions(-) (limited to 'firmware') diff --git a/firmware/target/mips/ingenic_jz47xx/system-jz4760.c b/firmware/target/mips/ingenic_jz47xx/system-jz4760.c index 01d6d8d93e..4489212ccc 100644 --- a/firmware/target/mips/ingenic_jz47xx/system-jz4760.c +++ b/firmware/target/mips/ingenic_jz47xx/system-jz4760.c @@ -244,41 +244,20 @@ static int get_irq_number(void) if (UNLIKELY(irq0 < 0) && UNLIKELY(irq1 < 0)) return -1; -#if 1 - // Prioritze AIC and SADC, then everything on ipl1 (ie MSC mostly) - if (ipl1 & 1<<(IRQ_AIC-32)) { - irq = IRQ_AIC; - ipl1 &= ~(1<<(IRQ_AIC-32)); - } else if (ipl0 & 1<= 0)) irqvector[irq](); + goto top; } #define EXC(x,y) case (x): return (y); diff --git a/firmware/target/mips/ingenic_jz47xx/system-target.h b/firmware/target/mips/ingenic_jz47xx/system-target.h index b6e779ea53..dd42fac633 100644 --- a/firmware/target/mips/ingenic_jz47xx/system-target.h +++ b/firmware/target/mips/ingenic_jz47xx/system-target.h @@ -95,15 +95,15 @@ void dma_disable(void); #define DMA_LCD_CHANNEL 3 #elif CONFIG_CPU == JZ4760B #define DMA_AIC_TX_CHANNEL 0 -#define DMA_NAND_CHANNEL 1 -#define DMA_USB_CHANNEL 2 -#define DMA_SD_RX_CHANNEL0 3 -#define DMA_SD_RX_CHANNEL1 4 +#define DMA_USB_CHANNEL 1 // Note: channel 5 and 11 cannot be used! -#define DMA_SD_TX_CHANNEL0 6 -#define DMA_SD_TX_CHANNEL1 7 -#define DMA_SD_RX_CHANNEL(n) 3+n -#define DMA_SD_TX_CHANNEL(n) 6+n +#define DMA_SD_RX_CHANNEL0 6 +#define DMA_SD_RX_CHANNEL1 7 +#define DMA_SD_TX_CHANNEL0 8 +#define DMA_SD_TX_CHANNEL1 9 +#define DMA_NAND_CHANNEL 10 +#define DMA_SD_RX_CHANNEL(n) 6+n +#define DMA_SD_TX_CHANNEL(n) 8+n #endif #define XDMA_CALLBACK(n) DMA ## n -- cgit v1.2.3