From 456b26c1b7ac83ba952b5d630043f28e38e342c6 Mon Sep 17 00:00:00 2001 From: Sven Peter Date: Wed, 15 Apr 2009 01:43:52 +0200 Subject: [PATCH] decrease the irq stack usage a bit --- irq.c | 8 ++++---- sdhc.c | 6 +++++- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/irq.c b/irq.c index 1849039..75781fa 100644 --- a/irq.c +++ b/irq.c @@ -79,17 +79,17 @@ void irq_handler(void) nand_irq(); } if(flags & IRQF_GPIO1B) { - gecko_printf("IRQ: GPIO1B\n"); +// gecko_printf("IRQ: GPIO1B\n"); write32(HW_GPIO1BINTFLAG, 0xFFFFFF); // shut it up write32(HW_ARMIRQFLAG, IRQF_GPIO1B); } if(flags & IRQF_GPIO1) { - gecko_printf("IRQ: GPIO1\n"); +// gecko_printf("IRQ: GPIO1\n"); write32(HW_GPIO1INTFLAG, 0xFFFFFF); // shut it up write32(HW_ARMIRQFLAG, IRQF_GPIO1); } if(flags & IRQF_RESET) { - gecko_printf("IRQ: RESET\n"); +// gecko_printf("IRQ: RESET\n"); write32(HW_ARMIRQFLAG, IRQF_RESET); } if(flags & IRQF_IPC) { @@ -98,7 +98,7 @@ void irq_handler(void) write32(HW_ARMIRQFLAG, IRQF_IPC); } if(flags & IRQF_AES) { - gecko_printf("IRQ: AES\n"); +// gecko_printf("IRQ: AES\n"); write32(HW_ARMIRQFLAG, IRQF_AES); } if (flags & IRQF_SDHC) { diff --git a/sdhc.c b/sdhc.c index ba1cbb9..327c80c 100644 --- a/sdhc.c +++ b/sdhc.c @@ -1057,7 +1057,11 @@ sdhc_intr(void *arg) * Wake up the sdmmc event thread to scan for cards. */ if (ISSET(status, SDHC_CARD_REMOVAL|SDHC_CARD_INSERTION)) { - ipc_request req; + // this pushed a request to the slow queue so that we + // don't block other IRQs. + // this is also static because we are in IRQ context + // here and want to save stack space + static ipc_request req; memset(&req, 0, sizeof(req)); req.device = IPC_DEV_SDHC; req.req = IPC_SDHC_DISCOVER;