Path: blob/master/arch/arm/mach-ep93xx/include/mach/entry-macro.S
15157 views
/*1* arch/arm/mach-ep93xx/include/mach/entry-macro.S2* IRQ demultiplexing for EP93xx3*4* Copyright (C) 2006 Lennert Buytenhek <[email protected]>5*6* This program is free software; you can redistribute it and/or modify7* it under the terms of the GNU General Public License as published by8* the Free Software Foundation; either version 2 of the License, or (at9* your option) any later version.10*/11#include <mach/ep93xx-regs.h>1213.macro disable_fiq14.endm1516.macro get_irqnr_preamble, base, tmp17.endm1819.macro arch_ret_to_user, tmp1, tmp220.endm2122.macro get_irqnr_and_base, irqnr, irqstat, base, tmp23ldr \base, =(EP93XX_AHB_VIRT_BASE)24orr \base, \base, #0x000b000025mov \irqnr, #026ldr \irqstat, [\base] @ lower 32 interrupts27cmp \irqstat, #028bne 1001f2930eor \base, \base, #0x0007000031ldr \irqstat, [\base] @ upper 32 interrupts32cmp \irqstat, #033beq 1002f34mov \irqnr, #0x2035361001:37movs \tmp, \irqstat, lsl #1638movne \irqstat, \tmp39addeq \irqnr, \irqnr, #164041movs \tmp, \irqstat, lsl #842movne \irqstat, \tmp43addeq \irqnr, \irqnr, #84445movs \tmp, \irqstat, lsl #446movne \irqstat, \tmp47addeq \irqnr, \irqnr, #44849movs \tmp, \irqstat, lsl #250movne \irqstat, \tmp51addeq \irqnr, \irqnr, #25253movs \tmp, \irqstat, lsl #154addeq \irqnr, \irqnr, #155orrs \base, \base, #156571002:58.endm596061