diff --git a/drivers/parisc/superio.c b/drivers/parisc/superio.c
index aceec6ed5116365270e9e2906ec4e6b08a150dbd..0846dafdfff10a2f1536fad7393459c4a08b6af0 100644
--- a/drivers/parisc/superio.c
+++ b/drivers/parisc/superio.c
@@ -286,7 +286,7 @@ superio_init(struct pci_dev *pcidev)
 }
 DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_NS, PCI_DEVICE_ID_NS_87560_LIO, superio_init);
 
-static void superio_disable_irq(unsigned int irq)
+static void superio_mask_irq(unsigned int irq)
 {
 	u8 r8;
 
@@ -303,7 +303,7 @@ static void superio_disable_irq(unsigned int irq)
 	outb (r8,IC_PIC1+1);
 }
 
-static void superio_enable_irq(unsigned int irq)
+static void superio_unmask_irq(unsigned int irq)
 {
 	u8 r8;
 
@@ -319,20 +319,11 @@ static void superio_enable_irq(unsigned int irq)
 	outb (r8,IC_PIC1+1);
 }
 
-static unsigned int superio_startup_irq(unsigned int irq)
-{
-	superio_enable_irq(irq);
-	return 0;
-}
-
 static struct irq_chip superio_interrupt_type = {
-	.name	 =	SUPERIO,
-	.startup =	superio_startup_irq,
-	.shutdown =	superio_disable_irq,
-	.enable =	superio_enable_irq,
-	.disable =	superio_disable_irq,
+	.name	=	SUPERIO,
+	.unmask	=	superio_unmask_irq,
+	.mask	=	superio_mask_irq,
 	.ack =		no_ack_irq,
-	.end =		no_end_irq,
 };
 
 #ifdef DEBUG_SUPERIO_INIT
@@ -363,7 +354,7 @@ int superio_fixup_irq(struct pci_dev *pcidev)
 #endif
 
 	for (i = 0; i < 16; i++) {
-		set_irq_chip_and_handler(i, &superio_interrupt_type, parisc_do_IRQ);
+		set_irq_chip_and_handler(i, &superio_interrupt_type, handle_level_irq);
 	}
 
 	/*