Lines Matching refs:cs

154 ReadISAC(struct IsdnCardState *cs, u_char offset)  in ReadISAC()  argument
156 return (readreg(cs->hw.sedl.adr, cs->hw.sedl.isac, offset)); in ReadISAC()
160 WriteISAC(struct IsdnCardState *cs, u_char offset, u_char value) in WriteISAC() argument
162 writereg(cs->hw.sedl.adr, cs->hw.sedl.isac, offset, value); in WriteISAC()
166 ReadISACfifo(struct IsdnCardState *cs, u_char *data, int size) in ReadISACfifo() argument
168 readfifo(cs->hw.sedl.adr, cs->hw.sedl.isac, 0, data, size); in ReadISACfifo()
172 WriteISACfifo(struct IsdnCardState *cs, u_char *data, int size) in WriteISACfifo() argument
174 writefifo(cs->hw.sedl.adr, cs->hw.sedl.isac, 0, data, size); in WriteISACfifo()
178 ReadISAC_IPAC(struct IsdnCardState *cs, u_char offset) in ReadISAC_IPAC() argument
180 return (readreg(cs->hw.sedl.adr, cs->hw.sedl.isac, offset | 0x80)); in ReadISAC_IPAC()
184 WriteISAC_IPAC(struct IsdnCardState *cs, u_char offset, u_char value) in WriteISAC_IPAC() argument
186 writereg(cs->hw.sedl.adr, cs->hw.sedl.isac, offset | 0x80, value); in WriteISAC_IPAC()
190 ReadISACfifo_IPAC(struct IsdnCardState *cs, u_char *data, int size) in ReadISACfifo_IPAC() argument
192 readfifo(cs->hw.sedl.adr, cs->hw.sedl.isac, 0x80, data, size); in ReadISACfifo_IPAC()
196 WriteISACfifo_IPAC(struct IsdnCardState *cs, u_char *data, int size) in WriteISACfifo_IPAC() argument
198 writefifo(cs->hw.sedl.adr, cs->hw.sedl.isac, 0x80, data, size); in WriteISACfifo_IPAC()
202 ReadHSCX(struct IsdnCardState *cs, int hscx, u_char offset) in ReadHSCX() argument
204 return (readreg(cs->hw.sedl.adr, in ReadHSCX()
205 cs->hw.sedl.hscx, offset + (hscx ? 0x40 : 0))); in ReadHSCX()
209 WriteHSCX(struct IsdnCardState *cs, int hscx, u_char offset, u_char value) in WriteHSCX() argument
211 writereg(cs->hw.sedl.adr, in WriteHSCX()
212 cs->hw.sedl.hscx, offset + (hscx ? 0x40 : 0), value); in WriteHSCX()
222 ReadISAR(struct IsdnCardState *cs, int mode, u_char offset) in ReadISAR() argument
225 return (readreg(cs->hw.sedl.adr, cs->hw.sedl.hscx, offset)); in ReadISAR()
227 byteout(cs->hw.sedl.adr, offset); in ReadISAR()
228 return (bytein(cs->hw.sedl.hscx)); in ReadISAR()
232 WriteISAR(struct IsdnCardState *cs, int mode, u_char offset, u_char value) in WriteISAR() argument
235 writereg(cs->hw.sedl.adr, cs->hw.sedl.hscx, offset, value); in WriteISAR()
238 byteout(cs->hw.sedl.adr, offset); in WriteISAR()
239 byteout(cs->hw.sedl.hscx, value); in WriteISAR()
247 #define READHSCX(cs, nr, reg) readreg(cs->hw.sedl.adr, \ argument
248 cs->hw.sedl.hscx, reg + (nr ? 0x40 : 0))
249 #define WRITEHSCX(cs, nr, reg, data) writereg(cs->hw.sedl.adr, \ argument
250 cs->hw.sedl.hscx, reg + (nr ? 0x40 : 0), data)
252 #define READHSCXFIFO(cs, nr, ptr, cnt) readfifo(cs->hw.sedl.adr, \ argument
253 cs->hw.sedl.hscx, (nr ? 0x40 : 0), ptr, cnt)
255 #define WRITEHSCXFIFO(cs, nr, ptr, cnt) writefifo(cs->hw.sedl.adr, \ argument
256 cs->hw.sedl.hscx, (nr ? 0x40 : 0), ptr, cnt)
263 struct IsdnCardState *cs = dev_id; in sedlbauer_interrupt() local
267 spin_lock_irqsave(&cs->lock, flags); in sedlbauer_interrupt()
268 if ((cs->hw.sedl.bus == SEDL_BUS_PCMCIA) && (*cs->busy_flag == 1)) { in sedlbauer_interrupt()
271 spin_unlock_irqrestore(&cs->lock, flags); in sedlbauer_interrupt()
276 val = readreg(cs->hw.sedl.adr, cs->hw.sedl.hscx, HSCX_ISTA + 0x40); in sedlbauer_interrupt()
279 hscx_int_main(cs, val); in sedlbauer_interrupt()
280 val = readreg(cs->hw.sedl.adr, cs->hw.sedl.isac, ISAC_ISTA); in sedlbauer_interrupt()
283 isac_interrupt(cs, val); in sedlbauer_interrupt()
284 val = readreg(cs->hw.sedl.adr, cs->hw.sedl.hscx, HSCX_ISTA + 0x40); in sedlbauer_interrupt()
286 if (cs->debug & L1_DEB_HSCX) in sedlbauer_interrupt()
287 debugl1(cs, "HSCX IntStat after IntRoutine"); in sedlbauer_interrupt()
290 val = readreg(cs->hw.sedl.adr, cs->hw.sedl.isac, ISAC_ISTA); in sedlbauer_interrupt()
292 if (cs->debug & L1_DEB_ISAC) in sedlbauer_interrupt()
293 debugl1(cs, "ISAC IntStat after IntRoutine"); in sedlbauer_interrupt()
296 writereg(cs->hw.sedl.adr, cs->hw.sedl.hscx, HSCX_MASK, 0xFF); in sedlbauer_interrupt()
297 writereg(cs->hw.sedl.adr, cs->hw.sedl.hscx, HSCX_MASK + 0x40, 0xFF); in sedlbauer_interrupt()
298 writereg(cs->hw.sedl.adr, cs->hw.sedl.isac, ISAC_MASK, 0xFF); in sedlbauer_interrupt()
299 writereg(cs->hw.sedl.adr, cs->hw.sedl.isac, ISAC_MASK, 0x0); in sedlbauer_interrupt()
300 writereg(cs->hw.sedl.adr, cs->hw.sedl.hscx, HSCX_MASK, 0x0); in sedlbauer_interrupt()
301 writereg(cs->hw.sedl.adr, cs->hw.sedl.hscx, HSCX_MASK + 0x40, 0x0); in sedlbauer_interrupt()
302 spin_unlock_irqrestore(&cs->lock, flags); in sedlbauer_interrupt()
309 struct IsdnCardState *cs = dev_id; in sedlbauer_interrupt_ipac() local
313 spin_lock_irqsave(&cs->lock, flags); in sedlbauer_interrupt_ipac()
314 ista = readreg(cs->hw.sedl.adr, cs->hw.sedl.isac, IPAC_ISTA); in sedlbauer_interrupt_ipac()
316 if (cs->debug & L1_DEB_IPAC) in sedlbauer_interrupt_ipac()
317 debugl1(cs, "IPAC ISTA %02X", ista); in sedlbauer_interrupt_ipac()
319 val = readreg(cs->hw.sedl.adr, cs->hw.sedl.hscx, HSCX_ISTA + 0x40); in sedlbauer_interrupt_ipac()
327 hscx_int_main(cs, val); in sedlbauer_interrupt_ipac()
330 val = 0xfe & readreg(cs->hw.sedl.adr, cs->hw.sedl.isac, ISAC_ISTA | 0x80); in sedlbauer_interrupt_ipac()
332 isac_interrupt(cs, val); in sedlbauer_interrupt_ipac()
337 isac_interrupt(cs, val); in sedlbauer_interrupt_ipac()
339 ista = readreg(cs->hw.sedl.adr, cs->hw.sedl.isac, IPAC_ISTA); in sedlbauer_interrupt_ipac()
345 if (cs->debug & L1_DEB_ISAC) in sedlbauer_interrupt_ipac()
346 debugl1(cs, "Sedlbauer IRQ LOOP"); in sedlbauer_interrupt_ipac()
347 writereg(cs->hw.sedl.adr, cs->hw.sedl.isac, IPAC_MASK, 0xFF); in sedlbauer_interrupt_ipac()
348 writereg(cs->hw.sedl.adr, cs->hw.sedl.isac, IPAC_MASK, 0xC0); in sedlbauer_interrupt_ipac()
349 spin_unlock_irqrestore(&cs->lock, flags); in sedlbauer_interrupt_ipac()
356 struct IsdnCardState *cs = dev_id; in sedlbauer_interrupt_isar() local
361 spin_lock_irqsave(&cs->lock, flags); in sedlbauer_interrupt_isar()
362 val = readreg(cs->hw.sedl.adr, cs->hw.sedl.hscx, ISAR_IRQBIT); in sedlbauer_interrupt_isar()
365 isar_int_main(cs); in sedlbauer_interrupt_isar()
366 val = readreg(cs->hw.sedl.adr, cs->hw.sedl.isac, ISAC_ISTA); in sedlbauer_interrupt_isar()
369 isac_interrupt(cs, val); in sedlbauer_interrupt_isar()
370 val = readreg(cs->hw.sedl.adr, cs->hw.sedl.hscx, ISAR_IRQBIT); in sedlbauer_interrupt_isar()
372 if (cs->debug & L1_DEB_HSCX) in sedlbauer_interrupt_isar()
373 debugl1(cs, "ISAR IntStat after IntRoutine"); in sedlbauer_interrupt_isar()
376 val = readreg(cs->hw.sedl.adr, cs->hw.sedl.isac, ISAC_ISTA); in sedlbauer_interrupt_isar()
378 if (cs->debug & L1_DEB_ISAC) in sedlbauer_interrupt_isar()
379 debugl1(cs, "ISAC IntStat after IntRoutine"); in sedlbauer_interrupt_isar()
383 if (cs->debug & L1_DEB_ISAC) in sedlbauer_interrupt_isar()
384 debugl1(cs, "Sedlbauer IRQ LOOP"); in sedlbauer_interrupt_isar()
386 writereg(cs->hw.sedl.adr, cs->hw.sedl.hscx, ISAR_IRQBIT, 0); in sedlbauer_interrupt_isar()
387 writereg(cs->hw.sedl.adr, cs->hw.sedl.isac, ISAC_MASK, 0xFF); in sedlbauer_interrupt_isar()
388 writereg(cs->hw.sedl.adr, cs->hw.sedl.isac, ISAC_MASK, 0x0); in sedlbauer_interrupt_isar()
389 writereg(cs->hw.sedl.adr, cs->hw.sedl.hscx, ISAR_IRQBIT, ISAR_IRQMSK); in sedlbauer_interrupt_isar()
390 spin_unlock_irqrestore(&cs->lock, flags); in sedlbauer_interrupt_isar()
395 release_io_sedlbauer(struct IsdnCardState *cs) in release_io_sedlbauer() argument
399 if (cs->subtyp == SEDL_SPEED_FAX) { in release_io_sedlbauer()
401 } else if (cs->hw.sedl.bus == SEDL_BUS_PCI) { in release_io_sedlbauer()
404 if (cs->hw.sedl.cfg_reg) in release_io_sedlbauer()
405 release_region(cs->hw.sedl.cfg_reg, bytecnt); in release_io_sedlbauer()
409 reset_sedlbauer(struct IsdnCardState *cs) in reset_sedlbauer() argument
413 if (!((cs->hw.sedl.bus == SEDL_BUS_PCMCIA) && in reset_sedlbauer()
414 (cs->hw.sedl.chip == SEDL_CHIP_ISAC_HSCX))) { in reset_sedlbauer()
415 if (cs->hw.sedl.chip == SEDL_CHIP_IPAC) { in reset_sedlbauer()
416 writereg(cs->hw.sedl.adr, cs->hw.sedl.isac, IPAC_POTA2, 0x20); in reset_sedlbauer()
418 writereg(cs->hw.sedl.adr, cs->hw.sedl.isac, IPAC_POTA2, 0x0); in reset_sedlbauer()
420 writereg(cs->hw.sedl.adr, cs->hw.sedl.isac, IPAC_CONF, 0x0); in reset_sedlbauer()
421 writereg(cs->hw.sedl.adr, cs->hw.sedl.isac, IPAC_ACFG, 0xff); in reset_sedlbauer()
422 writereg(cs->hw.sedl.adr, cs->hw.sedl.isac, IPAC_AOE, 0x0); in reset_sedlbauer()
423 writereg(cs->hw.sedl.adr, cs->hw.sedl.isac, IPAC_MASK, 0xc0); in reset_sedlbauer()
424 writereg(cs->hw.sedl.adr, cs->hw.sedl.isac, IPAC_PCFG, 0x12); in reset_sedlbauer()
425 } else if ((cs->hw.sedl.chip == SEDL_CHIP_ISAC_ISAR) && in reset_sedlbauer()
426 (cs->hw.sedl.bus == SEDL_BUS_PCI)) { in reset_sedlbauer()
427 byteout(cs->hw.sedl.cfg_reg + 3, cs->hw.sedl.reset_on); in reset_sedlbauer()
429 byteout(cs->hw.sedl.cfg_reg + 3, cs->hw.sedl.reset_off); in reset_sedlbauer()
432 byteout(cs->hw.sedl.reset_on, SEDL_RESET); /* Reset On */ in reset_sedlbauer()
434 byteout(cs->hw.sedl.reset_off, 0); /* Reset Off */ in reset_sedlbauer()
441 Sedl_card_msg(struct IsdnCardState *cs, int mt, void *arg) in Sedl_card_msg() argument
447 spin_lock_irqsave(&cs->lock, flags); in Sedl_card_msg()
448 reset_sedlbauer(cs); in Sedl_card_msg()
449 spin_unlock_irqrestore(&cs->lock, flags); in Sedl_card_msg()
452 if (cs->hw.sedl.bus == SEDL_BUS_PCI) in Sedl_card_msg()
454 byteout(cs->hw.sedl.cfg_reg + 5, 0); in Sedl_card_msg()
455 if (cs->hw.sedl.chip == SEDL_CHIP_ISAC_ISAR) { in Sedl_card_msg()
456 spin_lock_irqsave(&cs->lock, flags); in Sedl_card_msg()
457 writereg(cs->hw.sedl.adr, cs->hw.sedl.hscx, in Sedl_card_msg()
459 writereg(cs->hw.sedl.adr, cs->hw.sedl.isac, in Sedl_card_msg()
461 reset_sedlbauer(cs); in Sedl_card_msg()
462 writereg(cs->hw.sedl.adr, cs->hw.sedl.hscx, in Sedl_card_msg()
464 writereg(cs->hw.sedl.adr, cs->hw.sedl.isac, in Sedl_card_msg()
466 spin_unlock_irqrestore(&cs->lock, flags); in Sedl_card_msg()
468 release_io_sedlbauer(cs); in Sedl_card_msg()
471 spin_lock_irqsave(&cs->lock, flags); in Sedl_card_msg()
472 if (cs->hw.sedl.bus == SEDL_BUS_PCI) in Sedl_card_msg()
474 byteout(cs->hw.sedl.cfg_reg + 5, 0x02); in Sedl_card_msg()
475 reset_sedlbauer(cs); in Sedl_card_msg()
476 if (cs->hw.sedl.chip == SEDL_CHIP_ISAC_ISAR) { in Sedl_card_msg()
477 clear_pending_isac_ints(cs); in Sedl_card_msg()
478 writereg(cs->hw.sedl.adr, cs->hw.sedl.hscx, in Sedl_card_msg()
480 initisac(cs); in Sedl_card_msg()
481 initisar(cs); in Sedl_card_msg()
483 cs->writeisac(cs, ISAC_MASK, 0); in Sedl_card_msg()
485 cs->writeisac(cs, ISAC_CMDR, 0x41); in Sedl_card_msg()
487 inithscxisac(cs, 3); in Sedl_card_msg()
489 spin_unlock_irqrestore(&cs->lock, flags); in Sedl_card_msg()
494 if (cs->subtyp != SEDL_SPEEDFAX_PYRAMID) in Sedl_card_msg()
496 spin_lock_irqsave(&cs->lock, flags); in Sedl_card_msg()
498 cs->hw.sedl.reset_off &= ~SEDL_ISAR_PCI_LED2; in Sedl_card_msg()
500 cs->hw.sedl.reset_off &= ~SEDL_ISAR_PCI_LED1; in Sedl_card_msg()
501 byteout(cs->hw.sedl.cfg_reg + 3, cs->hw.sedl.reset_off); in Sedl_card_msg()
502 spin_unlock_irqrestore(&cs->lock, flags); in Sedl_card_msg()
505 if (cs->subtyp != SEDL_SPEEDFAX_PYRAMID) in Sedl_card_msg()
507 spin_lock_irqsave(&cs->lock, flags); in Sedl_card_msg()
509 cs->hw.sedl.reset_off |= SEDL_ISAR_PCI_LED2; in Sedl_card_msg()
511 cs->hw.sedl.reset_off |= SEDL_ISAR_PCI_LED1; in Sedl_card_msg()
512 byteout(cs->hw.sedl.cfg_reg + 3, cs->hw.sedl.reset_off); in Sedl_card_msg()
513 spin_unlock_irqrestore(&cs->lock, flags); in Sedl_card_msg()
535 struct IsdnCardState *cs = card->cs; in setup_sedlbauer_isapnp() local
567 cs->hw.sedl.cfg_reg = card->para[1]; in setup_sedlbauer_isapnp()
568 cs->irq = card->para[0]; in setup_sedlbauer_isapnp()
570 cs->subtyp = SEDL_SPEED_FAX; in setup_sedlbauer_isapnp()
571 cs->hw.sedl.chip = SEDL_CHIP_ISAC_ISAR; in setup_sedlbauer_isapnp()
574 cs->subtyp = SEDL_SPEED_CARD_WIN; in setup_sedlbauer_isapnp()
575 cs->hw.sedl.chip = SEDL_CHIP_TEST; in setup_sedlbauer_isapnp()
604 struct IsdnCardState *cs = card->cs; in setup_sedlbauer_pci() local
611 cs->irq = dev_sedl->irq; in setup_sedlbauer_pci()
612 if (!cs->irq) { in setup_sedlbauer_pci()
616 cs->hw.sedl.cfg_reg = pci_resource_start(dev_sedl, 0); in setup_sedlbauer_pci()
621 cs->irq_flags |= IRQF_SHARED; in setup_sedlbauer_pci()
622 cs->hw.sedl.bus = SEDL_BUS_PCI; in setup_sedlbauer_pci()
628 cs->hw.sedl.cfg_reg); in setup_sedlbauer_pci()
634 cs->hw.sedl.chip = SEDL_CHIP_ISAC_ISAR; in setup_sedlbauer_pci()
635 cs->subtyp = SEDL_SPEEDFAX_PYRAMID; in setup_sedlbauer_pci()
637 cs->hw.sedl.chip = SEDL_CHIP_ISAC_ISAR; in setup_sedlbauer_pci()
638 cs->subtyp = SEDL_SPEEDFAX_PCI; in setup_sedlbauer_pci()
640 cs->hw.sedl.chip = SEDL_CHIP_IPAC; in setup_sedlbauer_pci()
641 cs->subtyp = HST_SAPHIR3; in setup_sedlbauer_pci()
643 cs->hw.sedl.chip = SEDL_CHIP_IPAC; in setup_sedlbauer_pci()
644 cs->subtyp = SEDL_SPEED_PCI; in setup_sedlbauer_pci()
651 cs->hw.sedl.reset_on = SEDL_ISAR_PCI_ISAR_RESET_ON; in setup_sedlbauer_pci()
652 cs->hw.sedl.reset_off = SEDL_ISAR_PCI_ISAR_RESET_OFF; in setup_sedlbauer_pci()
653 byteout(cs->hw.sedl.cfg_reg, 0xff); in setup_sedlbauer_pci()
654 byteout(cs->hw.sedl.cfg_reg, 0x00); in setup_sedlbauer_pci()
655 byteout(cs->hw.sedl.cfg_reg + 2, 0xdd); in setup_sedlbauer_pci()
656 byteout(cs->hw.sedl.cfg_reg + 5, 0); /* disable all IRQ */ in setup_sedlbauer_pci()
657 byteout(cs->hw.sedl.cfg_reg + 3, cs->hw.sedl.reset_on); in setup_sedlbauer_pci()
659 byteout(cs->hw.sedl.cfg_reg + 3, cs->hw.sedl.reset_off); in setup_sedlbauer_pci()
677 struct IsdnCardState *cs = card->cs; in setup_sedlbauer() local
683 if (cs->typ == ISDN_CTYPE_SEDLBAUER) { in setup_sedlbauer()
684 cs->subtyp = SEDL_SPEED_CARD_WIN; in setup_sedlbauer()
685 cs->hw.sedl.bus = SEDL_BUS_ISA; in setup_sedlbauer()
686 cs->hw.sedl.chip = SEDL_CHIP_TEST; in setup_sedlbauer()
687 } else if (cs->typ == ISDN_CTYPE_SEDLBAUER_PCMCIA) { in setup_sedlbauer()
688 cs->subtyp = SEDL_SPEED_STAR; in setup_sedlbauer()
689 cs->hw.sedl.bus = SEDL_BUS_PCMCIA; in setup_sedlbauer()
690 cs->hw.sedl.chip = SEDL_CHIP_TEST; in setup_sedlbauer()
691 } else if (cs->typ == ISDN_CTYPE_SEDLBAUER_FAX) { in setup_sedlbauer()
692 cs->subtyp = SEDL_SPEED_FAX; in setup_sedlbauer()
693 cs->hw.sedl.bus = SEDL_BUS_ISA; in setup_sedlbauer()
694 cs->hw.sedl.chip = SEDL_CHIP_ISAC_ISAR; in setup_sedlbauer()
700 cs->hw.sedl.cfg_reg = card->para[1]; in setup_sedlbauer()
701 cs->irq = card->para[0]; in setup_sedlbauer()
702 if (cs->hw.sedl.chip == SEDL_CHIP_ISAC_ISAR) { in setup_sedlbauer()
726 if (cs->hw.sedl.bus != SEDL_BUS_PCMCIA && in setup_sedlbauer()
727 !request_region(cs->hw.sedl.cfg_reg, bytecnt, "sedlbauer isdn")) { in setup_sedlbauer()
731 cs->hw.sedl.cfg_reg, in setup_sedlbauer()
732 cs->hw.sedl.cfg_reg + bytecnt); in setup_sedlbauer()
738 cs->hw.sedl.cfg_reg, in setup_sedlbauer()
739 cs->hw.sedl.cfg_reg + bytecnt, in setup_sedlbauer()
740 cs->irq); in setup_sedlbauer()
742 cs->BC_Read_Reg = &ReadHSCX; in setup_sedlbauer()
743 cs->BC_Write_Reg = &WriteHSCX; in setup_sedlbauer()
744 cs->BC_Send_Data = &hscx_fill_fifo; in setup_sedlbauer()
745 cs->cardmsg = &Sedl_card_msg; in setup_sedlbauer()
752 if (cs->hw.sedl.bus != SEDL_BUS_PCI) { in setup_sedlbauer()
753 val = readreg(cs->hw.sedl.cfg_reg + SEDL_IPAC_ANY_ADR, in setup_sedlbauer()
754 cs->hw.sedl.cfg_reg + SEDL_IPAC_ANY_IPAC, IPAC_ID); in setup_sedlbauer()
758 cs->subtyp = SEDL_SPEED_WIN2_PC104; in setup_sedlbauer()
759 if (cs->hw.sedl.bus == SEDL_BUS_PCMCIA) { in setup_sedlbauer()
760 cs->subtyp = SEDL_SPEED_STAR2; in setup_sedlbauer()
762 cs->hw.sedl.chip = SEDL_CHIP_IPAC; in setup_sedlbauer()
765 if (cs->hw.sedl.chip == SEDL_CHIP_TEST) { in setup_sedlbauer()
766 cs->hw.sedl.chip = SEDL_CHIP_ISAC_HSCX; in setup_sedlbauer()
775 Sedlbauer_Types[cs->subtyp]); in setup_sedlbauer()
777 setup_isac(cs); in setup_sedlbauer()
778 if (cs->hw.sedl.chip == SEDL_CHIP_IPAC) { in setup_sedlbauer()
779 if (cs->hw.sedl.bus == SEDL_BUS_PCI) { in setup_sedlbauer()
780 cs->hw.sedl.adr = cs->hw.sedl.cfg_reg + SEDL_IPAC_PCI_ADR; in setup_sedlbauer()
781 cs->hw.sedl.isac = cs->hw.sedl.cfg_reg + SEDL_IPAC_PCI_IPAC; in setup_sedlbauer()
782 cs->hw.sedl.hscx = cs->hw.sedl.cfg_reg + SEDL_IPAC_PCI_IPAC; in setup_sedlbauer()
784 cs->hw.sedl.adr = cs->hw.sedl.cfg_reg + SEDL_IPAC_ANY_ADR; in setup_sedlbauer()
785 cs->hw.sedl.isac = cs->hw.sedl.cfg_reg + SEDL_IPAC_ANY_IPAC; in setup_sedlbauer()
786 cs->hw.sedl.hscx = cs->hw.sedl.cfg_reg + SEDL_IPAC_ANY_IPAC; in setup_sedlbauer()
788 test_and_set_bit(HW_IPAC, &cs->HW_Flags); in setup_sedlbauer()
789 cs->readisac = &ReadISAC_IPAC; in setup_sedlbauer()
790 cs->writeisac = &WriteISAC_IPAC; in setup_sedlbauer()
791 cs->readisacfifo = &ReadISACfifo_IPAC; in setup_sedlbauer()
792 cs->writeisacfifo = &WriteISACfifo_IPAC; in setup_sedlbauer()
793 cs->irq_func = &sedlbauer_interrupt_ipac; in setup_sedlbauer()
794 val = readreg(cs->hw.sedl.adr, cs->hw.sedl.isac, IPAC_ID); in setup_sedlbauer()
798 cs->readisac = &ReadISAC; in setup_sedlbauer()
799 cs->writeisac = &WriteISAC; in setup_sedlbauer()
800 cs->readisacfifo = &ReadISACfifo; in setup_sedlbauer()
801 cs->writeisacfifo = &WriteISACfifo; in setup_sedlbauer()
802 if (cs->hw.sedl.chip == SEDL_CHIP_ISAC_ISAR) { in setup_sedlbauer()
803 if (cs->hw.sedl.bus == SEDL_BUS_PCI) { in setup_sedlbauer()
804 cs->hw.sedl.adr = cs->hw.sedl.cfg_reg + in setup_sedlbauer()
806 cs->hw.sedl.isac = cs->hw.sedl.cfg_reg + in setup_sedlbauer()
808 cs->hw.sedl.hscx = cs->hw.sedl.cfg_reg + in setup_sedlbauer()
811 cs->hw.sedl.adr = cs->hw.sedl.cfg_reg + in setup_sedlbauer()
813 cs->hw.sedl.isac = cs->hw.sedl.cfg_reg + in setup_sedlbauer()
815 cs->hw.sedl.hscx = cs->hw.sedl.cfg_reg + in setup_sedlbauer()
817 cs->hw.sedl.reset_on = cs->hw.sedl.cfg_reg + in setup_sedlbauer()
819 cs->hw.sedl.reset_off = cs->hw.sedl.cfg_reg + in setup_sedlbauer()
822 cs->bcs[0].hw.isar.reg = &cs->hw.sedl.isar; in setup_sedlbauer()
823 cs->bcs[1].hw.isar.reg = &cs->hw.sedl.isar; in setup_sedlbauer()
824 test_and_set_bit(HW_ISAR, &cs->HW_Flags); in setup_sedlbauer()
825 cs->irq_func = &sedlbauer_interrupt_isar; in setup_sedlbauer()
826 cs->auxcmd = &isar_auxcmd; in setup_sedlbauer()
827 ISACVersion(cs, "Sedlbauer:"); in setup_sedlbauer()
828 cs->BC_Read_Reg = &ReadISAR; in setup_sedlbauer()
829 cs->BC_Write_Reg = &WriteISAR; in setup_sedlbauer()
830 cs->BC_Send_Data = &isar_fill_fifo; in setup_sedlbauer()
833 ver = ISARVersion(cs, "Sedlbauer:"); in setup_sedlbauer()
839 reset_sedlbauer(cs); in setup_sedlbauer()
843 release_io_sedlbauer(cs); in setup_sedlbauer()
847 if (cs->hw.sedl.bus == SEDL_BUS_PCMCIA) { in setup_sedlbauer()
848 cs->hw.sedl.adr = cs->hw.sedl.cfg_reg + SEDL_HSCX_PCMCIA_ADR; in setup_sedlbauer()
849 cs->hw.sedl.isac = cs->hw.sedl.cfg_reg + SEDL_HSCX_PCMCIA_ISAC; in setup_sedlbauer()
850 cs->hw.sedl.hscx = cs->hw.sedl.cfg_reg + SEDL_HSCX_PCMCIA_HSCX; in setup_sedlbauer()
851 cs->hw.sedl.reset_on = cs->hw.sedl.cfg_reg + SEDL_HSCX_PCMCIA_RESET; in setup_sedlbauer()
852 cs->hw.sedl.reset_off = cs->hw.sedl.cfg_reg + SEDL_HSCX_PCMCIA_RESET; in setup_sedlbauer()
853 cs->irq_flags |= IRQF_SHARED; in setup_sedlbauer()
855 cs->hw.sedl.adr = cs->hw.sedl.cfg_reg + SEDL_HSCX_ISA_ADR; in setup_sedlbauer()
856 cs->hw.sedl.isac = cs->hw.sedl.cfg_reg + SEDL_HSCX_ISA_ISAC; in setup_sedlbauer()
857 cs->hw.sedl.hscx = cs->hw.sedl.cfg_reg + SEDL_HSCX_ISA_HSCX; in setup_sedlbauer()
858 cs->hw.sedl.reset_on = cs->hw.sedl.cfg_reg + SEDL_HSCX_ISA_RESET_ON; in setup_sedlbauer()
859 cs->hw.sedl.reset_off = cs->hw.sedl.cfg_reg + SEDL_HSCX_ISA_RESET_OFF; in setup_sedlbauer()
861 cs->irq_func = &sedlbauer_interrupt; in setup_sedlbauer()
862 ISACVersion(cs, "Sedlbauer:"); in setup_sedlbauer()
864 if (HscxVersion(cs, "Sedlbauer:")) { in setup_sedlbauer()
867 release_io_sedlbauer(cs); in setup_sedlbauer()