• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/linux/linux-2.6/drivers/isdn/hisax/

Lines Matching refs:hw

179 	return (readreg(cs->hw.elsa.ale, cs->hw.elsa.isac, offset));
185 writereg(cs->hw.elsa.ale, cs->hw.elsa.isac, offset, value);
191 readfifo(cs->hw.elsa.ale, cs->hw.elsa.isac, 0, data, size);
197 writefifo(cs->hw.elsa.ale, cs->hw.elsa.isac, 0, data, size);
203 return (readreg(cs->hw.elsa.ale, cs->hw.elsa.isac, offset+0x80));
209 writereg(cs->hw.elsa.ale, cs->hw.elsa.isac, offset|0x80, value);
215 readfifo(cs->hw.elsa.ale, cs->hw.elsa.isac, 0x80, data, size);
221 writefifo(cs->hw.elsa.ale, cs->hw.elsa.isac, 0x80, data, size);
227 return (readreg(cs->hw.elsa.ale,
228 cs->hw.elsa.hscx, offset + (hscx ? 0x40 : 0)));
234 writereg(cs->hw.elsa.ale,
235 cs->hw.elsa.hscx, offset + (hscx ? 0x40 : 0), value);
243 byteout(cs->hw.elsa.ale, off);
244 ret = bytein(cs->hw.elsa.itac);
251 byteout(cs->hw.elsa.ale, off);
252 byteout(cs->hw.elsa.itac, data);
260 v = bytein(cs->hw.elsa.cfg);
271 #define READHSCX(cs, nr, reg) readreg(cs->hw.elsa.ale, \
272 cs->hw.elsa.hscx, reg + (nr ? 0x40 : 0))
273 #define WRITEHSCX(cs, nr, reg, data) writereg(cs->hw.elsa.ale, \
274 cs->hw.elsa.hscx, reg + (nr ? 0x40 : 0), data)
276 #define READHSCXFIFO(cs, nr, ptr, cnt) readfifo(cs->hw.elsa.ale, \
277 cs->hw.elsa.hscx, (nr ? 0x40 : 0), ptr, cnt)
279 #define WRITEHSCXFIFO(cs, nr, ptr, cnt) writefifo(cs->hw.elsa.ale, \
280 cs->hw.elsa.hscx, (nr ? 0x40 : 0), ptr, cnt)
300 if (cs->hw.elsa.MFlag) {
308 val = readreg(cs->hw.elsa.ale, cs->hw.elsa.hscx, HSCX_ISTA + 0x40);
313 val = readreg(cs->hw.elsa.ale, cs->hw.elsa.isac, ISAC_ISTA);
318 val = readreg(cs->hw.elsa.ale, cs->hw.elsa.hscx, HSCX_ISTA + 0x40);
325 val = readreg(cs->hw.elsa.ale, cs->hw.elsa.isac, ISAC_ISTA);
334 writereg(cs->hw.elsa.ale, cs->hw.elsa.hscx, HSCX_MASK, 0xFF);
335 writereg(cs->hw.elsa.ale, cs->hw.elsa.hscx, HSCX_MASK + 0x40, 0xFF);
336 writereg(cs->hw.elsa.ale, cs->hw.elsa.isac, ISAC_MASK, 0xFF);
337 if (cs->hw.elsa.status & ELIRQF_TIMER_AKTIV) {
340 byteout(cs->hw.elsa.timer, 0);
341 cs->hw.elsa.counter++;
345 if (cs->hw.elsa.MFlag) {
354 if (cs->hw.elsa.trig)
355 byteout(cs->hw.elsa.trig, 0x00);
356 writereg(cs->hw.elsa.ale, cs->hw.elsa.hscx, HSCX_MASK, 0x0);
357 writereg(cs->hw.elsa.ale, cs->hw.elsa.hscx, HSCX_MASK + 0x40, 0x0);
358 writereg(cs->hw.elsa.ale, cs->hw.elsa.isac, ISAC_MASK, 0x0);
373 val = bytein(cs->hw.elsa.cfg + 0x4c); /* PCI IRQ */
380 if (cs->hw.elsa.MFlag) {
388 ista = readreg(cs->hw.elsa.ale, cs->hw.elsa.isac, IPAC_ISTA);
393 val = readreg(cs->hw.elsa.ale, cs->hw.elsa.hscx, HSCX_ISTA + 0x40);
404 val = 0xfe & readreg(cs->hw.elsa.ale, cs->hw.elsa.isac, ISAC_ISTA + 0x80);
413 ista = readreg(cs->hw.elsa.ale, cs->hw.elsa.isac, IPAC_ISTA);
420 writereg(cs->hw.elsa.ale, cs->hw.elsa.isac, IPAC_MASK, 0xFF);
421 writereg(cs->hw.elsa.ale, cs->hw.elsa.isac, IPAC_MASK, 0xC0);
431 del_timer(&cs->hw.elsa.tl);
435 if (cs->hw.elsa.ctrl)
436 byteout(cs->hw.elsa.ctrl, 0); /* LEDs Out */
438 byteout(cs->hw.elsa.cfg + 0x4c, 0x01); /* disable IRQ */
439 writereg(cs->hw.elsa.ale, cs->hw.elsa.isac, IPAC_ATX, 0xff);
441 release_region(cs->hw.elsa.cfg, 0x80);
444 byteout(cs->hw.elsa.cfg + 0x4c, 0x03); /* disable ELSA PCI IRQ */
445 writereg(cs->hw.elsa.ale, cs->hw.elsa.isac, IPAC_ATX, 0xff);
446 release_region(cs->hw.elsa.cfg, 0x80);
449 writereg(cs->hw.elsa.ale, cs->hw.elsa.isac, IPAC_ATX, 0xff);
460 if (cs->hw.elsa.base)
461 release_region(cs->hw.elsa.base, bytecnt);
467 if (cs->hw.elsa.timer) {
469 byteout(cs->hw.elsa.timer, 0);
471 cs->hw.elsa.ctrl_reg |= 0x50;
472 cs->hw.elsa.ctrl_reg &= ~ELSA_ISDN_RESET; /* Reset On */
473 byteout(cs->hw.elsa.ctrl, cs->hw.elsa.ctrl_reg);
475 byteout(cs->hw.elsa.timer, 0);
477 cs->hw.elsa.ctrl_reg |= ELSA_ISDN_RESET; /* Reset Off */
478 byteout(cs->hw.elsa.ctrl, cs->hw.elsa.ctrl_reg);
480 byteout(cs->hw.elsa.timer, 0);
482 if (cs->hw.elsa.trig)
483 byteout(cs->hw.elsa.trig, 0xff);
486 writereg(cs->hw.elsa.ale, cs->hw.elsa.isac, IPAC_POTA2, 0x20);
488 writereg(cs->hw.elsa.ale, cs->hw.elsa.isac, IPAC_POTA2, 0x00);
489 writereg(cs->hw.elsa.ale, cs->hw.elsa.isac, IPAC_MASK, 0xc0);
492 writereg(cs->hw.elsa.ale, cs->hw.elsa.isac, IPAC_ACFG, 0x0);
493 writereg(cs->hw.elsa.ale, cs->hw.elsa.isac, IPAC_AOE, 0x3c);
495 writereg(cs->hw.elsa.ale, cs->hw.elsa.isac, IPAC_PCFG, 0x10);
496 writereg(cs->hw.elsa.ale, cs->hw.elsa.isac, IPAC_ACFG, 0x4);
497 writereg(cs->hw.elsa.ale, cs->hw.elsa.isac, IPAC_AOE, 0xf8);
499 writereg(cs->hw.elsa.ale, cs->hw.elsa.isac, IPAC_ATX, 0xff);
501 byteout(cs->hw.elsa.cfg + 0x4c, 0x41); /* enable ELSA PCI IRQ */
503 byteout(cs->hw.elsa.cfg + 0x4c, 0x43); /* enable ELSA PCI IRQ */
570 cs->hw.elsa.base+8);
571 release_region(cs->hw.elsa.base, 8);
572 if (!request_region(cs->hw.elsa.base, 16, "elsa isdn modem")) {
576 cs->hw.elsa.base + 8,
577 cs->hw.elsa.base + 16);
584 cs->hw.elsa.base+8);
585 release_region(cs->hw.elsa.base, 8);
586 if (!request_region(cs->hw.elsa.base, 16, "elsa isdn modem")) {
590 cs->hw.elsa.base + 8,
591 cs->hw.elsa.base + 16);
597 cs->hw.elsa.base+8);
613 del_timer(&cs->hw.elsa.tl);
614 if (cs->hw.elsa.status & ELSA_ASSIGN)
615 cs->hw.elsa.ctrl_reg |= ELSA_STAT_LED;
616 else if (cs->hw.elsa.status & ELSA_BAD_PWR)
617 cs->hw.elsa.ctrl_reg &= ~ELSA_STAT_LED;
619 cs->hw.elsa.ctrl_reg ^= ELSA_STAT_LED;
622 if (cs->hw.elsa.status & 0xf000)
623 cs->hw.elsa.ctrl_reg |= ELSA_LINE_LED;
624 else if (cs->hw.elsa.status & 0x0f00) {
625 cs->hw.elsa.ctrl_reg ^= ELSA_LINE_LED;
628 cs->hw.elsa.ctrl_reg &= ~ELSA_LINE_LED;
633 if (cs->hw.elsa.ctrl_reg & ELSA_LINE_LED)
635 if (cs->hw.elsa.ctrl_reg & ELSA_STAT_LED)
637 writereg(cs->hw.elsa.ale, cs->hw.elsa.isac, IPAC_ATX, led);
639 byteout(cs->hw.elsa.ctrl, cs->hw.elsa.ctrl_reg);
641 init_timer(&cs->hw.elsa.tl);
642 cs->hw.elsa.tl.expires = jiffies + ((blink * HZ) / 1000);
643 add_timer(&cs->hw.elsa.tl);
670 byteout(cs->hw.elsa.timer, 0);
672 if (cs->hw.elsa.trig)
673 byteout(cs->hw.elsa.trig, 0xff);
686 cs->hw.elsa.counter = 0;
687 cs->hw.elsa.ctrl_reg |= ELSA_ENA_TIMER_INT;
688 cs->hw.elsa.status |= ELIRQF_TIMER_AKTIV;
689 byteout(cs->hw.elsa.ctrl, cs->hw.elsa.ctrl_reg);
690 byteout(cs->hw.elsa.timer, 0);
694 cs->hw.elsa.ctrl_reg &= ~ELSA_ENA_TIMER_INT;
695 byteout(cs->hw.elsa.ctrl, cs->hw.elsa.ctrl_reg);
696 cs->hw.elsa.status &= ~ELIRQF_TIMER_AKTIV;
699 cs->hw.elsa.counter);
700 if ((cs->hw.elsa.counter > 10) &&
701 (cs->hw.elsa.counter < 16)) {
707 cs->hw.elsa.counter, cs->irq);
719 cs->hw.elsa.status &= 0;
722 cs->hw.elsa.status |= ELSA_ASSIGN;
726 cs->hw.elsa.status |= 0x0200;
728 cs->hw.elsa.status |= 0x0100;
732 cs->hw.elsa.status |= 0x2000;
734 cs->hw.elsa.status |= 0x1000;
738 cs->hw.elsa.status &= ~0x2000;
739 cs->hw.elsa.status &= ~0x0200;
741 cs->hw.elsa.status &= ~0x1000;
742 cs->hw.elsa.status &= ~0x0100;
747 if (cs->hw.elsa.MFlag) {
762 int pwr = bytein(cs->hw.elsa.ale);
764 cs->hw.elsa.status |= ELSA_BAD_PWR;
766 cs->hw.elsa.status &= ~ELSA_BAD_PWR;
863 cs->hw.elsa.ctrl_reg = 0;
864 cs->hw.elsa.status = 0;
865 cs->hw.elsa.MFlag = 0;
868 cs->hw.elsa.base = card->para[0];
870 if (cs->hw.elsa.base) {
871 if (!(cs->subtyp = probe_elsa_adr(cs->hw.elsa.base,
875 cs->hw.elsa.base);
879 cs->hw.elsa.base = probe_elsa(cs);
880 if (cs->hw.elsa.base) {
881 cs->hw.elsa.cfg = cs->hw.elsa.base + ELSA_CONFIG;
882 cs->hw.elsa.ctrl = cs->hw.elsa.base + ELSA_CONTROL;
883 cs->hw.elsa.ale = cs->hw.elsa.base + ELSA_ALE;
884 cs->hw.elsa.isac = cs->hw.elsa.base + ELSA_ISAC;
885 cs->hw.elsa.itac = cs->hw.elsa.base + ELSA_ITAC;
886 cs->hw.elsa.hscx = cs->hw.elsa.base + ELSA_HSCX;
887 cs->hw.elsa.trig = cs->hw.elsa.base + ELSA_TRIG_IRQ;
888 cs->hw.elsa.timer = cs->hw.elsa.base + ELSA_START_TIMER;
889 val = bytein(cs->hw.elsa.cfg);
903 val = bytein(cs->hw.elsa.ale) & ELSA_HW_RELEASE;
914 cs->hw.elsa.base,
916 val = bytein(cs->hw.elsa.ale) & ELSA_S0_POWER_BAD;
920 cs->hw.elsa.status |= ELSA_BAD_PWR;
977 cs->hw.elsa.base = card->para[1];
984 cs->hw.elsa.cfg = cs->hw.elsa.base + ELSA_CONFIG;
985 cs->hw.elsa.ale = cs->hw.elsa.base + ELSA_ALE;
986 cs->hw.elsa.isac = cs->hw.elsa.base + ELSA_ISAC;
987 cs->hw.elsa.hscx = cs->hw.elsa.base + ELSA_HSCX;
988 cs->hw.elsa.trig = cs->hw.elsa.base + ELSA_TRIG_IRQ;
989 cs->hw.elsa.timer = cs->hw.elsa.base + ELSA_START_TIMER;
990 cs->hw.elsa.ctrl = cs->hw.elsa.base + ELSA_CONTROL;
994 cs->hw.elsa.base,
997 cs->hw.elsa.base = card->para[1];
999 val = readreg(cs->hw.elsa.base + 0, cs->hw.elsa.base + 2, IPAC_ID);
1002 cs->hw.elsa.ale = cs->hw.elsa.base + 0;
1003 cs->hw.elsa.isac = cs->hw.elsa.base + 2;
1004 cs->hw.elsa.hscx = cs->hw.elsa.base + 2;
1008 cs->hw.elsa.ale = cs->hw.elsa.base + ELSA_ALE_PCM;
1009 cs->hw.elsa.isac = cs->hw.elsa.base + ELSA_ISAC_PCM;
1010 cs->hw.elsa.hscx = cs->hw.elsa.base + ELSA_HSCX;
1012 cs->hw.elsa.timer = 0;
1013 cs->hw.elsa.trig = 0;
1014 cs->hw.elsa.ctrl = 0;
1019 cs->hw.elsa.base,
1030 cs->hw.elsa.cfg = pci_resource_start(dev_qs1000, 1);
1031 cs->hw.elsa.base = pci_resource_start(dev_qs1000, 3);
1038 cs->hw.elsa.cfg = pci_resource_start(dev_qs3000, 1);
1039 cs->hw.elsa.base = pci_resource_start(dev_qs3000, 3);
1049 if (!(cs->hw.elsa.base && cs->hw.elsa.cfg)) {
1053 if ((cs->hw.elsa.cfg & 0xff) || (cs->hw.elsa.base & 0xf)) {
1058 cs->hw.elsa.ale = cs->hw.elsa.base;
1059 cs->hw.elsa.isac = cs->hw.elsa.base +1;
1060 cs->hw.elsa.hscx = cs->hw.elsa.base +1;
1062 cs->hw.elsa.timer = 0;
1063 cs->hw.elsa.trig = 0;
1068 cs->hw.elsa.base,
1069 cs->hw.elsa.cfg,
1105 if (cs->typ != ISDN_CTYPE_ELSA_PCMCIA && !request_region(cs->hw.elsa.base, bytecnt, "elsa isdn")) {
1109 cs->hw.elsa.base,
1110 cs->hw.elsa.base + bytecnt);
1114 if (!request_region(cs->hw.elsa.cfg, 0x80, "elsa isdn pci")) {
1118 cs->hw.elsa.cfg,
1119 cs->hw.elsa.cfg + 0x80);
1120 release_region(cs->hw.elsa.base, bytecnt);
1128 cs->hw.elsa.tl.function = (void *) elsa_led_handler;
1129 cs->hw.elsa.tl.data = (long) cs;
1130 init_timer(&cs->hw.elsa.tl);
1132 if (cs->hw.elsa.timer) {
1133 byteout(cs->hw.elsa.trig, 0xff);
1134 byteout(cs->hw.elsa.timer, 0);
1136 byteout(cs->hw.elsa.timer, 0); /* 2. Versuch */
1162 val = readreg(cs->hw.elsa.ale, cs->hw.elsa.isac, IPAC_ID);