Merge branch 'intx' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/misc-2.6
[pandora-kernel.git] / drivers / pcmcia / pd6729.c
index 247ab83..360c248 100644 (file)
@@ -182,7 +182,7 @@ static void indirect_write16(struct pd6729_socket *socket, unsigned short reg,
 
 /* Interrupt handler functionality */
 
-static irqreturn_t pd6729_interrupt(int irq, void *dev, struct pt_regs *regs)
+static irqreturn_t pd6729_interrupt(int irq, void *dev)
 {
        struct pd6729_socket *socket = (struct pd6729_socket *)dev;
        int i;
@@ -249,7 +249,7 @@ static void pd6729_interrupt_wrapper(unsigned long data)
 {
        struct pd6729_socket *socket = (struct pd6729_socket *) data;
 
-       pd6729_interrupt(0, (void *)socket, NULL);
+       pd6729_interrupt(0, (void *)socket);
        mod_timer(&socket->poll_timer, jiffies + HZ);
 }
 
@@ -575,16 +575,16 @@ static struct pccard_operations pd6729_operations = {
        .set_mem_map            = pd6729_set_mem_map,
 };
 
-static irqreturn_t pd6729_test(int irq, void *dev, struct pt_regs *regs)
+static irqreturn_t pd6729_test(int irq, void *dev)
 {
        dprintk("-> hit on irq %d\n", irq);
        return IRQ_HANDLED;
 }
 
-static int pd6729_check_irq(int irq, int flags)
+static int pd6729_check_irq(int irq)
 {
-       if (request_irq(irq, pd6729_test, flags, "x", pd6729_test) != 0)
-               return -1;
+       if (request_irq(irq, pd6729_test, IRQF_PROBE_SHARED, "x", pd6729_test)
+               != 0) return -1;
        free_irq(irq, pd6729_test);
        return 0;
 }
@@ -610,7 +610,7 @@ static u_int __devinit pd6729_isa_scan(void)
 
        /* just find interrupts that aren't in use */
        for (i = 0; i < 16; i++)
-               if ((mask0 & (1 << i)) && (pd6729_check_irq(i, 0) == 0))
+               if ((mask0 & (1 << i)) && (pd6729_check_irq(i) == 0))
                        mask |= (1 << i);
 
        printk(KERN_INFO "pd6729: ISA irqs = ");
@@ -642,7 +642,8 @@ static int __devinit pd6729_pci_probe(struct pci_dev *dev,
                goto err_out_free_mem;
 
        printk(KERN_INFO "pd6729: Cirrus PD6729 PCI to PCMCIA Bridge "
-               "at 0x%lx on irq %d\n", pci_resource_start(dev, 0), dev->irq);
+               "at 0x%llx on irq %d\n",
+               (unsigned long long)pci_resource_start(dev, 0), dev->irq);
        /*
         * Since we have no memory BARs some firmware may not
         * have had PCI_COMMAND_MEMORY enabled, yet the device needs it.
@@ -688,7 +689,7 @@ static int __devinit pd6729_pci_probe(struct pci_dev *dev,
        pci_set_drvdata(dev, socket);
        if (irq_mode == 1) {
                /* Register the interrupt handler */
-               if ((ret = request_irq(dev->irq, pd6729_interrupt, SA_SHIRQ,
+               if ((ret = request_irq(dev->irq, pd6729_interrupt, IRQF_SHARED,
                                                        "pd6729", socket))) {
                        printk(KERN_ERR "pd6729: Failed to register irq %d, "
                                                        "aborting\n", dev->irq);
@@ -754,6 +755,7 @@ static void __devexit pd6729_pci_remove(struct pci_dev *dev)
        kfree(socket);
 }
 
+#ifdef CONFIG_PM
 static int pd6729_socket_suspend(struct pci_dev *dev, pm_message_t state)
 {
        return pcmcia_socket_dev_suspend(&dev->dev, state);
@@ -763,6 +765,7 @@ static int pd6729_socket_resume(struct pci_dev *dev)
 {
        return pcmcia_socket_dev_resume(&dev->dev);
 }
+#endif
 
 static struct pci_device_id pd6729_pci_ids[] = {
        {
@@ -780,8 +783,10 @@ static struct pci_driver pd6729_pci_drv = {
        .id_table       = pd6729_pci_ids,
        .probe          = pd6729_pci_probe,
        .remove         = __devexit_p(pd6729_pci_remove),
+#ifdef CONFIG_PM
        .suspend        = pd6729_socket_suspend,
        .resume         = pd6729_socket_resume,
+#endif
 };
 
 static int pd6729_module_init(void)