[SPARC64]: Minor irq handling cleanups.
authorDavid S. Miller <davem@sunset.davemloft.net>
Tue, 12 Dec 2006 08:59:12 +0000 (00:59 -0800)
committerDavid S. Miller <davem@sunset.davemloft.net>
Sun, 17 Dec 2006 22:06:56 +0000 (14:06 -0800)
Use struct irq_chip instead of hw_interrupt_type.

Delete hw_resend_irq(), totally unused.

Signed-off-by: David S. Miller <davem@davemloft.net>
arch/sparc64/kernel/irq.c
include/asm-sparc64/hw_irq.h

index d64b1ea848de0adc1ec1f5967cb86dcb725e47bd..c3d068c7a4128c5ad7a94a8ad62936f425fe2569 100644 (file)
@@ -372,14 +372,14 @@ static void run_pre_handler(unsigned int virt_irq)
        }
 }
 
-static struct hw_interrupt_type sun4u_irq = {
+static struct irq_chip sun4u_irq = {
        .typename       = "sun4u",
        .enable         = sun4u_irq_enable,
        .disable        = sun4u_irq_disable,
        .end            = sun4u_irq_end,
 };
 
-static struct hw_interrupt_type sun4u_irq_ack = {
+static struct irq_chip sun4u_irq_ack = {
        .typename       = "sun4u+ack",
        .enable         = sun4u_irq_enable,
        .disable        = sun4u_irq_disable,
@@ -387,14 +387,14 @@ static struct hw_interrupt_type sun4u_irq_ack = {
        .end            = sun4u_irq_end,
 };
 
-static struct hw_interrupt_type sun4v_irq = {
+static struct irq_chip sun4v_irq = {
        .typename       = "sun4v",
        .enable         = sun4v_irq_enable,
        .disable        = sun4v_irq_disable,
        .end            = sun4v_irq_end,
 };
 
-static struct hw_interrupt_type sun4v_irq_ack = {
+static struct irq_chip sun4v_irq_ack = {
        .typename       = "sun4v+ack",
        .enable         = sun4v_irq_enable,
        .disable        = sun4v_irq_disable,
@@ -493,22 +493,6 @@ out:
        return bucket->virt_irq;
 }
 
-void hw_resend_irq(struct hw_interrupt_type *handler, unsigned int virt_irq)
-{
-       struct ino_bucket *bucket = virt_irq_to_bucket(virt_irq);
-       unsigned long pstate;
-       unsigned int *ent;
-
-       __asm__ __volatile__("rdpr %%pstate, %0" : "=r" (pstate));
-       __asm__ __volatile__("wrpr %0, %1, %%pstate"
-                            : : "r" (pstate), "i" (PSTATE_IE));
-       ent = irq_work(smp_processor_id());
-       bucket->irq_chain = *ent;
-       *ent = __irq(bucket);
-       set_softint(1 << PIL_DEVICE_IRQ);
-       __asm__ __volatile__("wrpr %0, 0x0, %%pstate" : : "r" (pstate));
-}
-
 void ack_bad_irq(unsigned int virt_irq)
 {
        struct ino_bucket *bucket = virt_irq_to_bucket(virt_irq);
index 599b3b0734502ee4864db257f0041a02845cdf5f..8e44a8360829ea5776677c8f87a8c065d6198059 100644 (file)
@@ -1,6 +1,4 @@
 #ifndef __ASM_SPARC64_HW_IRQ_H
 #define __ASM_SPARC64_HW_IRQ_H
 
-extern void hw_resend_irq(struct hw_interrupt_type *handler, unsigned int virt_irq);
-
 #endif