#include <linux/timex.h>
#include <linux/slab.h>
#include <linux/random.h>
-#include <linux/smp_lock.h>
#include <linux/init.h>
#include <linux/kernel_stat.h>
#include <linux/irq.h>
#include <linux/proc_fs.h>
#include <linux/seq_file.h>
#include <linux/module.h>
+#include <linux/bitops.h>
#include <asm/atomic.h>
#include <asm/io.h>
#include <asm/smp.h>
#include <asm/system.h>
-#include <asm/bitops.h>
#include <asm/uaccess.h>
#include <asm/pgalloc.h>
#include <asm/delay.h>
/*
* on-CPU PIC operations
*/
-static void frv_cpupic_enable(unsigned int irqlevel)
-{
- __clr_MASK(irqlevel);
-}
-
-static void frv_cpupic_disable(unsigned int irqlevel)
-{
- __set_MASK(irqlevel);
-}
-
static void frv_cpupic_ack(unsigned int irqlevel)
{
- __set_MASK(irqlevel);
__clr_RC(irqlevel);
__clr_IRL();
}
static struct irq_chip frv_cpu_pic = {
.name = "cpu",
- .enable = frv_cpupic_enable,
- .disable = frv_cpupic_disable,
.ack = frv_cpupic_ack,
.mask = frv_cpupic_mask,
.mask_ack = frv_cpupic_mask_ack,
};
/*
- * handles all normal device IRQ's
+ * handles all normal device IRQs
* - registers are referred to by the __frame variable (GR28)
* - IRQ distribution is complicated in this arch because of the many PICs, the
* way they work and the way they cascade
asmlinkage void do_IRQ(void)
{
irq_enter();
- __do_IRQ(__get_IRL(), __frame);
+ generic_handle_irq(__get_IRL());
irq_exit();
}