From: u.kleine-koenig@pengutronix.de (Uwe Kleine-König)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 11/13] ARM: LPC32XX: printascii() output and irq support functions
Date: Wed, 3 Feb 2010 17:50:25 +0100 [thread overview]
Message-ID: <20100203165025.GM11354@pengutronix.de> (raw)
In-Reply-To: <1264643011-17390-12-git-send-email-wellsk40@gmail.com>
Hi Kevin,
> + .macro disable_fiq
> + .endm
> +
> + .macro get_irqnr_preamble, base, tmp
> + .endm
> +
> + .macro arch_ret_to_user, tmp1, tmp2
> + .endm
> +
> +/*
> + * Return IRQ number in irqnr. Also return processor Z flag status in CPSR
> + * as set if an interrupt is pending.
> + */
> + .macro get_irqnr_and_base, irqnr, irqstat, base, tmp
> + /* Get MIC status first */
> + ldr \base, =IO_ADDRESS(MIC_BASE)
> + ldr \irqstat, [\base, #INTC_STAT]
> + and \irqstat, \irqstat, #0xFFFFFFFC
> + mov \tmp, #0
> +
> + /* Drop through to SIC1 or SIC2 if MIC is not pending */
> + cmp \irqstat, #0
> + bne 1000f
> +
> + /* SIC1 interrupts start at offset 32 */
> + ldr \base, =IO_ADDRESS(SIC1_BASE)
> + ldr \irqstat, [\base, #INTC_STAT]
> + mov \tmp, #32
> +
> + /* Drop through to SIC2 if SIC1 is not pending */
> + cmp \irqstat, #0
> + bne 1000f
> +
> + /* SIC2 interrupts start at offset 64 */
> + ldr \base, =IO_ADDRESS(SIC2_BASE)
> + ldr \irqstat, [\base, #INTC_STAT]
> + mov \tmp, #64
> +
> + /* Safety check only, exit if no status on MIC, SIC1, SIC2 */
> + cmp \irqstat, #0
> + beq 1001f
> +
> +1000:
> + /* Returns an pending interrupt between 0 and 95 */
> + clz \irqnr, \irqstat
> + rsb \irqnr, \irqnr, #31
> + add \irqnr, \irqnr, \tmp
> +
> +1001:
> + teq \irqstat, #0
> + .endm
> +
> + .macro irq_prio_table
> + .endm
You could make this easier by only handling MIC(?) interrupts and make
SIC1 and SIC2 use a chained handler. Then you can use
get_irqnr_preamble for microoptimisation.
Best regards
Uwe
--
Pengutronix e.K. | Uwe Kleine-K?nig |
Industrial Linux Solutions | http://www.pengutronix.de/ |
next prev parent reply other threads:[~2010-02-03 16:50 UTC|newest]
Thread overview: 61+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-01-28 1:43 LPC32XX architecture files (updated) wellsk40 at gmail.com
2010-01-28 1:43 ` [PATCH 01/13] i2c_pnx: Added Kconfig support for the LCP32XX wellsk40 at gmail.com
2010-01-28 1:43 ` [PATCH 02/13] pnx4008_wdt: Added Kconfig support for the LPC32XX wellsk40 at gmail.com
2010-01-28 1:43 ` [PATCH 03/13] amba clcd: Swapped CTRL/IENB registers for LCP32XX wellsk40 at gmail.com
2010-01-28 1:43 ` [PATCH 04/13] ARM: LPC32XX arch support in Kconfig and Makefile wellsk40 at gmail.com
2010-02-03 10:31 ` Uwe Kleine-König
2010-01-28 1:43 ` [PATCH 05/13] ARM: LPC32XX: arch Kconfig, plat Kconfig, and makefiles wellsk40 at gmail.com
2010-02-03 10:51 ` Uwe Kleine-König
2010-02-03 11:26 ` Russell King - ARM Linux
2010-02-03 13:57 ` Uwe Kleine-König
2010-02-03 15:02 ` Russell King - ARM Linux
2010-02-03 18:01 ` Kevin Wells
2010-02-03 18:56 ` Uwe Kleine-König
2010-01-28 1:43 ` [PATCH 06/13] ARM: LPC32XX: Core architecture files wellsk40 at gmail.com
2010-01-28 17:58 ` H Hartley Sweeten
2010-01-28 19:54 ` Kevin Wells
2010-02-03 10:54 ` Uwe Kleine-König
2010-02-03 18:05 ` Kevin Wells
2010-02-03 15:55 ` Uwe Kleine-König
2010-02-03 18:43 ` Kevin Wells
2010-02-03 20:40 ` Uwe Kleine-König
2010-02-03 21:58 ` Kevin Wells
2010-02-04 8:17 ` Uwe Kleine-König
2010-02-08 9:09 ` [PATCH 1/3] gpiolib: make names array and its values const Uwe Kleine-König
2010-02-08 9:37 ` Baruch Siach
2010-02-08 9:43 ` Uwe Kleine-König
2010-02-24 10:35 ` Uwe Kleine-König
2010-03-22 20:47 ` Uwe Kleine-König
2010-02-08 9:09 ` [PATCH 2/3] gpiolib: a gpio is unsigned, so use %u to print it Uwe Kleine-König
2010-02-08 9:09 ` [PATCH 3/3] gpiolib: document that names can contain printk format specifiers Uwe Kleine-König
2010-02-08 9:16 ` Uwe Kleine-König
2010-01-28 1:43 ` [PATCH 07/13] ARM: LPC32XX: common architecture functions and structures wellsk40 at gmail.com
2010-02-03 16:01 ` Uwe Kleine-König
2010-01-28 1:43 ` [PATCH 08/13] ARM: LPC32XX: clock tree support wellsk40 at gmail.com
2010-01-28 17:07 ` Rabin Vincent
2010-01-28 19:51 ` Kevin Wells
2010-02-03 16:32 ` Uwe Kleine-König
2010-02-03 18:51 ` Kevin Wells
2010-02-03 20:20 ` Uwe Kleine-König
2010-02-05 16:48 ` Kevin Wells
2010-02-05 19:45 ` Russell King - ARM Linux
2010-01-28 1:43 ` [PATCH 09/13] ARM: LPC32XX: power and event management wellsk40 at gmail.com
2010-02-03 16:44 ` Uwe Kleine-König
2010-02-03 19:03 ` Kevin Wells
2010-01-28 1:43 ` [PATCH 10/13] ARM: LPC32XX: Phytec PHY3250 platform support file wellsk40 at gmail.com
2010-02-03 16:46 ` Uwe Kleine-König
2010-01-28 1:43 ` [PATCH 11/13] ARM: LPC32XX: printascii() output and irq support functions wellsk40 at gmail.com
2010-02-03 16:50 ` Uwe Kleine-König [this message]
2010-02-03 18:57 ` Kevin Wells
2010-02-03 20:49 ` Uwe Kleine-König
2010-01-28 1:43 ` [PATCH 12/13] ARM: LPC32XX: architecture header files wellsk40 at gmail.com
2010-02-03 17:07 ` Uwe Kleine-König
2010-02-03 19:20 ` Kevin Wells
2010-02-03 20:44 ` Uwe Kleine-König
2010-02-03 21:34 ` Russell King - ARM Linux
2010-02-03 22:06 ` Kevin Wells
2010-01-28 1:43 ` [PATCH 13/13] ARM: LPC32XX: Phytec PHY3250 default kernel config (ramdisk) wellsk40 at gmail.com
2010-01-28 11:16 ` LPC32XX architecture files (updated) Luotao Fu
2010-01-28 19:50 ` Kevin Wells
2010-01-28 19:06 ` Wolfram Sang
2010-01-28 19:58 ` Kevin Wells
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20100203165025.GM11354@pengutronix.de \
--to=u.kleine-koenig@pengutronix.de \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).