blob: e7c0623f90915b8929dd3a89923daaea9e38f099 [file] [log] [blame]
Bryan Wu1394f032007-05-06 14:50:22 -07001/*
Robin Getz96f10502009-09-24 14:11:24 +00002 * Copyright 2004-2009 Analog Devices Inc.
3 * 2003 HuTao
4 * 2002 Arcturus Networks Inc. (www.arcturusnetworks.com
5 * Ted Ma <mated@sympatico.ca>
Bryan Wu1394f032007-05-06 14:50:22 -07006 *
Robin Getz96f10502009-09-24 14:11:24 +00007 * Licensed under the GPL-2
Bryan Wu1394f032007-05-06 14:50:22 -07008 */
9
10#ifndef _BFIN_IRQ_H_
11#define _BFIN_IRQ_H_
12
Mike Frysinger8f860012009-06-08 12:49:48 -040013#include <linux/irqflags.h>
14
Mike Frysingerd586e832009-09-21 01:42:52 +000015#include <mach/anomaly.h>
16
Mike Frysinger8f860012009-06-08 12:49:48 -040017/* SYS_IRQS and NR_IRQS are defined in <mach-bf5xx/irq.h> */
Bryan Wu639f6572008-08-27 10:51:02 +080018#include <mach/irq.h>
Bryan Wu1394f032007-05-06 14:50:22 -070019
Yi Li6a01f232009-01-07 23:14:39 +080020#if ANOMALY_05000244 && defined(CONFIG_BFIN_ICACHE)
21# define NOP_PAD_ANOMALY_05000244 "nop; nop;"
22#else
23# define NOP_PAD_ANOMALY_05000244
24#endif
25
26#define idle_with_irq_disabled() \
27 __asm__ __volatile__( \
28 NOP_PAD_ANOMALY_05000244 \
29 ".align 8;" \
30 "sti %0;" \
31 "idle;" \
32 : \
33 : "d" (bfin_irq_flags) \
34 )
35
Mike Frysingerd5ce5282009-06-13 11:32:34 -040036#include <asm-generic/irq.h>
Yi Li6a01f232009-01-07 23:14:39 +080037
Bryan Wu1394f032007-05-06 14:50:22 -070038#endif /* _BFIN_IRQ_H_ */