• Home
  • Raw
  • Download

Lines Matching +full:cs +full:- +full:0

19 static u_char dummyrr(struct IsdnCardState *cs, int chan, u_char off)  in dummyrr()  argument
24 static void dummywr(struct IsdnCardState *cs, int chan, u_char off, u_char value) in dummywr() argument
31 struct IsdnCardState *cs = dev_id; in netjet_s_interrupt() local
35 spin_lock_irqsave(&cs->lock, flags); in netjet_s_interrupt()
36 s1val = bytein(cs->hw.njet.base + NETJET_IRQSTAT1); in netjet_s_interrupt()
38 val = NETjet_ReadIC(cs, ISAC_ISTA); in netjet_s_interrupt()
39 if (cs->debug & L1_DEB_ISAC) in netjet_s_interrupt()
40 debugl1(cs, "tiger: i1 %x %x", s1val, val); in netjet_s_interrupt()
42 isac_interrupt(cs, val); in netjet_s_interrupt()
43 NETjet_WriteIC(cs, ISAC_MASK, 0xFF); in netjet_s_interrupt()
44 NETjet_WriteIC(cs, ISAC_MASK, 0x0); in netjet_s_interrupt()
48 s1val = 0; in netjet_s_interrupt()
55 s0val = bytein(cs->hw.njet.base + NETJET_IRQSTAT0); in netjet_s_interrupt()
56 if ((s0val | s1val) == 0) { // shared IRQ in netjet_s_interrupt()
57 spin_unlock_irqrestore(&cs->lock, flags); in netjet_s_interrupt()
61 byteout(cs->hw.njet.base + NETJET_IRQSTAT0, s0val); in netjet_s_interrupt()
64 if (inl(cs->hw.njet.base + NETJET_DMA_WRITE_ADR) < in netjet_s_interrupt()
65 inl(cs->hw.njet.base + NETJET_DMA_WRITE_IRQ)) in netjet_s_interrupt()
67 s0val = 0x08; in netjet_s_interrupt()
69 s0val = 0x04; in netjet_s_interrupt()
70 if (inl(cs->hw.njet.base + NETJET_DMA_READ_ADR) < in netjet_s_interrupt()
71 inl(cs->hw.njet.base + NETJET_DMA_READ_IRQ)) in netjet_s_interrupt()
73 s0val |= 0x02; in netjet_s_interrupt()
75 s0val |= 0x01; in netjet_s_interrupt()
76 if (s0val != cs->hw.njet.last_is0) /* we have a DMA interrupt */ in netjet_s_interrupt()
78 if (test_and_set_bit(FLG_LOCK_ATOMIC, &cs->HW_Flags)) { in netjet_s_interrupt()
79 printk(KERN_WARNING "nj LOCK_ATOMIC s0val %x->%x\n", in netjet_s_interrupt()
80 cs->hw.njet.last_is0, s0val); in netjet_s_interrupt()
81 spin_unlock_irqrestore(&cs->lock, flags); in netjet_s_interrupt()
84 cs->hw.njet.irqstat0 = s0val; in netjet_s_interrupt()
85 if ((cs->hw.njet.irqstat0 & NETJET_IRQM0_READ) != in netjet_s_interrupt()
86 (cs->hw.njet.last_is0 & NETJET_IRQM0_READ)) in netjet_s_interrupt()
88 read_tiger(cs); in netjet_s_interrupt()
89 if ((cs->hw.njet.irqstat0 & NETJET_IRQM0_WRITE) != in netjet_s_interrupt()
90 (cs->hw.njet.last_is0 & NETJET_IRQM0_WRITE)) in netjet_s_interrupt()
92 write_tiger(cs); in netjet_s_interrupt()
94 test_and_clear_bit(FLG_LOCK_ATOMIC, &cs->HW_Flags); in netjet_s_interrupt()
96 spin_unlock_irqrestore(&cs->lock, flags); in netjet_s_interrupt()
101 reset_netjet_s(struct IsdnCardState *cs) in reset_netjet_s() argument
103 cs->hw.njet.ctrl_reg = 0xff; /* Reset On */ in reset_netjet_s()
104 byteout(cs->hw.njet.base + NETJET_CTRL, cs->hw.njet.ctrl_reg); in reset_netjet_s()
108 if (cs->subtyp) /* TJ320 */ in reset_netjet_s()
109 cs->hw.njet.ctrl_reg = 0x40; /* Reset Off and status read clear */ in reset_netjet_s()
111 cs->hw.njet.ctrl_reg = 0x00; /* Reset Off and status read clear */ in reset_netjet_s()
112 byteout(cs->hw.njet.base + NETJET_CTRL, cs->hw.njet.ctrl_reg); in reset_netjet_s()
114 cs->hw.njet.auxd = 0; in reset_netjet_s()
115 cs->hw.njet.dmactrl = 0; in reset_netjet_s()
116 byteout(cs->hw.njet.base + NETJET_AUXCTRL, ~NETJET_ISACIRQ); in reset_netjet_s()
117 byteout(cs->hw.njet.base + NETJET_IRQMASK1, NETJET_ISACIRQ); in reset_netjet_s()
118 byteout(cs->hw.njet.auxa, cs->hw.njet.auxd); in reset_netjet_s()
122 NETjet_S_card_msg(struct IsdnCardState *cs, int mt, void *arg) in NETjet_S_card_msg() argument
128 spin_lock_irqsave(&cs->lock, flags); in NETjet_S_card_msg()
129 reset_netjet_s(cs); in NETjet_S_card_msg()
130 spin_unlock_irqrestore(&cs->lock, flags); in NETjet_S_card_msg()
131 return (0); in NETjet_S_card_msg()
133 release_io_netjet(cs); in NETjet_S_card_msg()
134 return (0); in NETjet_S_card_msg()
136 reset_netjet_s(cs); in NETjet_S_card_msg()
137 inittiger(cs); in NETjet_S_card_msg()
138 spin_lock_irqsave(&cs->lock, flags); in NETjet_S_card_msg()
139 clear_pending_isac_ints(cs); in NETjet_S_card_msg()
140 initisac(cs); in NETjet_S_card_msg()
142 cs->writeisac(cs, ISAC_MASK, 0); in NETjet_S_card_msg()
143 spin_unlock_irqrestore(&cs->lock, flags); in NETjet_S_card_msg()
144 return (0); in NETjet_S_card_msg()
146 return (0); in NETjet_S_card_msg()
148 return (0); in NETjet_S_card_msg()
151 static int njs_pci_probe(struct pci_dev *dev_netjet, struct IsdnCardState *cs) in njs_pci_probe() argument
156 return (0); in njs_pci_probe()
158 cs->irq = dev_netjet->irq; in njs_pci_probe()
159 if (!cs->irq) { in njs_pci_probe()
160 printk(KERN_WARNING "NETjet-S: No IRQ for PCI card found\n"); in njs_pci_probe()
161 return (0); in njs_pci_probe()
163 cs->hw.njet.base = pci_resource_start(dev_netjet, 0); in njs_pci_probe()
164 if (!cs->hw.njet.base) { in njs_pci_probe()
165 printk(KERN_WARNING "NETjet-S: No IO-Adr for PCI card found\n"); in njs_pci_probe()
166 return (0); in njs_pci_probe()
172 pci_read_config_dword(dev_netjet, 0x04, &cfg); in njs_pci_probe()
173 if (cfg & 0x00100000) in njs_pci_probe()
174 cs->subtyp = 1; /* TJ320 */ in njs_pci_probe()
176 cs->subtyp = 0; /* TJ300 */ in njs_pci_probe()
177 /* 2001/10/04 Christoph Ersfeld, Formula-n Europe AG www.formula-n.com */ in njs_pci_probe()
178 if ((dev_netjet->subsystem_vendor == 0x55) && in njs_pci_probe()
179 (dev_netjet->subsystem_device == 0x02)) { in njs_pci_probe()
180 printk(KERN_WARNING "Netjet: You tried to load this driver with an incompatible TigerJet-card\n"); in njs_pci_probe()
181 printk(KERN_WARNING "Use type=41 for Formula-n enter:now ISDN PCI and compatible\n"); in njs_pci_probe()
182 return (0); in njs_pci_probe()
189 static int njs_cs_init(struct IsdnCard *card, struct IsdnCardState *cs) in njs_cs_init() argument
192 cs->hw.njet.auxa = cs->hw.njet.base + NETJET_AUXDATA; in njs_cs_init()
193 cs->hw.njet.isac = cs->hw.njet.base | NETJET_ISAC_OFF; in njs_cs_init()
195 cs->hw.njet.ctrl_reg = 0xff; /* Reset On */ in njs_cs_init()
196 byteout(cs->hw.njet.base + NETJET_CTRL, cs->hw.njet.ctrl_reg); in njs_cs_init()
199 cs->hw.njet.ctrl_reg = 0x00; /* Reset Off and status read clear */ in njs_cs_init()
200 byteout(cs->hw.njet.base + NETJET_CTRL, cs->hw.njet.ctrl_reg); in njs_cs_init()
203 cs->hw.njet.auxd = 0xC0; in njs_cs_init()
204 cs->hw.njet.dmactrl = 0; in njs_cs_init()
206 byteout(cs->hw.njet.base + NETJET_AUXCTRL, ~NETJET_ISACIRQ); in njs_cs_init()
207 byteout(cs->hw.njet.base + NETJET_IRQMASK1, NETJET_ISACIRQ); in njs_cs_init()
208 byteout(cs->hw.njet.auxa, cs->hw.njet.auxd); in njs_cs_init()
210 switch (((NETjet_ReadIC(cs, ISAC_RBCH) >> 5) & 3)) in njs_cs_init()
212 case 0: in njs_cs_init()
216 printk(KERN_WARNING "NETjet-S: NETspider-U PCI card found\n"); in njs_cs_init()
217 return -1; /* continue looping */ in njs_cs_init()
220 printk(KERN_WARNING "NETjet-S: No PCI card found\n"); in njs_cs_init()
221 return 0; /* end loop & function */ in njs_cs_init()
226 static int njs_cs_init_rest(struct IsdnCard *card, struct IsdnCardState *cs) in njs_cs_init_rest() argument
231 "NETjet-S: %s card configured at %#lx IRQ %d\n", in njs_cs_init_rest()
232 cs->subtyp ? "TJ320" : "TJ300", cs->hw.njet.base, cs->irq); in njs_cs_init_rest()
233 if (!request_region(cs->hw.njet.base, bytecnt, "netjet-s isdn")) { in njs_cs_init_rest()
235 "HiSax: NETjet-S config port %#lx-%#lx already in use\n", in njs_cs_init_rest()
236 cs->hw.njet.base, in njs_cs_init_rest()
237 cs->hw.njet.base + bytecnt); in njs_cs_init_rest()
238 return (0); in njs_cs_init_rest()
240 cs->readisac = &NETjet_ReadIC; in njs_cs_init_rest()
241 cs->writeisac = &NETjet_WriteIC; in njs_cs_init_rest()
242 cs->readisacfifo = &NETjet_ReadICfifo; in njs_cs_init_rest()
243 cs->writeisacfifo = &NETjet_WriteICfifo; in njs_cs_init_rest()
244 cs->BC_Read_Reg = &dummyrr; in njs_cs_init_rest()
245 cs->BC_Write_Reg = &dummywr; in njs_cs_init_rest()
246 cs->BC_Send_Data = &netjet_fill_dma; in njs_cs_init_rest()
247 setup_isac(cs); in njs_cs_init_rest()
248 cs->cardmsg = &NETjet_S_card_msg; in njs_cs_init_rest()
249 cs->irq_func = &netjet_s_interrupt; in njs_cs_init_rest()
250 cs->irq_flags |= IRQF_SHARED; in njs_cs_init_rest()
251 ISACVersion(cs, "NETjet-S:"); in njs_cs_init_rest()
261 struct IsdnCardState *cs = card->cs; in setup_netjet_s() local
268 printk(KERN_INFO "HiSax: Traverse Tech. NETjet-S driver Rev. %s\n", HiSax_getrev(tmp)); in setup_netjet_s()
269 if (cs->typ != ISDN_CTYPE_NETJET_S) in setup_netjet_s()
270 return (0); in setup_netjet_s()
271 test_and_clear_bit(FLG_LOCK_ATOMIC, &cs->HW_Flags); in setup_netjet_s()
277 ret = njs_pci_probe(dev_netjet, cs); in setup_netjet_s()
279 return (0); in setup_netjet_s()
281 printk(KERN_WARNING "NETjet-S: No PCI card found\n"); in setup_netjet_s()
282 return (0); in setup_netjet_s()
285 ret = njs_cs_init(card, cs); in setup_netjet_s()
287 return (0); in setup_netjet_s()
288 if (ret > 0) in setup_netjet_s()
290 /* otherwise, ret < 0, continue looping */ in setup_netjet_s()
293 return njs_cs_init_rest(card, cs); in setup_netjet_s()