tag | line | file | source code |
brdp | 301 | drivers/char/istallion.c | void (*init)(struct stlbrd *brdp); |
brdp | 302 | drivers/char/istallion.c | void (*enable)(struct stlbrd *brdp); |
brdp | 303 | drivers/char/istallion.c | void (*reenable)(struct stlbrd *brdp); |
brdp | 304 | drivers/char/istallion.c | void (*disable)(struct stlbrd *brdp); |
brdp | 305 | drivers/char/istallion.c | char *(*getmemptr)(struct stlbrd *brdp, unsigned long offset, int line); |
brdp | 306 | drivers/char/istallion.c | void (*intr)(struct stlbrd *brdp); |
brdp | 307 | drivers/char/istallion.c | void (*reset)(struct stlbrd *brdp); |
brdp | 518 | drivers/char/istallion.c | #define EBRDINIT(brdp) \ |
brdp | 519 | drivers/char/istallion.c | if (brdp->init != NULL) \ |
brdp | 520 | drivers/char/istallion.c | (* brdp->init)(brdp) |
brdp | 522 | drivers/char/istallion.c | #define EBRDENABLE(brdp) \ |
brdp | 523 | drivers/char/istallion.c | if (brdp->enable != NULL) \ |
brdp | 524 | drivers/char/istallion.c | (* brdp->enable)(brdp); |
brdp | 526 | drivers/char/istallion.c | #define EBRDDISABLE(brdp) \ |
brdp | 527 | drivers/char/istallion.c | if (brdp->disable != NULL) \ |
brdp | 528 | drivers/char/istallion.c | (* brdp->disable)(brdp); |
brdp | 530 | drivers/char/istallion.c | #define EBRDINTR(brdp) \ |
brdp | 531 | drivers/char/istallion.c | if (brdp->intr != NULL) \ |
brdp | 532 | drivers/char/istallion.c | (* brdp->intr)(brdp); |
brdp | 534 | drivers/char/istallion.c | #define EBRDRESET(brdp) \ |
brdp | 535 | drivers/char/istallion.c | if (brdp->reset != NULL) \ |
brdp | 536 | drivers/char/istallion.c | (* brdp->reset)(brdp); |
brdp | 538 | drivers/char/istallion.c | #define EBRDGETMEMPTR(brdp,offset) \ |
brdp | 539 | drivers/char/istallion.c | (* brdp->getmemptr)(brdp, offset, __LINE__) |
brdp | 603 | drivers/char/istallion.c | static int stli_initecp(stlibrd_t *brdp, stlconf_t *confp); |
brdp | 604 | drivers/char/istallion.c | static int stli_initonb(stlibrd_t *brdp, stlconf_t *confp); |
brdp | 605 | drivers/char/istallion.c | static int stli_initports(stlibrd_t *brdp); |
brdp | 606 | drivers/char/istallion.c | static int stli_startbrd(stlibrd_t *brdp); |
brdp | 611 | drivers/char/istallion.c | static int stli_hostcmd(stlibrd_t *brdp, int channr); |
brdp | 612 | drivers/char/istallion.c | static int stli_initopen(stlibrd_t *brdp, stliport_t *portp); |
brdp | 613 | drivers/char/istallion.c | static int stli_rawopen(stlibrd_t *brdp, stliport_t *portp, unsigned long arg, int wait); |
brdp | 614 | drivers/char/istallion.c | static int stli_rawclose(stlibrd_t *brdp, stliport_t *portp, unsigned long arg, int wait); |
brdp | 615 | drivers/char/istallion.c | static int stli_waitcarrier(stlibrd_t *brdp, stliport_t *portp, struct file *filp); |
brdp | 619 | drivers/char/istallion.c | static int stli_cmdwait(stlibrd_t *brdp, stliport_t *portp, unsigned long cmd, void *arg, int size, int copyback); |
brdp | 620 | drivers/char/istallion.c | static void stli_sendcmd(stlibrd_t *brdp, stliport_t *portp, unsigned long cmd, void *arg, int size, int copyback); |
brdp | 625 | drivers/char/istallion.c | static void stli_read(stlibrd_t *brdp, stliport_t *portp); |
brdp | 629 | drivers/char/istallion.c | static void stli_ecpinit(stlibrd_t *brdp); |
brdp | 630 | drivers/char/istallion.c | static void stli_ecpenable(stlibrd_t *brdp); |
brdp | 631 | drivers/char/istallion.c | static void stli_ecpdisable(stlibrd_t *brdp); |
brdp | 632 | drivers/char/istallion.c | static char *stli_ecpgetmemptr(stlibrd_t *brdp, unsigned long offset, int line); |
brdp | 633 | drivers/char/istallion.c | static void stli_ecpreset(stlibrd_t *brdp); |
brdp | 634 | drivers/char/istallion.c | static void stli_ecpintr(stlibrd_t *brdp); |
brdp | 635 | drivers/char/istallion.c | static void stli_ecpeiinit(stlibrd_t *brdp); |
brdp | 636 | drivers/char/istallion.c | static void stli_ecpeienable(stlibrd_t *brdp); |
brdp | 637 | drivers/char/istallion.c | static void stli_ecpeidisable(stlibrd_t *brdp); |
brdp | 638 | drivers/char/istallion.c | static char *stli_ecpeigetmemptr(stlibrd_t *brdp, unsigned long offset, int line); |
brdp | 639 | drivers/char/istallion.c | static void stli_ecpeireset(stlibrd_t *brdp); |
brdp | 640 | drivers/char/istallion.c | static void stli_ecpmcenable(stlibrd_t *brdp); |
brdp | 641 | drivers/char/istallion.c | static void stli_ecpmcdisable(stlibrd_t *brdp); |
brdp | 642 | drivers/char/istallion.c | static char *stli_ecpmcgetmemptr(stlibrd_t *brdp, unsigned long offset, int line); |
brdp | 643 | drivers/char/istallion.c | static void stli_ecpmcreset(stlibrd_t *brdp); |
brdp | 645 | drivers/char/istallion.c | static void stli_onbinit(stlibrd_t *brdp); |
brdp | 646 | drivers/char/istallion.c | static void stli_onbenable(stlibrd_t *brdp); |
brdp | 647 | drivers/char/istallion.c | static void stli_onbdisable(stlibrd_t *brdp); |
brdp | 648 | drivers/char/istallion.c | static char *stli_onbgetmemptr(stlibrd_t *brdp, unsigned long offset, int line); |
brdp | 649 | drivers/char/istallion.c | static void stli_onbreset(stlibrd_t *brdp); |
brdp | 650 | drivers/char/istallion.c | static void stli_onbeinit(stlibrd_t *brdp); |
brdp | 651 | drivers/char/istallion.c | static void stli_onbeenable(stlibrd_t *brdp); |
brdp | 652 | drivers/char/istallion.c | static void stli_onbedisable(stlibrd_t *brdp); |
brdp | 653 | drivers/char/istallion.c | static char *stli_onbegetmemptr(stlibrd_t *brdp, unsigned long offset, int line); |
brdp | 654 | drivers/char/istallion.c | static void stli_onbereset(stlibrd_t *brdp); |
brdp | 655 | drivers/char/istallion.c | static void stli_bbyinit(stlibrd_t *brdp); |
brdp | 656 | drivers/char/istallion.c | static char *stli_bbygetmemptr(stlibrd_t *brdp, unsigned long offset, int line); |
brdp | 657 | drivers/char/istallion.c | static void stli_bbyreset(stlibrd_t *brdp); |
brdp | 658 | drivers/char/istallion.c | static void stli_stalinit(stlibrd_t *brdp); |
brdp | 659 | drivers/char/istallion.c | static char *stli_stalgetmemptr(stlibrd_t *brdp, unsigned long offset, int line); |
brdp | 660 | drivers/char/istallion.c | static void stli_stalreset(stlibrd_t *brdp); |
brdp | 740 | drivers/char/istallion.c | stlibrd_t *brdp; |
brdp | 779 | drivers/char/istallion.c | brdp = &stli_brds[i]; |
brdp | 781 | drivers/char/istallion.c | portp = brdp->ports[j]; |
brdp | 790 | drivers/char/istallion.c | if (((unsigned long) brdp->membase) >= 0x100000) |
brdp | 791 | drivers/char/istallion.c | vfree(brdp->membase); |
brdp | 793 | drivers/char/istallion.c | if ((brdp->brdtype == BRD_ECP) || (brdp->brdtype == BRD_ECPE) || (brdp->brdtype == BRD_ECPMC)) |
brdp | 794 | drivers/char/istallion.c | release_region(brdp->iobase, ECP_IOSIZE); |
brdp | 796 | drivers/char/istallion.c | release_region(brdp->iobase, ONB_IOSIZE); |
brdp | 825 | drivers/char/istallion.c | stlibrd_t *brdp; |
brdp | 840 | drivers/char/istallion.c | brdp = &stli_brds[brdnr]; |
brdp | 841 | drivers/char/istallion.c | if ((brdp->state & BST_STARTED) == 0) |
brdp | 844 | drivers/char/istallion.c | if ((portnr < 0) || (portnr > brdp->nrports)) |
brdp | 847 | drivers/char/istallion.c | portp = brdp->ports[portnr]; |
brdp | 884 | drivers/char/istallion.c | if ((rc = stli_initopen(brdp, portp)) >= 0) { |
brdp | 929 | drivers/char/istallion.c | if ((rc = stli_waitcarrier(brdp, portp, filp)) != 0) |
brdp | 952 | drivers/char/istallion.c | stlibrd_t *brdp; |
brdp | 997 | drivers/char/istallion.c | brdp = &stli_brds[portp->brdnr]; |
brdp | 998 | drivers/char/istallion.c | stli_rawclose(brdp, portp, 0, 1); |
brdp | 1001 | drivers/char/istallion.c | stli_cmdwait(brdp, portp, A_SETSIGNALS, &portp->asig, sizeof(asysigs_t), 0); |
brdp | 1036 | drivers/char/istallion.c | static int stli_initopen(stlibrd_t *brdp, stliport_t *portp) |
brdp | 1044 | drivers/char/istallion.c | printk("stli_initopen(brdp=%x,portp=%x)\n", (int) brdp, (int) portp); |
brdp | 1047 | drivers/char/istallion.c | if ((rc = stli_rawopen(brdp, portp, 0, 1)) < 0) |
brdp | 1053 | drivers/char/istallion.c | if ((rc = stli_cmdwait(brdp, portp, A_SETNOTIFY, &nt, sizeof(asynotify_t), 0)) < 0) |
brdp | 1060 | drivers/char/istallion.c | if ((rc = stli_cmdwait(brdp, portp, A_SETPORT, &aport, sizeof(asyport_t), 0)) < 0) |
brdp | 1064 | drivers/char/istallion.c | if ((rc = stli_cmdwait(brdp, portp, A_GETSIGNALS, &portp->asig, sizeof(asysigs_t), 1)) < 0) |
brdp | 1069 | drivers/char/istallion.c | if ((rc = stli_cmdwait(brdp, portp, A_SETSIGNALS, &portp->asig, sizeof(asysigs_t), 0)) < 0) |
brdp | 1084 | drivers/char/istallion.c | static int stli_rawopen(stlibrd_t *brdp, stliport_t *portp, unsigned long arg, int wait) |
brdp | 1093 | drivers/char/istallion.c | printk("stli_rawopen(brdp=%x,portp=%x,arg=%x,wait=%d)\n", (int) brdp, (int) portp, (int) arg, wait); |
brdp | 1121 | drivers/char/istallion.c | EBRDENABLE(brdp); |
brdp | 1122 | drivers/char/istallion.c | cp = &((volatile cdkasy_t *) EBRDGETMEMPTR(brdp, portp->addr))->ctrl; |
brdp | 1125 | drivers/char/istallion.c | hdrp = (volatile cdkhdr_t *) EBRDGETMEMPTR(brdp, CDK_CDKADDR); |
brdp | 1127 | drivers/char/istallion.c | bits = ((volatile unsigned char *) hdrp) + brdp->slaveoffset + portp->portidx; |
brdp | 1129 | drivers/char/istallion.c | EBRDDISABLE(brdp); |
brdp | 1164 | drivers/char/istallion.c | static int stli_rawclose(stlibrd_t *brdp, stliport_t *portp, unsigned long arg, int wait) |
brdp | 1173 | drivers/char/istallion.c | printk("stli_rawclose(brdp=%x,portp=%x,arg=%x,wait=%d)\n", (int) brdp, (int) portp, (int) arg, wait); |
brdp | 1196 | drivers/char/istallion.c | EBRDENABLE(brdp); |
brdp | 1197 | drivers/char/istallion.c | cp = &((volatile cdkasy_t *) EBRDGETMEMPTR(brdp, portp->addr))->ctrl; |
brdp | 1200 | drivers/char/istallion.c | hdrp = (volatile cdkhdr_t *) EBRDGETMEMPTR(brdp, CDK_CDKADDR); |
brdp | 1202 | drivers/char/istallion.c | bits = ((volatile unsigned char *) hdrp) + brdp->slaveoffset + portp->portidx; |
brdp | 1204 | drivers/char/istallion.c | EBRDDISABLE(brdp); |
brdp | 1240 | drivers/char/istallion.c | static int stli_cmdwait(stlibrd_t *brdp, stliport_t *portp, unsigned long cmd, void *arg, int size, int copyback) |
brdp | 1245 | drivers/char/istallion.c | printk("stli_cmdwait(brdp=%x,portp=%x,cmd=%x,arg=%x,size=%d,copyback=%d)\n", (int) brdp, (int) portp, (int) cmd, (int) arg, size, copyback); |
brdp | 1258 | drivers/char/istallion.c | stli_sendcmd(brdp, portp, cmd, arg, size, copyback); |
brdp | 1283 | drivers/char/istallion.c | stlibrd_t *brdp; |
brdp | 1296 | drivers/char/istallion.c | brdp = &stli_brds[portp->brdnr]; |
brdp | 1299 | drivers/char/istallion.c | return(stli_cmdwait(brdp, portp, A_SETPORT, &aport, sizeof(asyport_t), 0)); |
brdp | 1329 | drivers/char/istallion.c | static int stli_waitcarrier(stlibrd_t *brdp, stliport_t *portp, struct file *filp) |
brdp | 1335 | drivers/char/istallion.c | printk("stli_waitcarrier(brdp=%x,portp=%x,filp=%x)\n", (int) brdp, (int) portp, (int) filp); |
brdp | 1349 | drivers/char/istallion.c | if ((rc = stli_cmdwait(brdp, portp, A_SETSIGNALS, &portp->asig, sizeof(asysigs_t), 0)) < 0) |
brdp | 1395 | drivers/char/istallion.c | stlibrd_t *brdp; |
brdp | 1412 | drivers/char/istallion.c | brdp = &stli_brds[portp->brdnr]; |
brdp | 1429 | drivers/char/istallion.c | EBRDENABLE(brdp); |
brdp | 1430 | drivers/char/istallion.c | ap = (volatile cdkasy_t *) EBRDGETMEMPTR(brdp, portp->addr); |
brdp | 1437 | drivers/char/istallion.c | EBRDDISABLE(brdp); |
brdp | 1451 | drivers/char/istallion.c | EBRDENABLE(brdp); |
brdp | 1452 | drivers/char/istallion.c | ap = (volatile cdkasy_t *) EBRDGETMEMPTR(brdp, portp->addr); |
brdp | 1468 | drivers/char/istallion.c | shbuf = (char *) EBRDGETMEMPTR(brdp, portp->txoffset); |
brdp | 1483 | drivers/char/istallion.c | ap = (volatile cdkasy_t *) EBRDGETMEMPTR(brdp, portp->addr); |
brdp | 1489 | drivers/char/istallion.c | hdrp = (volatile cdkhdr_t *) EBRDGETMEMPTR(brdp, CDK_CDKADDR); |
brdp | 1491 | drivers/char/istallion.c | bits = ((volatile unsigned char *) hdrp) + brdp->slaveoffset + portp->portidx; |
brdp | 1495 | drivers/char/istallion.c | EBRDDISABLE(brdp); |
brdp | 1545 | drivers/char/istallion.c | stlibrd_t *brdp; |
brdp | 1574 | drivers/char/istallion.c | brdp = &stli_brds[portp->brdnr]; |
brdp | 1578 | drivers/char/istallion.c | EBRDENABLE(brdp); |
brdp | 1580 | drivers/char/istallion.c | ap = (volatile cdkasy_t *) EBRDGETMEMPTR(brdp, portp->addr); |
brdp | 1596 | drivers/char/istallion.c | shbuf = (char *) EBRDGETMEMPTR(brdp, portp->txoffset); |
brdp | 1612 | drivers/char/istallion.c | ap = (volatile cdkasy_t *) EBRDGETMEMPTR(brdp, portp->addr); |
brdp | 1619 | drivers/char/istallion.c | hdrp = (volatile cdkhdr_t *) EBRDGETMEMPTR(brdp, CDK_CDKADDR); |
brdp | 1621 | drivers/char/istallion.c | bits = ((volatile unsigned char *) hdrp) + brdp->slaveoffset + portp->portidx; |
brdp | 1625 | drivers/char/istallion.c | EBRDDISABLE(brdp); |
brdp | 1635 | drivers/char/istallion.c | stlibrd_t *brdp; |
brdp | 1657 | drivers/char/istallion.c | brdp = &stli_brds[portp->brdnr]; |
brdp | 1661 | drivers/char/istallion.c | EBRDENABLE(brdp); |
brdp | 1662 | drivers/char/istallion.c | rp = &((volatile cdkasy_t *) EBRDGETMEMPTR(brdp, portp->addr))->txq; |
brdp | 1669 | drivers/char/istallion.c | EBRDDISABLE(brdp); |
brdp | 1693 | drivers/char/istallion.c | stlibrd_t *brdp; |
brdp | 1710 | drivers/char/istallion.c | brdp = &stli_brds[portp->brdnr]; |
brdp | 1714 | drivers/char/istallion.c | EBRDENABLE(brdp); |
brdp | 1715 | drivers/char/istallion.c | rp = &((volatile cdkasy_t *) EBRDGETMEMPTR(brdp, portp->addr))->txq; |
brdp | 1723 | drivers/char/istallion.c | EBRDDISABLE(brdp); |
brdp | 1799 | drivers/char/istallion.c | stlibrd_t *brdp; |
brdp | 1814 | drivers/char/istallion.c | brdp = &stli_brds[portp->brdnr]; |
brdp | 1824 | drivers/char/istallion.c | rc = stli_cmdwait(brdp, portp, A_BREAK, &val, sizeof(unsigned long), 0); |
brdp | 1832 | drivers/char/istallion.c | rc = stli_cmdwait(brdp, portp, A_BREAK, &val, sizeof(unsigned long), 0); |
brdp | 1847 | drivers/char/istallion.c | if ((rc = stli_cmdwait(brdp, portp, A_GETSIGNALS, &portp->asig, sizeof(asysigs_t), 1)) < 0) |
brdp | 1857 | drivers/char/istallion.c | rc = stli_cmdwait(brdp, portp, A_SETSIGNALS, &portp->asig, sizeof(asysigs_t), 0); |
brdp | 1864 | drivers/char/istallion.c | rc = stli_cmdwait(brdp, portp, A_SETSIGNALS, &portp->asig, sizeof(asysigs_t), 0); |
brdp | 1871 | drivers/char/istallion.c | rc = stli_cmdwait(brdp, portp, A_SETSIGNALS, &portp->asig, sizeof(asysigs_t), 0); |
brdp | 1907 | drivers/char/istallion.c | stlibrd_t *brdp; |
brdp | 1922 | drivers/char/istallion.c | brdp = &stli_brds[portp->brdnr]; |
brdp | 1929 | drivers/char/istallion.c | stli_cmdwait(brdp, portp, A_SETPORT, &aport, sizeof(asyport_t), 0); |
brdp | 1931 | drivers/char/istallion.c | stli_cmdwait(brdp, portp, A_SETSIGNALS, &portp->asig, sizeof(asysigs_t), 0); |
brdp | 2001 | drivers/char/istallion.c | stlibrd_t *brdp; |
brdp | 2016 | drivers/char/istallion.c | brdp = &stli_brds[portp->brdnr]; |
brdp | 2021 | drivers/char/istallion.c | stli_cmdwait(brdp, portp, A_PORTCTRL, &actrl, sizeof(asyctrl_t)); |
brdp | 2034 | drivers/char/istallion.c | stlibrd_t *brdp; |
brdp | 2048 | drivers/char/istallion.c | brdp = &stli_brds[portp->brdnr]; |
brdp | 2053 | drivers/char/istallion.c | stli_cmdwait(brdp, portp, A_PORTCTRL, &actrl, sizeof(asyctrl_t)); |
brdp | 2096 | drivers/char/istallion.c | stlibrd_t *brdp; |
brdp | 2110 | drivers/char/istallion.c | brdp = &stli_brds[portp->brdnr]; |
brdp | 2117 | drivers/char/istallion.c | stli_rawclose(brdp, portp, 0, 0); |
brdp | 2125 | drivers/char/istallion.c | stli_sendcmd(brdp, portp, A_SETSIGNALSF, &portp->asig, sizeof(asysigs_t), 0); |
brdp | 2152 | drivers/char/istallion.c | stlibrd_t *brdp; |
brdp | 2166 | drivers/char/istallion.c | brdp = &stli_brds[portp->brdnr]; |
brdp | 2183 | drivers/char/istallion.c | stli_sendcmd(brdp, portp, A_FLUSH, &ftype, sizeof(unsigned long), 0); |
brdp | 2204 | drivers/char/istallion.c | static void stli_sendcmd(stlibrd_t *brdp, stliport_t *portp, unsigned long cmd, void *arg, int size, int copyback) |
brdp | 2212 | drivers/char/istallion.c | printk("stli_sendcmd(brdp=%x,portp=%x,cmd=%x,arg=%x,size=%d,copyback=%d)\n", (int) brdp, (int) portp, (int) cmd, (int) arg, size, copyback); |
brdp | 2222 | drivers/char/istallion.c | EBRDENABLE(brdp); |
brdp | 2223 | drivers/char/istallion.c | cp = &((volatile cdkasy_t *) EBRDGETMEMPTR(brdp, portp->addr))->ctrl; |
brdp | 2233 | drivers/char/istallion.c | hdrp = (volatile cdkhdr_t *) EBRDGETMEMPTR(brdp, CDK_CDKADDR); |
brdp | 2235 | drivers/char/istallion.c | bits = ((volatile unsigned char *) hdrp) + brdp->slaveoffset + portp->portidx; |
brdp | 2238 | drivers/char/istallion.c | EBRDDISABLE(brdp); |
brdp | 2252 | drivers/char/istallion.c | static inline void stli_read(stlibrd_t *brdp, stliport_t *portp) |
brdp | 2261 | drivers/char/istallion.c | printk("stli_read(brdp=%x,portp=%d)\n", (int) brdp, (int) portp); |
brdp | 2270 | drivers/char/istallion.c | rp = &((volatile cdkasy_t *) EBRDGETMEMPTR(brdp, portp->addr))->rxq; |
brdp | 2285 | drivers/char/istallion.c | shbuf = (volatile char *) EBRDGETMEMPTR(brdp, portp->rxoffset); |
brdp | 2302 | drivers/char/istallion.c | rp = &((volatile cdkasy_t *) EBRDGETMEMPTR(brdp, portp->addr))->rxq; |
brdp | 2361 | drivers/char/istallion.c | static inline int stli_hostcmd(stlibrd_t *brdp, int channr) |
brdp | 2372 | drivers/char/istallion.c | printk("stli_hostcmd(brdp=%x,channr=%d)\n", (int) brdp, channr); |
brdp | 2375 | drivers/char/istallion.c | portp = brdp->ports[(channr - 1)]; |
brdp | 2376 | drivers/char/istallion.c | ap = (volatile cdkasy_t *) EBRDGETMEMPTR(brdp, portp->addr); |
brdp | 2484 | drivers/char/istallion.c | stli_read(brdp, portp); |
brdp | 2498 | drivers/char/istallion.c | stli_read(brdp, portp); |
brdp | 2521 | drivers/char/istallion.c | stlibrd_t *brdp; |
brdp | 2532 | drivers/char/istallion.c | brdp = &stli_brds[brdnr]; |
brdp | 2533 | drivers/char/istallion.c | if ((brdp->state & BST_STARTED) == 0) |
brdp | 2536 | drivers/char/istallion.c | EBRDENABLE(brdp); |
brdp | 2537 | drivers/char/istallion.c | hdrp = (volatile cdkhdr_t *) EBRDGETMEMPTR(brdp, CDK_CDKADDR); |
brdp | 2540 | drivers/char/istallion.c | bitsize = brdp->bitsize; |
brdp | 2541 | drivers/char/istallion.c | nrdevs = brdp->nrdevs; |
brdp | 2551 | drivers/char/istallion.c | memcpy(&bits[0], (((unsigned char *) hdrp) + brdp->hostoffset), bitsize); |
brdp | 2559 | drivers/char/istallion.c | stli_hostcmd(brdp, channr); |
brdp | 2573 | drivers/char/istallion.c | memcpy(&bits[0], (((unsigned char *) hdrp) + brdp->slaveoffset), bitsize); |
brdp | 2581 | drivers/char/istallion.c | portp = brdp->ports[(channr - 1)]; |
brdp | 2596 | drivers/char/istallion.c | memcpy((((unsigned char *) hdrp) + brdp->slaveoffset), &bits[0], bitsize); |
brdp | 2599 | drivers/char/istallion.c | EBRDDISABLE(brdp); |
brdp | 2761 | drivers/char/istallion.c | static int stli_initports(stlibrd_t *brdp) |
brdp | 2767 | drivers/char/istallion.c | printk("stli_initports(brdp=%x)\n", (int) brdp); |
brdp | 2770 | drivers/char/istallion.c | for (i = 0, panelnr = 0, panelport = 0; (i < brdp->nrports); i++) { |
brdp | 2779 | drivers/char/istallion.c | portp->brdnr = brdp->brdnr; |
brdp | 2789 | drivers/char/istallion.c | if (panelport >= brdp->panels[panelnr]) { |
brdp | 2793 | drivers/char/istallion.c | brdp->ports[i] = portp; |
brdp | 2805 | drivers/char/istallion.c | static void stli_ecpinit(stlibrd_t *brdp) |
brdp | 2810 | drivers/char/istallion.c | printk("stli_ecpinit(brdp=%d)\n", (int) brdp); |
brdp | 2813 | drivers/char/istallion.c | outb(ECP_ATSTOP, (brdp->iobase + ECP_ATCONFR)); |
brdp | 2815 | drivers/char/istallion.c | outb(ECP_ATDISABLE, (brdp->iobase + ECP_ATCONFR)); |
brdp | 2818 | drivers/char/istallion.c | memconf = (((unsigned long) brdp->membase) & ECP_ATADDRMASK) >> ECP_ATADDRSHFT; |
brdp | 2819 | drivers/char/istallion.c | outb(memconf, (brdp->iobase + ECP_ATMEMAR)); |
brdp | 2824 | drivers/char/istallion.c | static void stli_ecpenable(stlibrd_t *brdp) |
brdp | 2827 | drivers/char/istallion.c | printk("stli_ecpenable(brdp=%x)\n", (int) brdp); |
brdp | 2829 | drivers/char/istallion.c | outb(ECP_ATENABLE, (brdp->iobase + ECP_ATCONFR)); |
brdp | 2834 | drivers/char/istallion.c | static void stli_ecpdisable(stlibrd_t *brdp) |
brdp | 2837 | drivers/char/istallion.c | printk("stli_ecpdisable(brdp=%x)\n", (int) brdp); |
brdp | 2839 | drivers/char/istallion.c | outb(ECP_ATDISABLE, (brdp->iobase + ECP_ATCONFR)); |
brdp | 2844 | drivers/char/istallion.c | static char *stli_ecpgetmemptr(stlibrd_t *brdp, unsigned long offset, int line) |
brdp | 2850 | drivers/char/istallion.c | printk("stli_ecpgetmemptr(brdp=%x,offset=%x)\n", (int) brdp, (int) offset); |
brdp | 2853 | drivers/char/istallion.c | if (offset > brdp->memsize) { |
brdp | 2854 | drivers/char/istallion.c | printk("STALLION: shared memory pointer=%x out of range at line=%d(%d), brd=%d\n", (int) offset, line, __LINE__, brdp->brdnr); |
brdp | 2858 | drivers/char/istallion.c | ptr = brdp->membase + (offset % ECP_ATPAGESIZE); |
brdp | 2861 | drivers/char/istallion.c | outb(val, (brdp->iobase + ECP_ATMEMPR)); |
brdp | 2867 | drivers/char/istallion.c | static void stli_ecpreset(stlibrd_t *brdp) |
brdp | 2870 | drivers/char/istallion.c | printk("stli_ecpreset(brdp=%x)\n", (int) brdp); |
brdp | 2873 | drivers/char/istallion.c | outb(ECP_ATSTOP, (brdp->iobase + ECP_ATCONFR)); |
brdp | 2875 | drivers/char/istallion.c | outb(ECP_ATDISABLE, (brdp->iobase + ECP_ATCONFR)); |
brdp | 2881 | drivers/char/istallion.c | static void stli_ecpintr(stlibrd_t *brdp) |
brdp | 2884 | drivers/char/istallion.c | printk("stli_ecpintr(brdp=%x)\n", (int) brdp); |
brdp | 2886 | drivers/char/istallion.c | outb(0x1, brdp->iobase); |
brdp | 2895 | drivers/char/istallion.c | static void stli_ecpeiinit(stlibrd_t *brdp) |
brdp | 2900 | drivers/char/istallion.c | printk("stli_ecpeiinit(brdp=%x)\n", (int) brdp); |
brdp | 2903 | drivers/char/istallion.c | outb(0x1, (brdp->iobase + ECP_EIBRDENAB)); |
brdp | 2904 | drivers/char/istallion.c | outb(ECP_EISTOP, (brdp->iobase + ECP_EICONFR)); |
brdp | 2906 | drivers/char/istallion.c | outb(ECP_EIDISABLE, (brdp->iobase + ECP_EICONFR)); |
brdp | 2909 | drivers/char/istallion.c | memconf = (((unsigned long) brdp->membase) & ECP_EIADDRMASKL) >> ECP_EIADDRSHFTL; |
brdp | 2910 | drivers/char/istallion.c | outb(memconf, (brdp->iobase + ECP_EIMEMARL)); |
brdp | 2911 | drivers/char/istallion.c | memconf = (((unsigned long) brdp->membase) & ECP_EIADDRMASKH) >> ECP_EIADDRSHFTH; |
brdp | 2912 | drivers/char/istallion.c | outb(memconf, (brdp->iobase + ECP_EIMEMARH)); |
brdp | 2917 | drivers/char/istallion.c | static void stli_ecpeienable(stlibrd_t *brdp) |
brdp | 2919 | drivers/char/istallion.c | outb(ECP_EIENABLE, (brdp->iobase + ECP_EICONFR)); |
brdp | 2924 | drivers/char/istallion.c | static void stli_ecpeidisable(stlibrd_t *brdp) |
brdp | 2926 | drivers/char/istallion.c | outb(ECP_EIDISABLE, (brdp->iobase + ECP_EICONFR)); |
brdp | 2931 | drivers/char/istallion.c | static char *stli_ecpeigetmemptr(stlibrd_t *brdp, unsigned long offset, int line) |
brdp | 2937 | drivers/char/istallion.c | printk("stli_ecpeigetmemptr(brdp=%x,offset=%x,line=%d)\n", (int) brdp, (int) offset, line); |
brdp | 2940 | drivers/char/istallion.c | if (offset > brdp->memsize) { |
brdp | 2941 | drivers/char/istallion.c | printk("STALLION: shared memory pointer=%x out of range at line=%d(%d), brd=%d\n", (int) offset, line, __LINE__, brdp->brdnr); |
brdp | 2945 | drivers/char/istallion.c | ptr = brdp->membase + (offset % ECP_EIPAGESIZE); |
brdp | 2951 | drivers/char/istallion.c | outb(val, (brdp->iobase + ECP_EICONFR)); |
brdp | 2957 | drivers/char/istallion.c | static void stli_ecpeireset(stlibrd_t *brdp) |
brdp | 2959 | drivers/char/istallion.c | outb(ECP_EISTOP, (brdp->iobase + ECP_EICONFR)); |
brdp | 2961 | drivers/char/istallion.c | outb(ECP_EIDISABLE, (brdp->iobase + ECP_EICONFR)); |
brdp | 2971 | drivers/char/istallion.c | static void stli_ecpmcenable(stlibrd_t *brdp) |
brdp | 2973 | drivers/char/istallion.c | outb(ECP_MCENABLE, (brdp->iobase + ECP_MCCONFR)); |
brdp | 2978 | drivers/char/istallion.c | static void stli_ecpmcdisable(stlibrd_t *brdp) |
brdp | 2980 | drivers/char/istallion.c | outb(ECP_MCDISABLE, (brdp->iobase + ECP_MCCONFR)); |
brdp | 2985 | drivers/char/istallion.c | static char *stli_ecpmcgetmemptr(stlibrd_t *brdp, unsigned long offset, int line) |
brdp | 2990 | drivers/char/istallion.c | if (offset > brdp->memsize) { |
brdp | 2991 | drivers/char/istallion.c | printk("STALLION: shared memory pointer=%x out of range at line=%d(%d), brd=%d\n", (int) offset, line, __LINE__, brdp->brdnr); |
brdp | 2995 | drivers/char/istallion.c | ptr = brdp->membase + (offset % ECP_MCPAGESIZE); |
brdp | 2998 | drivers/char/istallion.c | outb(val, (brdp->iobase + ECP_MCCONFR)); |
brdp | 3004 | drivers/char/istallion.c | static void stli_ecpmcreset(stlibrd_t *brdp) |
brdp | 3006 | drivers/char/istallion.c | outb(ECP_MCSTOP, (brdp->iobase + ECP_MCCONFR)); |
brdp | 3008 | drivers/char/istallion.c | outb(ECP_MCDISABLE, (brdp->iobase + ECP_MCCONFR)); |
brdp | 3018 | drivers/char/istallion.c | static void stli_onbinit(stlibrd_t *brdp) |
brdp | 3024 | drivers/char/istallion.c | printk("stli_onbinit(brdp=%d)\n", (int) brdp); |
brdp | 3027 | drivers/char/istallion.c | outb(ONB_ATSTOP, (brdp->iobase + ONB_ATCONFR)); |
brdp | 3029 | drivers/char/istallion.c | outb(ONB_ATDISABLE, (brdp->iobase + ONB_ATCONFR)); |
brdp | 3033 | drivers/char/istallion.c | memconf = (((unsigned long) brdp->membase) & ONB_ATADDRMASK) >> ONB_ATADDRSHFT; |
brdp | 3034 | drivers/char/istallion.c | outb(memconf, (brdp->iobase + ONB_ATMEMAR)); |
brdp | 3035 | drivers/char/istallion.c | outb(0x1, brdp->iobase); |
brdp | 3041 | drivers/char/istallion.c | static void stli_onbenable(stlibrd_t *brdp) |
brdp | 3044 | drivers/char/istallion.c | printk("stli_onbenable(brdp=%x)\n", (int) brdp); |
brdp | 3046 | drivers/char/istallion.c | outb((ONB_ATENABLE | ONB_HIMEMENAB), (brdp->iobase + ONB_ATCONFR)); |
brdp | 3051 | drivers/char/istallion.c | static void stli_onbdisable(stlibrd_t *brdp) |
brdp | 3054 | drivers/char/istallion.c | printk("stli_onbdisable(brdp=%x)\n", (int) brdp); |
brdp | 3056 | drivers/char/istallion.c | outb(ONB_ATDISABLE, (brdp->iobase + ONB_ATCONFR)); |
brdp | 3061 | drivers/char/istallion.c | static char *stli_onbgetmemptr(stlibrd_t *brdp, unsigned long offset, int line) |
brdp | 3066 | drivers/char/istallion.c | printk("stli_onbgetmemptr(brdp=%x,offset=%x)\n", (int) brdp, (int) offset); |
brdp | 3069 | drivers/char/istallion.c | if (offset > brdp->memsize) { |
brdp | 3070 | drivers/char/istallion.c | printk("STALLION: shared memory pointer=%x out of range at line=%d(%d), brd=%d\n", (int) offset, line, __LINE__, brdp->brdnr); |
brdp | 3073 | drivers/char/istallion.c | ptr = brdp->membase + (offset % ONB_ATPAGESIZE); |
brdp | 3080 | drivers/char/istallion.c | static void stli_onbreset(stlibrd_t *brdp) |
brdp | 3085 | drivers/char/istallion.c | printk("stli_onbreset(brdp=%x)\n", (int) brdp); |
brdp | 3088 | drivers/char/istallion.c | outb(ONB_ATSTOP, (brdp->iobase + ONB_ATCONFR)); |
brdp | 3090 | drivers/char/istallion.c | outb(ONB_ATDISABLE, (brdp->iobase + ONB_ATCONFR)); |
brdp | 3101 | drivers/char/istallion.c | static void stli_onbeinit(stlibrd_t *brdp) |
brdp | 3107 | drivers/char/istallion.c | printk("stli_onbeinit(brdp=%d)\n", (int) brdp); |
brdp | 3110 | drivers/char/istallion.c | outb(0x1, (brdp->iobase + ONB_EIBRDENAB)); |
brdp | 3111 | drivers/char/istallion.c | outb(ONB_EISTOP, (brdp->iobase + ONB_EICONFR)); |
brdp | 3113 | drivers/char/istallion.c | outb(ONB_EIDISABLE, (brdp->iobase + ONB_EICONFR)); |
brdp | 3117 | drivers/char/istallion.c | memconf = (((unsigned long) brdp->membase) & ONB_EIADDRMASKL) >> ONB_EIADDRSHFTL; |
brdp | 3118 | drivers/char/istallion.c | outb(memconf, (brdp->iobase + ONB_EIMEMARL)); |
brdp | 3119 | drivers/char/istallion.c | memconf = (((unsigned long) brdp->membase) & ONB_EIADDRMASKH) >> ONB_EIADDRSHFTH; |
brdp | 3120 | drivers/char/istallion.c | outb(memconf, (brdp->iobase + ONB_EIMEMARH)); |
brdp | 3121 | drivers/char/istallion.c | outb(0x1, brdp->iobase); |
brdp | 3127 | drivers/char/istallion.c | static void stli_onbeenable(stlibrd_t *brdp) |
brdp | 3130 | drivers/char/istallion.c | printk("stli_onbeenable(brdp=%x)\n", (int) brdp); |
brdp | 3132 | drivers/char/istallion.c | outb(ONB_EIENABLE, (brdp->iobase + ONB_EICONFR)); |
brdp | 3137 | drivers/char/istallion.c | static void stli_onbedisable(stlibrd_t *brdp) |
brdp | 3140 | drivers/char/istallion.c | printk("stli_onbedisable(brdp=%x)\n", (int) brdp); |
brdp | 3142 | drivers/char/istallion.c | outb(ONB_EIDISABLE, (brdp->iobase + ONB_EICONFR)); |
brdp | 3147 | drivers/char/istallion.c | static char *stli_onbegetmemptr(stlibrd_t *brdp, unsigned long offset, int line) |
brdp | 3153 | drivers/char/istallion.c | printk("stli_onbegetmemptr(brdp=%x,offset=%x,line=%d)\n", (int) brdp, (int) offset, line); |
brdp | 3156 | drivers/char/istallion.c | if (offset > brdp->memsize) { |
brdp | 3157 | drivers/char/istallion.c | printk("STALLION: shared memory pointer=%x out of range at line=%d(%d), brd=%d\n", (int) offset, line, __LINE__, brdp->brdnr); |
brdp | 3161 | drivers/char/istallion.c | ptr = brdp->membase + (offset % ONB_EIPAGESIZE); |
brdp | 3167 | drivers/char/istallion.c | outb(val, (brdp->iobase + ONB_EICONFR)); |
brdp | 3173 | drivers/char/istallion.c | static void stli_onbereset(stlibrd_t *brdp) |
brdp | 3178 | drivers/char/istallion.c | printk("stli_onbereset(brdp=%x)\n", (int) brdp); |
brdp | 3181 | drivers/char/istallion.c | outb(ONB_EISTOP, (brdp->iobase + ONB_EICONFR)); |
brdp | 3183 | drivers/char/istallion.c | outb(ONB_EIDISABLE, (brdp->iobase + ONB_EICONFR)); |
brdp | 3194 | drivers/char/istallion.c | static void stli_bbyinit(stlibrd_t *brdp) |
brdp | 3199 | drivers/char/istallion.c | printk("stli_bbyinit(brdp=%d)\n", (int) brdp); |
brdp | 3202 | drivers/char/istallion.c | outb(BBY_ATSTOP, (brdp->iobase + BBY_ATCONFR)); |
brdp | 3204 | drivers/char/istallion.c | outb(0, (brdp->iobase + BBY_ATCONFR)); |
brdp | 3207 | drivers/char/istallion.c | outb(0x1, brdp->iobase); |
brdp | 3213 | drivers/char/istallion.c | static char *stli_bbygetmemptr(stlibrd_t *brdp, unsigned long offset, int line) |
brdp | 3219 | drivers/char/istallion.c | printk("stli_bbygetmemptr(brdp=%x,offset=%x)\n", (int) brdp, (int) offset); |
brdp | 3222 | drivers/char/istallion.c | if (offset > brdp->memsize) { |
brdp | 3223 | drivers/char/istallion.c | printk("STALLION: shared memory pointer=%x out of range at line=%d(%d), brd=%d\n", (int) offset, line, __LINE__, brdp->brdnr); |
brdp | 3227 | drivers/char/istallion.c | ptr = brdp->membase + (offset % BBY_PAGESIZE); |
brdp | 3230 | drivers/char/istallion.c | outb(val, (brdp->iobase + BBY_ATCONFR)); |
brdp | 3236 | drivers/char/istallion.c | static void stli_bbyreset(stlibrd_t *brdp) |
brdp | 3241 | drivers/char/istallion.c | printk("stli_bbyreset(brdp=%x)\n", (int) brdp); |
brdp | 3244 | drivers/char/istallion.c | outb(BBY_ATSTOP, (brdp->iobase + BBY_ATCONFR)); |
brdp | 3246 | drivers/char/istallion.c | outb(0, (brdp->iobase + BBY_ATCONFR)); |
brdp | 3257 | drivers/char/istallion.c | static void stli_stalinit(stlibrd_t *brdp) |
brdp | 3262 | drivers/char/istallion.c | printk("stli_stalinit(brdp=%d)\n", (int) brdp); |
brdp | 3265 | drivers/char/istallion.c | outb(0x1, brdp->iobase); |
brdp | 3272 | drivers/char/istallion.c | static char *stli_stalgetmemptr(stlibrd_t *brdp, unsigned long offset, int line) |
brdp | 3277 | drivers/char/istallion.c | printk("stli_stalgetmemptr(brdp=%x,offset=%x)\n", (int) brdp, (int) offset); |
brdp | 3280 | drivers/char/istallion.c | if (offset > brdp->memsize) { |
brdp | 3281 | drivers/char/istallion.c | printk("STALLION: shared memory pointer=%x out of range at line=%d(%d), brd=%d\n", (int) offset, line, __LINE__, brdp->brdnr); |
brdp | 3284 | drivers/char/istallion.c | ptr = brdp->membase + (offset % STAL_PAGESIZE); |
brdp | 3291 | drivers/char/istallion.c | static void stli_stalreset(stlibrd_t *brdp) |
brdp | 3297 | drivers/char/istallion.c | printk("stli_stalreset(brdp=%x)\n", (int) brdp); |
brdp | 3300 | drivers/char/istallion.c | vecp = (volatile unsigned long *) (brdp->membase + 0x30); |
brdp | 3302 | drivers/char/istallion.c | outb(0, brdp->iobase); |
brdp | 3348 | drivers/char/istallion.c | static int stli_initecp(stlibrd_t *brdp, stlconf_t *confp) |
brdp | 3356 | drivers/char/istallion.c | printk("stli_initecp(brdp=%x,confp=%x)\n", (int) brdp, (int) confp); |
brdp | 3364 | drivers/char/istallion.c | switch (brdp->brdtype) { |
brdp | 3366 | drivers/char/istallion.c | brdp->iobase = confp->ioaddr1; |
brdp | 3367 | drivers/char/istallion.c | brdp->membase = (void *) confp->memaddr; |
brdp | 3368 | drivers/char/istallion.c | brdp->memsize = ECP_MEMSIZE; |
brdp | 3369 | drivers/char/istallion.c | brdp->pagesize = ECP_ATPAGESIZE; |
brdp | 3370 | drivers/char/istallion.c | brdp->init = stli_ecpinit; |
brdp | 3371 | drivers/char/istallion.c | brdp->enable = stli_ecpenable; |
brdp | 3372 | drivers/char/istallion.c | brdp->reenable = stli_ecpenable; |
brdp | 3373 | drivers/char/istallion.c | brdp->disable = stli_ecpdisable; |
brdp | 3374 | drivers/char/istallion.c | brdp->getmemptr = stli_ecpgetmemptr; |
brdp | 3375 | drivers/char/istallion.c | brdp->intr = stli_ecpintr; |
brdp | 3376 | drivers/char/istallion.c | brdp->reset = stli_ecpreset; |
brdp | 3380 | drivers/char/istallion.c | brdp->iobase = confp->ioaddr1; |
brdp | 3381 | drivers/char/istallion.c | brdp->membase = (void *) confp->memaddr; |
brdp | 3382 | drivers/char/istallion.c | brdp->memsize = ECP_MEMSIZE; |
brdp | 3383 | drivers/char/istallion.c | brdp->pagesize = ECP_EIPAGESIZE; |
brdp | 3384 | drivers/char/istallion.c | brdp->init = stli_ecpeiinit; |
brdp | 3385 | drivers/char/istallion.c | brdp->enable = stli_ecpeienable; |
brdp | 3386 | drivers/char/istallion.c | brdp->reenable = stli_ecpeienable; |
brdp | 3387 | drivers/char/istallion.c | brdp->disable = stli_ecpeidisable; |
brdp | 3388 | drivers/char/istallion.c | brdp->getmemptr = stli_ecpeigetmemptr; |
brdp | 3389 | drivers/char/istallion.c | brdp->intr = stli_ecpintr; |
brdp | 3390 | drivers/char/istallion.c | brdp->reset = stli_ecpeireset; |
brdp | 3394 | drivers/char/istallion.c | brdp->memsize = ECP_MEMSIZE; |
brdp | 3395 | drivers/char/istallion.c | brdp->membase = (void *) confp->memaddr; |
brdp | 3396 | drivers/char/istallion.c | brdp->pagesize = ECP_MCPAGESIZE; |
brdp | 3397 | drivers/char/istallion.c | brdp->iobase = confp->ioaddr1; |
brdp | 3398 | drivers/char/istallion.c | brdp->init = NULL; |
brdp | 3399 | drivers/char/istallion.c | brdp->enable = stli_ecpmcenable; |
brdp | 3400 | drivers/char/istallion.c | brdp->reenable = stli_ecpmcenable; |
brdp | 3401 | drivers/char/istallion.c | brdp->disable = stli_ecpmcdisable; |
brdp | 3402 | drivers/char/istallion.c | brdp->getmemptr = stli_ecpmcgetmemptr; |
brdp | 3403 | drivers/char/istallion.c | brdp->intr = stli_ecpintr; |
brdp | 3404 | drivers/char/istallion.c | brdp->reset = stli_ecpmcreset; |
brdp | 3417 | drivers/char/istallion.c | EBRDINIT(brdp); |
brdp | 3421 | drivers/char/istallion.c | brdp->membase = stli_mapbrdmem(confp->memaddr, brdp->memsize); |
brdp | 3422 | drivers/char/istallion.c | if (brdp->membase == (void *) NULL) |
brdp | 3432 | drivers/char/istallion.c | EBRDENABLE(brdp); |
brdp | 3433 | drivers/char/istallion.c | sigsp = (cdkecpsig_t *) EBRDGETMEMPTR(brdp, CDK_SIGADDR); |
brdp | 3435 | drivers/char/istallion.c | EBRDDISABLE(brdp); |
brdp | 3457 | drivers/char/istallion.c | brdp->panels[panelnr] = 16; |
brdp | 3458 | drivers/char/istallion.c | brdp->nrports += 16; |
brdp | 3461 | drivers/char/istallion.c | brdp->panels[panelnr] = 8; |
brdp | 3462 | drivers/char/istallion.c | brdp->nrports += 8; |
brdp | 3465 | drivers/char/istallion.c | brdp->nrpanels++; |
brdp | 3468 | drivers/char/istallion.c | request_region(brdp->iobase, ECP_IOSIZE, "serial(ECP)"); |
brdp | 3469 | drivers/char/istallion.c | brdp->state |= BST_FOUND; |
brdp | 3480 | drivers/char/istallion.c | static int stli_initonb(stlibrd_t *brdp, stlconf_t *confp) |
brdp | 3487 | drivers/char/istallion.c | printk("stli_initonb(brdp=%x,confp=%x)\n", (int) brdp, (int) confp); |
brdp | 3495 | drivers/char/istallion.c | switch (brdp->brdtype) { |
brdp | 3501 | drivers/char/istallion.c | brdp->iobase = confp->ioaddr1; |
brdp | 3502 | drivers/char/istallion.c | brdp->membase = (void *) confp->memaddr; |
brdp | 3503 | drivers/char/istallion.c | brdp->memsize = ONB_MEMSIZE; |
brdp | 3504 | drivers/char/istallion.c | brdp->pagesize = ONB_ATPAGESIZE; |
brdp | 3505 | drivers/char/istallion.c | brdp->init = stli_onbinit; |
brdp | 3506 | drivers/char/istallion.c | brdp->enable = stli_onbenable; |
brdp | 3507 | drivers/char/istallion.c | brdp->reenable = stli_onbenable; |
brdp | 3508 | drivers/char/istallion.c | brdp->disable = stli_onbdisable; |
brdp | 3509 | drivers/char/istallion.c | brdp->getmemptr = stli_onbgetmemptr; |
brdp | 3510 | drivers/char/istallion.c | brdp->intr = stli_ecpintr; |
brdp | 3511 | drivers/char/istallion.c | brdp->reset = stli_onbreset; |
brdp | 3515 | drivers/char/istallion.c | brdp->iobase = confp->ioaddr1; |
brdp | 3516 | drivers/char/istallion.c | brdp->membase = (void *) confp->memaddr; |
brdp | 3517 | drivers/char/istallion.c | brdp->memsize = ONB_EIMEMSIZE; |
brdp | 3518 | drivers/char/istallion.c | brdp->pagesize = ONB_EIPAGESIZE; |
brdp | 3519 | drivers/char/istallion.c | brdp->init = stli_onbeinit; |
brdp | 3520 | drivers/char/istallion.c | brdp->enable = stli_onbeenable; |
brdp | 3521 | drivers/char/istallion.c | brdp->reenable = stli_onbeenable; |
brdp | 3522 | drivers/char/istallion.c | brdp->disable = stli_onbedisable; |
brdp | 3523 | drivers/char/istallion.c | brdp->getmemptr = stli_onbegetmemptr; |
brdp | 3524 | drivers/char/istallion.c | brdp->intr = stli_ecpintr; |
brdp | 3525 | drivers/char/istallion.c | brdp->reset = stli_onbereset; |
brdp | 3531 | drivers/char/istallion.c | brdp->iobase = confp->ioaddr1; |
brdp | 3532 | drivers/char/istallion.c | brdp->membase = (void *) confp->memaddr; |
brdp | 3533 | drivers/char/istallion.c | brdp->memsize = BBY_MEMSIZE; |
brdp | 3534 | drivers/char/istallion.c | brdp->pagesize = BBY_PAGESIZE; |
brdp | 3535 | drivers/char/istallion.c | brdp->init = stli_bbyinit; |
brdp | 3536 | drivers/char/istallion.c | brdp->enable = NULL; |
brdp | 3537 | drivers/char/istallion.c | brdp->reenable = NULL; |
brdp | 3538 | drivers/char/istallion.c | brdp->disable = NULL; |
brdp | 3539 | drivers/char/istallion.c | brdp->getmemptr = stli_bbygetmemptr; |
brdp | 3540 | drivers/char/istallion.c | brdp->intr = stli_ecpintr; |
brdp | 3541 | drivers/char/istallion.c | brdp->reset = stli_bbyreset; |
brdp | 3545 | drivers/char/istallion.c | brdp->iobase = confp->ioaddr1; |
brdp | 3546 | drivers/char/istallion.c | brdp->membase = (void *) confp->memaddr; |
brdp | 3547 | drivers/char/istallion.c | brdp->memsize = STAL_MEMSIZE; |
brdp | 3548 | drivers/char/istallion.c | brdp->pagesize = STAL_PAGESIZE; |
brdp | 3549 | drivers/char/istallion.c | brdp->init = stli_stalinit; |
brdp | 3550 | drivers/char/istallion.c | brdp->enable = NULL; |
brdp | 3551 | drivers/char/istallion.c | brdp->reenable = NULL; |
brdp | 3552 | drivers/char/istallion.c | brdp->disable = NULL; |
brdp | 3553 | drivers/char/istallion.c | brdp->getmemptr = stli_stalgetmemptr; |
brdp | 3554 | drivers/char/istallion.c | brdp->intr = stli_ecpintr; |
brdp | 3555 | drivers/char/istallion.c | brdp->reset = stli_stalreset; |
brdp | 3568 | drivers/char/istallion.c | EBRDINIT(brdp); |
brdp | 3572 | drivers/char/istallion.c | brdp->membase = stli_mapbrdmem(confp->memaddr, brdp->memsize); |
brdp | 3573 | drivers/char/istallion.c | if (brdp->membase == (void *) NULL) |
brdp | 3583 | drivers/char/istallion.c | EBRDENABLE(brdp); |
brdp | 3584 | drivers/char/istallion.c | sigsp = (cdkonbsig_t *) EBRDGETMEMPTR(brdp, CDK_SIGADDR); |
brdp | 3586 | drivers/char/istallion.c | EBRDDISABLE(brdp); |
brdp | 3602 | drivers/char/istallion.c | brdp->nrpanels = 1; |
brdp | 3604 | drivers/char/istallion.c | brdp->nrports = 32; |
brdp | 3610 | drivers/char/istallion.c | brdp->nrports = i; |
brdp | 3613 | drivers/char/istallion.c | request_region(brdp->iobase, ONB_IOSIZE, "serial(ONB/BBY)"); |
brdp | 3614 | drivers/char/istallion.c | brdp->state |= BST_FOUND; |
brdp | 3626 | drivers/char/istallion.c | static int stli_startbrd(stlibrd_t *brdp) |
brdp | 3636 | drivers/char/istallion.c | printk("stli_startbrd(brdp=%x)\n", (int) brdp); |
brdp | 3643 | drivers/char/istallion.c | EBRDENABLE(brdp); |
brdp | 3644 | drivers/char/istallion.c | hdrp = (volatile cdkhdr_t *) EBRDGETMEMPTR(brdp, CDK_CDKADDR); |
brdp | 3654 | drivers/char/istallion.c | if (nrdevs < (brdp->nrports + 1)) { |
brdp | 3656 | drivers/char/istallion.c | brdp->nrports = nrdevs - 1; |
brdp | 3658 | drivers/char/istallion.c | brdp->nrdevs = nrdevs; |
brdp | 3659 | drivers/char/istallion.c | brdp->hostoffset = hdrp->hostp - CDK_CDKADDR; |
brdp | 3660 | drivers/char/istallion.c | brdp->slaveoffset = hdrp->slavep - CDK_CDKADDR; |
brdp | 3661 | drivers/char/istallion.c | brdp->bitsize = (nrdevs + 7) / 8; |
brdp | 3663 | drivers/char/istallion.c | if (((unsigned long) memp) > brdp->memsize) { |
brdp | 3668 | drivers/char/istallion.c | memp = (volatile cdkmem_t *) EBRDGETMEMPTR(brdp, (unsigned long) memp); |
brdp | 3683 | drivers/char/istallion.c | portp = brdp->ports[portnr]; |
brdp | 3699 | drivers/char/istallion.c | portp = brdp->ports[portnr]; |
brdp | 3704 | drivers/char/istallion.c | ap = (volatile cdkasy_t *) EBRDGETMEMPTR(brdp, portp->addr); |
brdp | 3714 | drivers/char/istallion.c | EBRDDISABLE(brdp); |
brdp | 3718 | drivers/char/istallion.c | brdp->state |= BST_STARTED; |
brdp | 3738 | drivers/char/istallion.c | stlibrd_t *brdp; |
brdp | 3757 | drivers/char/istallion.c | brdp = &stli_brds[i]; |
brdp | 3759 | drivers/char/istallion.c | brdp->brdnr = i; |
brdp | 3760 | drivers/char/istallion.c | brdp->brdtype = confp->brdtype; |
brdp | 3766 | drivers/char/istallion.c | stli_initecp(brdp, confp); |
brdp | 3778 | drivers/char/istallion.c | stli_initonb(brdp, confp); |
brdp | 3784 | drivers/char/istallion.c | printk("STALLION: %s board type not supported in this driver\n", stli_brdnames[brdp->brdtype]); |
brdp | 3791 | drivers/char/istallion.c | if ((brdp->state & BST_FOUND) == 0) { |
brdp | 3792 | drivers/char/istallion.c | printk("STALLION: %s board not found, unit=%d io=%x mem=%x\n", stli_brdnames[brdp->brdtype], i, confp->ioaddr1, (int) confp->memaddr); |
brdp | 3796 | drivers/char/istallion.c | stli_initports(brdp); |
brdp | 3797 | drivers/char/istallion.c | printk("STALLION: %s found, unit=%d io=%x mem=%x nrpanels=%d nrports=%d\n", stli_brdnames[brdp->brdtype], i, confp->ioaddr1, (int) confp->memaddr, brdp->nrpanels, brdp->nrports); |
brdp | 3809 | drivers/char/istallion.c | brdp = &stli_brds[i]; |
brdp | 3810 | drivers/char/istallion.c | if ((brdp->membase >= stli_brds[j].membase) && |
brdp | 3811 | drivers/char/istallion.c | (brdp->membase <= (stli_brds[j].membase + stli_brds[j].memsize - 1))) { |
brdp | 3821 | drivers/char/istallion.c | brdp = &stli_brds[i]; |
brdp | 3822 | drivers/char/istallion.c | if (brdp->state & BST_FOUND) { |
brdp | 3823 | drivers/char/istallion.c | EBRDENABLE(brdp); |
brdp | 3824 | drivers/char/istallion.c | brdp->enable = NULL; |
brdp | 3825 | drivers/char/istallion.c | brdp->disable = NULL; |
brdp | 3845 | drivers/char/istallion.c | stlibrd_t *brdp; |
brdp | 3855 | drivers/char/istallion.c | brdp = &stli_brds[brdnr]; |
brdp | 3856 | drivers/char/istallion.c | if (brdp->state == 0) |
brdp | 3858 | drivers/char/istallion.c | if (fp->f_pos >= brdp->memsize) |
brdp | 3861 | drivers/char/istallion.c | size = MIN(count, (brdp->memsize - fp->f_pos)); |
brdp | 3865 | drivers/char/istallion.c | EBRDENABLE(brdp); |
brdp | 3867 | drivers/char/istallion.c | memptr = (void *) EBRDGETMEMPTR(brdp, fp->f_pos); |
brdp | 3868 | drivers/char/istallion.c | n = MIN(size, (brdp->pagesize - (((unsigned long) fp->f_pos) % brdp->pagesize))); |
brdp | 3874 | drivers/char/istallion.c | EBRDDISABLE(brdp); |
brdp | 3892 | drivers/char/istallion.c | stlibrd_t *brdp; |
brdp | 3903 | drivers/char/istallion.c | brdp = &stli_brds[brdnr]; |
brdp | 3904 | drivers/char/istallion.c | if (brdp->state == 0) |
brdp | 3906 | drivers/char/istallion.c | if (fp->f_pos >= brdp->memsize) |
brdp | 3910 | drivers/char/istallion.c | size = MIN(count, (brdp->memsize - fp->f_pos)); |
brdp | 3914 | drivers/char/istallion.c | EBRDENABLE(brdp); |
brdp | 3916 | drivers/char/istallion.c | memptr = (void *) EBRDGETMEMPTR(brdp, fp->f_pos); |
brdp | 3917 | drivers/char/istallion.c | n = MIN(size, (brdp->pagesize - (((unsigned long) fp->f_pos) % brdp->pagesize))); |
brdp | 3923 | drivers/char/istallion.c | EBRDDISABLE(brdp); |
brdp | 3939 | drivers/char/istallion.c | stlibrd_t *brdp; |
brdp | 3949 | drivers/char/istallion.c | brdp = &stli_brds[brdnr]; |
brdp | 3950 | drivers/char/istallion.c | if (brdp->state == 0) |
brdp | 3957 | drivers/char/istallion.c | EBRDINTR(brdp); |
brdp | 3960 | drivers/char/istallion.c | rc = stli_startbrd(brdp); |
brdp | 3963 | drivers/char/istallion.c | brdp->state &= ~BST_STARTED; |
brdp | 3966 | drivers/char/istallion.c | brdp->state &= ~BST_STARTED; |
brdp | 3967 | drivers/char/istallion.c | EBRDRESET(brdp); |
brdp | 3969 | drivers/char/istallion.c | if (brdp->reenable != NULL) |
brdp | 3970 | drivers/char/istallion.c | (* brdp->reenable)(brdp); |
brdp | 477 | drivers/char/stallion.c | static int stl_brdinit(stlbrd_t *brdp); |
brdp | 478 | drivers/char/stallion.c | static int stl_initeio(stlbrd_t *brdp); |
brdp | 479 | drivers/char/stallion.c | static int stl_initech(stlbrd_t *brdp); |
brdp | 480 | drivers/char/stallion.c | static int stl_initports(stlbrd_t *brdp, stlpanel_t *panelp); |
brdp | 533 | drivers/char/stallion.c | stlbrd_t *brdp; |
brdp | 566 | drivers/char/stallion.c | brdp = stl_brds[i]; |
brdp | 568 | drivers/char/stallion.c | panelp = brdp->panels[j]; |
brdp | 585 | drivers/char/stallion.c | if (brdp->brdtype == BRD_ECH) { |
brdp | 586 | drivers/char/stallion.c | release_region(brdp->ioaddr1, 2); |
brdp | 587 | drivers/char/stallion.c | release_region(brdp->ioaddr2, 32); |
brdp | 588 | drivers/char/stallion.c | } else if (brdp->brdtype == BRD_ECHPCI) { |
brdp | 589 | drivers/char/stallion.c | release_region(brdp->ioaddr1, 4); |
brdp | 590 | drivers/char/stallion.c | release_region(brdp->ioaddr2, 8); |
brdp | 591 | drivers/char/stallion.c | } else if (brdp->brdtype == BRD_ECHMC) { |
brdp | 592 | drivers/char/stallion.c | release_region(brdp->ioaddr1, 64); |
brdp | 593 | drivers/char/stallion.c | } else if (brdp->brdtype == BRD_EASYIO) { |
brdp | 594 | drivers/char/stallion.c | release_region(brdp->ioaddr1, 8); |
brdp | 597 | drivers/char/stallion.c | kfree_s(brdp, sizeof(stlbrd_t)); |
brdp | 628 | drivers/char/stallion.c | stlbrd_t *brdp; |
brdp | 640 | drivers/char/stallion.c | brdp = stl_brds[brdnr]; |
brdp | 641 | drivers/char/stallion.c | if (brdp == (stlbrd_t *) NULL) |
brdp | 645 | drivers/char/stallion.c | if (brdp->panels[panelnr] == (stlpanel_t *) NULL) |
brdp | 647 | drivers/char/stallion.c | if (minordev < brdp->panels[panelnr]->nrports) { |
brdp | 651 | drivers/char/stallion.c | minordev -= brdp->panels[panelnr]->nrports; |
brdp | 656 | drivers/char/stallion.c | portp = brdp->panels[panelnr]->ports[portnr]; |
brdp | 1108 | drivers/char/stallion.c | stlbrd_t *brdp; |
brdp | 1126 | drivers/char/stallion.c | brdp = stl_brds[portp->brdnr]; |
brdp | 1127 | drivers/char/stallion.c | if (brdp != (stlbrd_t *) NULL) |
brdp | 1128 | drivers/char/stallion.c | sio.irq = brdp->irq; |
brdp | 1760 | drivers/char/stallion.c | stlbrd_t *brdp; |
brdp | 1771 | drivers/char/stallion.c | if ((brdp = stl_brds[i]) == (stlbrd_t *) NULL) { |
brdp | 1775 | drivers/char/stallion.c | if (brdp->state == 0) { |
brdp | 1784 | drivers/char/stallion.c | if (brdp->brdtype == BRD_EASYIO) { |
brdp | 1785 | drivers/char/stallion.c | if ((inb(brdp->iostatus) & EIO_INTRPEND) == 0) { |
brdp | 1789 | drivers/char/stallion.c | panelp = brdp->panels[0]; |
brdp | 1793 | drivers/char/stallion.c | if (brdp->nrports > 4) { |
brdp | 1797 | drivers/char/stallion.c | } else if (brdp->brdtype == BRD_ECH) { |
brdp | 1798 | drivers/char/stallion.c | if ((inb(brdp->iostatus) & ECH_INTRPEND) == 0) { |
brdp | 1802 | drivers/char/stallion.c | outb((brdp->ioctrlval | ECH_BRDENABLE), brdp->ioctrl); |
brdp | 1803 | drivers/char/stallion.c | for (panelnr = 0; (panelnr < brdp->nrpanels); panelnr++) { |
brdp | 1804 | drivers/char/stallion.c | panelp = brdp->panels[panelnr]; |
brdp | 1814 | drivers/char/stallion.c | if (panelnr >= brdp->nrpanels) { |
brdp | 1822 | drivers/char/stallion.c | } else if (brdp->brdtype == BRD_ECHPCI) { |
brdp | 1823 | drivers/char/stallion.c | iobase = brdp->ioaddr2; |
brdp | 1824 | drivers/char/stallion.c | for (panelnr = 0; (panelnr < brdp->nrpanels); panelnr++) { |
brdp | 1825 | drivers/char/stallion.c | panelp = brdp->panels[panelnr]; |
brdp | 1826 | drivers/char/stallion.c | outb(panelp->pagenr, brdp->ioctrl); |
brdp | 1830 | drivers/char/stallion.c | outb((panelp->pagenr + 1), brdp->ioctrl); |
brdp | 1835 | drivers/char/stallion.c | if (panelnr >= brdp->nrpanels) { |
brdp | 1843 | drivers/char/stallion.c | } else if (brdp->brdtype == BRD_ECHMC) { |
brdp | 1844 | drivers/char/stallion.c | if ((inb(brdp->iostatus) & ECH_INTRPEND) == 0) { |
brdp | 1848 | drivers/char/stallion.c | for (panelnr = 0; (panelnr < brdp->nrpanels); panelnr++) { |
brdp | 1849 | drivers/char/stallion.c | panelp = brdp->panels[panelnr]; |
brdp | 1859 | drivers/char/stallion.c | if (panelnr >= brdp->nrpanels) { |
brdp | 1868 | drivers/char/stallion.c | printk("STALLION: unknown board type=%x\n", brdp->brdtype); |
brdp | 1885 | drivers/char/stallion.c | if (brdp->brdtype == BRD_ECH) |
brdp | 1886 | drivers/char/stallion.c | outb((brdp->ioctrlval | ECH_BRDDISABLE), brdp->ioctrl); |
brdp | 1962 | drivers/char/stallion.c | stlbrd_t *brdp; |
brdp | 1985 | drivers/char/stallion.c | brdp = stl_brds[portp->brdnr]; |
brdp | 1986 | drivers/char/stallion.c | if (brdp == (stlbrd_t *) NULL) |
brdp | 2393 | drivers/char/stallion.c | static int stl_initports(stlbrd_t *brdp, stlpanel_t *panelp) |
brdp | 2413 | drivers/char/stallion.c | if (brdp->brdtype == BRD_ECHPCI) { |
brdp | 2414 | drivers/char/stallion.c | outb((panelp->pagenr + (i >> 1)), brdp->ioctrl); |
brdp | 2446 | drivers/char/stallion.c | if (brdp->brdtype == BRD_ECHPCI) { |
brdp | 2447 | drivers/char/stallion.c | outb((panelp->pagenr + (i >> 3)), brdp->ioctrl); |
brdp | 2488 | drivers/char/stallion.c | static int stl_initeio(stlbrd_t *brdp) |
brdp | 2495 | drivers/char/stallion.c | printk("stl_initeio(brdp=%x)\n", (int) brdp); |
brdp | 2498 | drivers/char/stallion.c | brdp->ioctrl = brdp->ioaddr1 + 1; |
brdp | 2499 | drivers/char/stallion.c | brdp->iostatus = brdp->ioaddr1 + 2; |
brdp | 2501 | drivers/char/stallion.c | status = inb(brdp->iostatus); |
brdp | 2506 | drivers/char/stallion.c | brdp->nrports = 8; |
brdp | 2509 | drivers/char/stallion.c | brdp->nrports = 4; |
brdp | 2515 | drivers/char/stallion.c | request_region(brdp->ioaddr1, 8, "serial(EIO)"); |
brdp | 2522 | drivers/char/stallion.c | if ((brdp->irq < 0) || (brdp->irq > 15) || |
brdp | 2523 | drivers/char/stallion.c | (stl_vecmap[brdp->irq] == (unsigned char) 0xff)) { |
brdp | 2524 | drivers/char/stallion.c | printk("STALLION: invalid irq=%d for brd=%d\n", brdp->irq, brdp->brdnr); |
brdp | 2527 | drivers/char/stallion.c | outb((stl_vecmap[brdp->irq] | ((brdp->irqtype) ? EIO_INTLEVEL : EIO_INTEDGE)), brdp->ioctrl); |
brdp | 2536 | drivers/char/stallion.c | panelp->brdnr = brdp->brdnr; |
brdp | 2538 | drivers/char/stallion.c | panelp->nrports = brdp->nrports; |
brdp | 2539 | drivers/char/stallion.c | panelp->iobase = brdp->ioaddr1; |
brdp | 2540 | drivers/char/stallion.c | brdp->panels[0] = panelp; |
brdp | 2541 | drivers/char/stallion.c | brdp->nrpanels = 1; |
brdp | 2542 | drivers/char/stallion.c | brdp->state |= BRD_FOUND; |
brdp | 2543 | drivers/char/stallion.c | rc = stl_mapirq(brdp->irq); |
brdp | 2554 | drivers/char/stallion.c | static int stl_initech(stlbrd_t *brdp) |
brdp | 2561 | drivers/char/stallion.c | printk("stl_initech(brdp=%x)\n", (int) brdp); |
brdp | 2569 | drivers/char/stallion.c | if (brdp->brdtype == BRD_ECH) { |
brdp | 2570 | drivers/char/stallion.c | brdp->ioctrl = brdp->ioaddr1 + 1; |
brdp | 2571 | drivers/char/stallion.c | brdp->iostatus = brdp->ioaddr1 + 1; |
brdp | 2572 | drivers/char/stallion.c | status = inb(brdp->iostatus); |
brdp | 2576 | drivers/char/stallion.c | if ((brdp->irq < 0) || (brdp->irq > 15) || |
brdp | 2577 | drivers/char/stallion.c | (stl_vecmap[brdp->irq] == (unsigned char) 0xff)) { |
brdp | 2578 | drivers/char/stallion.c | printk("STALLION: invalid irq=%d for brd=%d\n", brdp->irq, brdp->brdnr); |
brdp | 2581 | drivers/char/stallion.c | status = ((brdp->ioaddr2 & ECH_ADDR2MASK) >> 1); |
brdp | 2582 | drivers/char/stallion.c | status |= (stl_vecmap[brdp->irq] << 1); |
brdp | 2583 | drivers/char/stallion.c | outb((status | ECH_BRDRESET), brdp->ioaddr1); |
brdp | 2584 | drivers/char/stallion.c | brdp->ioctrlval = ECH_INTENABLE | ((brdp->irqtype) ? ECH_INTLEVEL : ECH_INTEDGE); |
brdp | 2585 | drivers/char/stallion.c | outb((brdp->ioctrlval | ECH_BRDENABLE), brdp->ioctrl); |
brdp | 2586 | drivers/char/stallion.c | outb(status, brdp->ioaddr1); |
brdp | 2588 | drivers/char/stallion.c | request_region(brdp->ioaddr1, 2, "serial(EC8/32)"); |
brdp | 2589 | drivers/char/stallion.c | request_region(brdp->ioaddr2, 32, "serial(EC8/32-secondary)"); |
brdp | 2590 | drivers/char/stallion.c | } else if (brdp->brdtype == BRD_ECHMC) { |
brdp | 2591 | drivers/char/stallion.c | brdp->ioctrl = brdp->ioaddr1 + 0x20; |
brdp | 2592 | drivers/char/stallion.c | brdp->iostatus = brdp->ioctrl; |
brdp | 2593 | drivers/char/stallion.c | status = inb(brdp->iostatus); |
brdp | 2597 | drivers/char/stallion.c | if ((brdp->irq < 0) || (brdp->irq > 15) || |
brdp | 2598 | drivers/char/stallion.c | (stl_vecmap[brdp->irq] == (unsigned char) 0xff)) { |
brdp | 2599 | drivers/char/stallion.c | printk("STALLION: invalid irq=%d for brd=%d\n", brdp->irq, brdp->brdnr); |
brdp | 2602 | drivers/char/stallion.c | outb(ECHMC_BRDRESET, brdp->ioctrl); |
brdp | 2603 | drivers/char/stallion.c | outb(ECHMC_INTENABLE, brdp->ioctrl); |
brdp | 2605 | drivers/char/stallion.c | request_region(brdp->ioaddr1, 64, "serial(EC8/32-MC)"); |
brdp | 2606 | drivers/char/stallion.c | } else if (brdp->brdtype == BRD_ECHPCI) { |
brdp | 2607 | drivers/char/stallion.c | brdp->ioctrl = brdp->ioaddr1 + 2; |
brdp | 2608 | drivers/char/stallion.c | request_region(brdp->ioaddr1, 4, "serial(EC8/32-PCI)"); |
brdp | 2609 | drivers/char/stallion.c | request_region(brdp->ioaddr2, 8, "serial(EC8/32-PCI-secondary)"); |
brdp | 2616 | drivers/char/stallion.c | ioaddr = brdp->ioaddr2; |
brdp | 2621 | drivers/char/stallion.c | if (brdp->brdtype == BRD_ECHPCI) { |
brdp | 2622 | drivers/char/stallion.c | outb(nxtid, brdp->ioctrl); |
brdp | 2623 | drivers/char/stallion.c | ioaddr = brdp->ioaddr2; |
brdp | 2634 | drivers/char/stallion.c | panelp->brdnr = brdp->brdnr; |
brdp | 2639 | drivers/char/stallion.c | if ((brdp->nrports + 16) > 32) |
brdp | 2643 | drivers/char/stallion.c | brdp->nrports += 16; |
brdp | 2649 | drivers/char/stallion.c | brdp->nrports += 8; |
brdp | 2653 | drivers/char/stallion.c | brdp->panels[panelnr++] = panelp; |
brdp | 2654 | drivers/char/stallion.c | brdp->nrpanels++; |
brdp | 2655 | drivers/char/stallion.c | if (ioaddr >= (brdp->ioaddr2 + 0x20)) |
brdp | 2659 | drivers/char/stallion.c | if (brdp->brdtype == BRD_ECH) |
brdp | 2660 | drivers/char/stallion.c | outb((brdp->ioctrlval | ECH_BRDDISABLE), brdp->ioctrl); |
brdp | 2662 | drivers/char/stallion.c | brdp->state |= BRD_FOUND; |
brdp | 2663 | drivers/char/stallion.c | i = stl_mapirq(brdp->irq); |
brdp | 2676 | drivers/char/stallion.c | static int stl_brdinit(stlbrd_t *brdp) |
brdp | 2681 | drivers/char/stallion.c | printk("stl_brdinit(brdp=%x)\n", (int) brdp); |
brdp | 2684 | drivers/char/stallion.c | switch (brdp->brdtype) { |
brdp | 2686 | drivers/char/stallion.c | stl_initeio(brdp); |
brdp | 2691 | drivers/char/stallion.c | stl_initech(brdp); |
brdp | 2694 | drivers/char/stallion.c | printk("STALLION: unit=%d is unknown board type=%d\n", brdp->brdnr, brdp->brdtype); |
brdp | 2698 | drivers/char/stallion.c | stl_brds[brdp->brdnr] = brdp; |
brdp | 2699 | drivers/char/stallion.c | if ((brdp->state & BRD_FOUND) == 0) { |
brdp | 2700 | drivers/char/stallion.c | printk("STALLION: %s board not found, unit=%d io=%x irq=%d\n", stl_brdnames[brdp->brdtype], brdp->brdnr, brdp->ioaddr1, brdp->irq); |
brdp | 2705 | drivers/char/stallion.c | if (brdp->panels[i] != (stlpanel_t *) NULL) |
brdp | 2706 | drivers/char/stallion.c | stl_initports(brdp, brdp->panels[i]); |
brdp | 2708 | drivers/char/stallion.c | printk("STALLION: %s found, unit=%d io=%x irq=%d nrpanels=%d nrports=%d\n", stl_brdnames[brdp->brdtype], brdp->brdnr, brdp->ioaddr1, brdp->irq, brdp->nrpanels, brdp->nrports); |
brdp | 2723 | drivers/char/stallion.c | stlbrd_t *brdp; |
brdp | 2759 | drivers/char/stallion.c | brdp = (stlbrd_t *) stl_memalloc(sizeof(stlbrd_t)); |
brdp | 2760 | drivers/char/stallion.c | if (brdp == (stlbrd_t *) NULL) { |
brdp | 2764 | drivers/char/stallion.c | memset(brdp, 0, sizeof(stlbrd_t)); |
brdp | 2765 | drivers/char/stallion.c | brdp->brdnr = stl_nrbrds++; |
brdp | 2766 | drivers/char/stallion.c | brdp->brdtype = BRD_ECHPCI; |
brdp | 2772 | drivers/char/stallion.c | brdp->ioaddr2 = (ioaddr & PCI_BASE_ADDRESS_IO_MASK); |
brdp | 2778 | drivers/char/stallion.c | brdp->ioaddr1 = (ioaddr & PCI_BASE_ADDRESS_IO_MASK); |
brdp | 2780 | drivers/char/stallion.c | printk("%s(%d): BAR0=%x BAR1=%x\n", __FILE__, __LINE__, brdp->ioaddr2, brdp->ioaddr1); |
brdp | 2787 | drivers/char/stallion.c | brdp->irq = irq; |
brdp | 2801 | drivers/char/stallion.c | stl_brdinit(brdp); |
brdp | 2820 | drivers/char/stallion.c | stlbrd_t *brdp; |
brdp | 2839 | drivers/char/stallion.c | brdp = (stlbrd_t *) stl_memalloc(sizeof(stlbrd_t)); |
brdp | 2840 | drivers/char/stallion.c | if (brdp == (stlbrd_t *) NULL) { |
brdp | 2844 | drivers/char/stallion.c | memset(brdp, 0, sizeof(stlbrd_t)); |
brdp | 2846 | drivers/char/stallion.c | brdp->brdnr = i; |
brdp | 2847 | drivers/char/stallion.c | brdp->brdtype = confp->brdtype; |
brdp | 2848 | drivers/char/stallion.c | brdp->ioaddr1 = confp->ioaddr1; |
brdp | 2849 | drivers/char/stallion.c | brdp->ioaddr2 = confp->ioaddr2; |
brdp | 2850 | drivers/char/stallion.c | brdp->irq = confp->irq; |
brdp | 2851 | drivers/char/stallion.c | brdp->irqtype = confp->irqtype; |
brdp | 2852 | drivers/char/stallion.c | stl_brdinit(brdp); |