Lines Matching +full:cs +full:- +full:2

31 #define ISAC_PCI_ADDR	2
38 #define NICCY_PCI 2
78 static u_char ReadISAC(struct IsdnCardState *cs, u_char offset) in ReadISAC() argument
80 return readreg(cs->hw.niccy.isac_ale, cs->hw.niccy.isac, offset); in ReadISAC()
83 static void WriteISAC(struct IsdnCardState *cs, u_char offset, u_char value) in WriteISAC() argument
85 writereg(cs->hw.niccy.isac_ale, cs->hw.niccy.isac, offset, value); in WriteISAC()
88 static void ReadISACfifo(struct IsdnCardState *cs, u_char * data, int size) in ReadISACfifo() argument
90 readfifo(cs->hw.niccy.isac_ale, cs->hw.niccy.isac, 0, data, size); in ReadISACfifo()
93 static void WriteISACfifo(struct IsdnCardState *cs, u_char * data, int size) in WriteISACfifo() argument
95 writefifo(cs->hw.niccy.isac_ale, cs->hw.niccy.isac, 0, data, size); in WriteISACfifo()
98 static u_char ReadHSCX(struct IsdnCardState *cs, int hscx, u_char offset) in ReadHSCX() argument
100 return readreg(cs->hw.niccy.hscx_ale, in ReadHSCX()
101 cs->hw.niccy.hscx, offset + (hscx ? 0x40 : 0)); in ReadHSCX()
104 static void WriteHSCX(struct IsdnCardState *cs, int hscx, u_char offset, in WriteHSCX() argument
107 writereg(cs->hw.niccy.hscx_ale, in WriteHSCX()
108 cs->hw.niccy.hscx, offset + (hscx ? 0x40 : 0), value); in WriteHSCX()
111 #define READHSCX(cs, nr, reg) readreg(cs->hw.niccy.hscx_ale, \ argument
112 cs->hw.niccy.hscx, reg + (nr ? 0x40 : 0))
113 #define WRITEHSCX(cs, nr, reg, data) writereg(cs->hw.niccy.hscx_ale, \ argument
114 cs->hw.niccy.hscx, reg + (nr ? 0x40 : 0), data)
116 #define READHSCXFIFO(cs, nr, ptr, cnt) readfifo(cs->hw.niccy.hscx_ale, \ argument
117 cs->hw.niccy.hscx, (nr ? 0x40 : 0), ptr, cnt)
119 #define WRITEHSCXFIFO(cs, nr, ptr, cnt) writefifo(cs->hw.niccy.hscx_ale, \ argument
120 cs->hw.niccy.hscx, (nr ? 0x40 : 0), ptr, cnt)
126 struct IsdnCardState *cs = dev_id; in niccy_interrupt() local
130 spin_lock_irqsave(&cs->lock, flags); in niccy_interrupt()
131 if (cs->subtyp == NICCY_PCI) { in niccy_interrupt()
133 ival = inl(cs->hw.niccy.cfg_reg + PCI_IRQ_CTRL_REG); in niccy_interrupt()
135 spin_unlock_irqrestore(&cs->lock, flags); in niccy_interrupt()
138 outl(ival, cs->hw.niccy.cfg_reg + PCI_IRQ_CTRL_REG); in niccy_interrupt()
140 val = readreg(cs->hw.niccy.hscx_ale, cs->hw.niccy.hscx, in niccy_interrupt()
144 hscx_int_main(cs, val); in niccy_interrupt()
145 val = readreg(cs->hw.niccy.isac_ale, cs->hw.niccy.isac, ISAC_ISTA); in niccy_interrupt()
148 isac_interrupt(cs, val); in niccy_interrupt()
149 val = readreg(cs->hw.niccy.hscx_ale, cs->hw.niccy.hscx, in niccy_interrupt()
152 if (cs->debug & L1_DEB_HSCX) in niccy_interrupt()
153 debugl1(cs, "HSCX IntStat after IntRoutine"); in niccy_interrupt()
156 val = readreg(cs->hw.niccy.isac_ale, cs->hw.niccy.isac, ISAC_ISTA); in niccy_interrupt()
158 if (cs->debug & L1_DEB_ISAC) in niccy_interrupt()
159 debugl1(cs, "ISAC IntStat after IntRoutine"); in niccy_interrupt()
162 writereg(cs->hw.niccy.hscx_ale, cs->hw.niccy.hscx, HSCX_MASK, 0xFF); in niccy_interrupt()
163 writereg(cs->hw.niccy.hscx_ale, cs->hw.niccy.hscx, HSCX_MASK + 0x40, in niccy_interrupt()
165 writereg(cs->hw.niccy.isac_ale, cs->hw.niccy.isac, ISAC_MASK, 0xFF); in niccy_interrupt()
166 writereg(cs->hw.niccy.isac_ale, cs->hw.niccy.isac, ISAC_MASK, 0); in niccy_interrupt()
167 writereg(cs->hw.niccy.hscx_ale, cs->hw.niccy.hscx, HSCX_MASK, 0); in niccy_interrupt()
168 writereg(cs->hw.niccy.hscx_ale, cs->hw.niccy.hscx, HSCX_MASK + 0x40,0); in niccy_interrupt()
169 spin_unlock_irqrestore(&cs->lock, flags); in niccy_interrupt()
173 static void release_io_niccy(struct IsdnCardState *cs) in release_io_niccy() argument
175 if (cs->subtyp == NICCY_PCI) { in release_io_niccy()
178 val = inl(cs->hw.niccy.cfg_reg + PCI_IRQ_CTRL_REG); in release_io_niccy()
180 outl(val, cs->hw.niccy.cfg_reg + PCI_IRQ_CTRL_REG); in release_io_niccy()
181 release_region(cs->hw.niccy.cfg_reg, 0x40); in release_io_niccy()
182 release_region(cs->hw.niccy.isac, 4); in release_io_niccy()
184 release_region(cs->hw.niccy.isac, 2); in release_io_niccy()
185 release_region(cs->hw.niccy.isac_ale, 2); in release_io_niccy()
189 static void niccy_reset(struct IsdnCardState *cs) in niccy_reset() argument
191 if (cs->subtyp == NICCY_PCI) { in niccy_reset()
194 val = inl(cs->hw.niccy.cfg_reg + PCI_IRQ_CTRL_REG); in niccy_reset()
196 outl(val, cs->hw.niccy.cfg_reg + PCI_IRQ_CTRL_REG); in niccy_reset()
198 inithscxisac(cs, 3); in niccy_reset()
201 static int niccy_card_msg(struct IsdnCardState *cs, int mt, void *arg) in niccy_card_msg() argument
207 spin_lock_irqsave(&cs->lock, flags); in niccy_card_msg()
208 niccy_reset(cs); in niccy_card_msg()
209 spin_unlock_irqrestore(&cs->lock, flags); in niccy_card_msg()
212 release_io_niccy(cs); in niccy_card_msg()
215 spin_lock_irqsave(&cs->lock, flags); in niccy_card_msg()
216 niccy_reset(cs); in niccy_card_msg()
217 spin_unlock_irqrestore(&cs->lock, flags); in niccy_card_msg()
231 struct IsdnCardState *cs = card->cs; in setup_niccy() local
236 if (cs->typ != ISDN_CTYPE_NICCY) in setup_niccy()
239 if (!card->para[1] && isapnp_present()) { in setup_niccy()
261 card->para[1] = pnp_port_start(pnp_d, 0); in setup_niccy()
262 card->para[2] = pnp_port_start(pnp_d, 1); in setup_niccy()
263 card->para[0] = pnp_irq(pnp_d, 0); in setup_niccy()
264 if (!card->para[0] || !card->para[1] || in setup_niccy()
265 !card->para[2]) { in setup_niccy()
268 card->para[0], card->para[1], in setup_niccy()
269 card->para[2]); in setup_niccy()
277 if (card->para[1]) { in setup_niccy()
278 cs->hw.niccy.isac = card->para[1] + ISAC_PNP; in setup_niccy()
279 cs->hw.niccy.hscx = card->para[1] + HSCX_PNP; in setup_niccy()
280 cs->hw.niccy.isac_ale = card->para[2] + ISAC_PNP; in setup_niccy()
281 cs->hw.niccy.hscx_ale = card->para[2] + HSCX_PNP; in setup_niccy()
282 cs->hw.niccy.cfg_reg = 0; in setup_niccy()
283 cs->subtyp = NICCY_PNP; in setup_niccy()
284 cs->irq = card->para[0]; in setup_niccy()
285 if (!request_region(cs->hw.niccy.isac, 2, "niccy data")) { in setup_niccy()
286 printk(KERN_WARNING "HiSax: NICCY data port %x-%x " in setup_niccy()
288 cs->hw.niccy.isac, cs->hw.niccy.isac + 1); in setup_niccy()
291 if (!request_region(cs->hw.niccy.isac_ale, 2, "niccy addr")) { in setup_niccy()
292 printk(KERN_WARNING "HiSax: NICCY address port %x-%x " in setup_niccy()
294 cs->hw.niccy.isac_ale, in setup_niccy()
295 cs->hw.niccy.isac_ale + 1); in setup_niccy()
296 release_region(cs->hw.niccy.isac, 2); in setup_niccy()
304 cs->subtyp = 0; in setup_niccy()
311 if (!niccy_dev->irq) { in setup_niccy()
316 cs->irq = niccy_dev->irq; in setup_niccy()
317 cs->hw.niccy.cfg_reg = pci_resource_start(niccy_dev, 0); in setup_niccy()
318 if (!cs->hw.niccy.cfg_reg) { in setup_niccy()
320 "Niccy: No IO-Adr for PCI cfg found\n"); in setup_niccy()
326 "Niccy: No IO-Adr for PCI card found\n"); in setup_niccy()
329 cs->subtyp = NICCY_PCI; in setup_niccy()
334 cs->irq_flags |= IRQF_SHARED; in setup_niccy()
335 cs->hw.niccy.isac = pci_ioaddr + ISAC_PCI_DATA; in setup_niccy()
336 cs->hw.niccy.isac_ale = pci_ioaddr + ISAC_PCI_ADDR; in setup_niccy()
337 cs->hw.niccy.hscx = pci_ioaddr + HSCX_PCI_DATA; in setup_niccy()
338 cs->hw.niccy.hscx_ale = pci_ioaddr + HSCX_PCI_ADDR; in setup_niccy()
339 if (!request_region(cs->hw.niccy.isac, 4, "niccy")) { in setup_niccy()
341 "HiSax: NICCY data port %x-%x already in use\n", in setup_niccy()
342 cs->hw.niccy.isac, cs->hw.niccy.isac + 4); in setup_niccy()
345 if (!request_region(cs->hw.niccy.cfg_reg, 0x40, "niccy pci")) { in setup_niccy()
347 "HiSax: NICCY pci port %x-%x already in use\n", in setup_niccy()
348 cs->hw.niccy.cfg_reg, in setup_niccy()
349 cs->hw.niccy.cfg_reg + 0x40); in setup_niccy()
350 release_region(cs->hw.niccy.isac, 4); in setup_niccy()
360 (cs->subtyp == 1) ? "PnP" : "PCI", in setup_niccy()
361 cs->irq, cs->hw.niccy.isac, cs->hw.niccy.isac_ale); in setup_niccy()
362 setup_isac(cs); in setup_niccy()
363 cs->readisac = &ReadISAC; in setup_niccy()
364 cs->writeisac = &WriteISAC; in setup_niccy()
365 cs->readisacfifo = &ReadISACfifo; in setup_niccy()
366 cs->writeisacfifo = &WriteISACfifo; in setup_niccy()
367 cs->BC_Read_Reg = &ReadHSCX; in setup_niccy()
368 cs->BC_Write_Reg = &WriteHSCX; in setup_niccy()
369 cs->BC_Send_Data = &hscx_fill_fifo; in setup_niccy()
370 cs->cardmsg = &niccy_card_msg; in setup_niccy()
371 cs->irq_func = &niccy_interrupt; in setup_niccy()
372 ISACVersion(cs, "Niccy:"); in setup_niccy()
373 if (HscxVersion(cs, "Niccy:")) { in setup_niccy()
376 release_io_niccy(cs); in setup_niccy()