fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / drivers / isdn / hisax / telespci.c
index 7713c46..d09f6d0 100644 (file)
@@ -13,7 +13,6 @@
  */
 
 #include <linux/init.h>
-#include <linux/config.h>
 #include "hisax.h"
 #include "isac.h"
 #include "hscx.h"
@@ -21,7 +20,7 @@
 #include <linux/pci.h>
 
 extern const char *CardType[];
-const char *telespci_revision = "$Revision: 2.23.2.3 $";
+static const char *telespci_revision = "$Revision: 2.23.2.3 $";
 
 #define ZORAN_PO_RQ_PEN        0x02000000
 #define ZORAN_PO_WR    0x00800000
@@ -43,7 +42,7 @@ const char *telespci_revision = "$Revision: 2.23.2.3 $";
                                } while (portdata & ZORAN_PO_RQ_PEN)
 
 static inline u_char
-readisac(unsigned long adr, u_char off)
+readisac(void __iomem *adr, u_char off)
 {
        register unsigned int portdata;
 
@@ -60,7 +59,7 @@ readisac(unsigned long adr, u_char off)
 }
 
 static inline void
-writeisac(unsigned long adr, u_char off, u_char data)
+writeisac(void __iomem *adr, u_char off, u_char data)
 {
        register unsigned int portdata;
 
@@ -76,7 +75,7 @@ writeisac(unsigned long adr, u_char off, u_char data)
 }
 
 static inline u_char
-readhscx(unsigned long adr, int hscx, u_char off)
+readhscx(void __iomem *adr, int hscx, u_char off)
 {
        register unsigned int portdata;
 
@@ -92,7 +91,7 @@ readhscx(unsigned long adr, int hscx, u_char off)
 }
 
 static inline void
-writehscx(unsigned long adr, int hscx, u_char off, u_char data)
+writehscx(void __iomem *adr, int hscx, u_char off, u_char data)
 {
        register unsigned int portdata;
 
@@ -107,7 +106,7 @@ writehscx(unsigned long adr, int hscx, u_char off, u_char data)
 }
 
 static inline void
-read_fifo_isac(unsigned long adr, u_char * data, int size)
+read_fifo_isac(void __iomem *adr, u_char * data, int size)
 {
        register unsigned int portdata;
        register int i;
@@ -125,7 +124,7 @@ read_fifo_isac(unsigned long adr, u_char * data, int size)
 }
 
 static void
-write_fifo_isac(unsigned long adr, u_char * data, int size)
+write_fifo_isac(void __iomem *adr, u_char * data, int size)
 {
        register unsigned int portdata;
        register int i;
@@ -142,7 +141,7 @@ write_fifo_isac(unsigned long adr, u_char * data, int size)
 }
 
 static inline void
-read_fifo_hscx(unsigned long adr, int hscx, u_char * data, int size)
+read_fifo_hscx(void __iomem *adr, int hscx, u_char * data, int size)
 {
        register unsigned int portdata;
        register int i;
@@ -160,7 +159,7 @@ read_fifo_hscx(unsigned long adr, int hscx, u_char * data, int size)
 }
 
 static inline void
-write_fifo_hscx(unsigned long adr, int hscx, u_char * data, int size)
+write_fifo_hscx(void __iomem *adr, int hscx, u_char * data, int size)
 {
        unsigned int portdata;
        register int i;
@@ -227,7 +226,7 @@ WriteHSCX(struct IsdnCardState *cs, int hscx, u_char offset, u_char value)
 #include "hscx_irq.c"
 
 static irqreturn_t
-telespci_interrupt(int intno, void *dev_id, struct pt_regs *regs)
+telespci_interrupt(int intno, void *dev_id)
 {
        struct IsdnCardState *cs = dev_id;
        u_char hval, ival;
@@ -257,10 +256,10 @@ telespci_interrupt(int intno, void *dev_id, struct pt_regs *regs)
        return IRQ_HANDLED;
 }
 
-void
+static void
 release_io_telespci(struct IsdnCardState *cs)
 {
-       iounmap((void *)cs->hw.teles0.membase);
+       iounmap(cs->hw.teles0.membase);
 }
 
 static int
@@ -285,9 +284,9 @@ TelesPCI_card_msg(struct IsdnCardState *cs, int mt, void *arg)
        return(0);
 }
 
-static struct pci_dev *dev_tel __initdata = NULL;
+static struct pci_dev *dev_tel __devinitdata = NULL;
 
-int __init
+int __devinit
 setup_telespci(struct IsdnCard *card)
 {
        struct IsdnCardState *cs = card->cs;
@@ -309,10 +308,11 @@ setup_telespci(struct IsdnCard *card)
                        printk(KERN_WARNING "Teles: No IRQ for PCI card found\n");
                        return(0);
                }
-               cs->hw.teles0.membase = (u_long) ioremap(pci_resource_start(dev_tel, 0),
+               cs->hw.teles0.membase = ioremap(pci_resource_start(dev_tel, 0),
                        PAGE_SIZE);
-               printk(KERN_INFO "Found: Zoran, base-address: 0x%lx, irq: 0x%x\n",
-                       pci_resource_start(dev_tel, 0), dev_tel->irq);
+               printk(KERN_INFO "Found: Zoran, base-address: 0x%llx, irq: 0x%x\n",
+                       (unsigned long long)pci_resource_start(dev_tel, 0),
+                       dev_tel->irq);
        } else {
                printk(KERN_WARNING "TelesPCI: No PCI card found\n");
                return(0);
@@ -333,7 +333,7 @@ setup_telespci(struct IsdnCard *card)
        /* writel(0x00800000, cs->hw.teles0.membase + 0x200); */
 
        printk(KERN_INFO
-              "HiSax: %s config irq:%d mem:%lx\n",
+              "HiSax: %s config irq:%d mem:%p\n",
               CardType[cs->typ], cs->irq,
               cs->hw.teles0.membase);
 
@@ -347,7 +347,7 @@ setup_telespci(struct IsdnCard *card)
        cs->BC_Send_Data = &hscx_fill_fifo;
        cs->cardmsg = &TelesPCI_card_msg;
        cs->irq_func = &telespci_interrupt;
-       cs->irq_flags |= SA_SHIRQ;
+       cs->irq_flags |= IRQF_SHARED;
        ISACVersion(cs, "TelesPCI:");
        if (HscxVersion(cs, "TelesPCI:")) {
                printk(KERN_WARNING