X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=drivers%2Fisdn%2Fhisax%2Ftelespci.c;h=d09f6d033f156c96c46a8411a5e41dc14c3abf88;hb=refs%2Fheads%2Fvserver;hp=5e305554d038f584330c549e59229c982412a3a4;hpb=5273a3df6485dc2ad6aa7ddd441b9a21970f003b;p=linux-2.6.git diff --git a/drivers/isdn/hisax/telespci.c b/drivers/isdn/hisax/telespci.c index 5e305554d..d09f6d033 100644 --- a/drivers/isdn/hisax/telespci.c +++ b/drivers/isdn/hisax/telespci.c @@ -13,7 +13,6 @@ */ #include -#include #include "hisax.h" #include "isac.h" #include "hscx.h" @@ -21,7 +20,7 @@ #include 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; @@ -300,7 +299,7 @@ setup_telespci(struct IsdnCard *card) printk(KERN_INFO "HiSax: Teles/PCI driver Rev. %s\n", HiSax_getrev(tmp)); if (cs->typ != ISDN_CTYPE_TELESPCI) return (0); -#if CONFIG_PCI +#ifdef CONFIG_PCI if ((dev_tel = pci_find_device (PCI_VENDOR_ID_ZORAN, PCI_DEVICE_ID_ZORAN_36120, dev_tel))) { if (pci_enable_device(dev_tel)) return(0); @@ -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