tag | line | file | source code |
brdp | 297 | drivers/char/istallion.c | void (*init)(struct stlbrd *brdp); |
brdp | 298 | drivers/char/istallion.c | void (*enable)(struct stlbrd *brdp); |
brdp | 299 | drivers/char/istallion.c | void (*reenable)(struct stlbrd *brdp); |
brdp | 300 | drivers/char/istallion.c | void (*disable)(struct stlbrd *brdp); |
brdp | 301 | drivers/char/istallion.c | char *(*getmemptr)(struct stlbrd *brdp, unsigned long offset, int line); |
brdp | 302 | drivers/char/istallion.c | void (*intr)(struct stlbrd *brdp); |
brdp | 303 | drivers/char/istallion.c | void (*reset)(struct stlbrd *brdp); |
brdp | 514 | drivers/char/istallion.c | #define EBRDINIT(brdp) \ |
brdp | 515 | drivers/char/istallion.c | if (brdp->init != NULL) \ |
brdp | 516 | drivers/char/istallion.c | (* brdp->init)(brdp) |
brdp | 518 | drivers/char/istallion.c | #define EBRDENABLE(brdp) \ |
brdp | 519 | drivers/char/istallion.c | if (brdp->enable != NULL) \ |
brdp | 520 | drivers/char/istallion.c | (* brdp->enable)(brdp); |
brdp | 522 | drivers/char/istallion.c | #define EBRDDISABLE(brdp) \ |
brdp | 523 | drivers/char/istallion.c | if (brdp->disable != NULL) \ |
brdp | 524 | drivers/char/istallion.c | (* brdp->disable)(brdp); |
brdp | 526 | drivers/char/istallion.c | #define EBRDINTR(brdp) \ |
brdp | 527 | drivers/char/istallion.c | if (brdp->intr != NULL) \ |
brdp | 528 | drivers/char/istallion.c | (* brdp->intr)(brdp); |
brdp | 530 | drivers/char/istallion.c | #define EBRDRESET(brdp) \ |
brdp | 531 | drivers/char/istallion.c | if (brdp->reset != NULL) \ |
brdp | 532 | drivers/char/istallion.c | (* brdp->reset)(brdp); |
brdp | 534 | drivers/char/istallion.c | #define EBRDGETMEMPTR(brdp,offset) \ |
brdp | 535 | drivers/char/istallion.c | (* brdp->getmemptr)(brdp, offset, __LINE__) |
brdp | 599 | drivers/char/istallion.c | static int stli_initecp(stlibrd_t *brdp, stlconf_t *confp); |
brdp | 600 | drivers/char/istallion.c | static int stli_initonb(stlibrd_t *brdp, stlconf_t *confp); |
brdp | 601 | drivers/char/istallion.c | static int stli_initports(stlibrd_t *brdp); |
brdp | 602 | drivers/char/istallion.c | static int stli_startbrd(stlibrd_t *brdp); |
brdp | 607 | drivers/char/istallion.c | static int stli_hostcmd(stlibrd_t *brdp, int channr); |
brdp | 608 | drivers/char/istallion.c | static int stli_initopen(stlibrd_t *brdp, stliport_t *portp); |
brdp | 609 | drivers/char/istallion.c | static int stli_rawopen(stlibrd_t *brdp, stliport_t *portp, unsigned long arg, int wait); |
brdp | 610 | drivers/char/istallion.c | static int stli_rawclose(stlibrd_t *brdp, stliport_t *portp, unsigned long arg, int wait); |
brdp | 611 | drivers/char/istallion.c | static int stli_waitcarrier(stlibrd_t *brdp, stliport_t *portp, struct file *filp); |
brdp | 615 | drivers/char/istallion.c | static int stli_cmdwait(stlibrd_t *brdp, stliport_t *portp, unsigned long cmd, void *arg, int size, int copyback); |
brdp | 616 | drivers/char/istallion.c | static void stli_sendcmd(stlibrd_t *brdp, stliport_t *portp, unsigned long cmd, void *arg, int size, int copyback); |
brdp | 621 | drivers/char/istallion.c | static void stli_read(stlibrd_t *brdp, stliport_t *portp); |
brdp | 625 | drivers/char/istallion.c | static void stli_ecpinit(stlibrd_t *brdp); |
brdp | 626 | drivers/char/istallion.c | static void stli_ecpenable(stlibrd_t *brdp); |
brdp | 627 | drivers/char/istallion.c | static void stli_ecpdisable(stlibrd_t *brdp); |
brdp | 628 | drivers/char/istallion.c | static char *stli_ecpgetmemptr(stlibrd_t *brdp, unsigned long offset, int line); |
brdp | 629 | drivers/char/istallion.c | static void stli_ecpreset(stlibrd_t *brdp); |
brdp | 630 | drivers/char/istallion.c | static void stli_ecpintr(stlibrd_t *brdp); |
brdp | 631 | drivers/char/istallion.c | static void stli_ecpeiinit(stlibrd_t *brdp); |
brdp | 632 | drivers/char/istallion.c | static void stli_ecpeienable(stlibrd_t *brdp); |
brdp | 633 | drivers/char/istallion.c | static void stli_ecpeidisable(stlibrd_t *brdp); |
brdp | 634 | drivers/char/istallion.c | static char *stli_ecpeigetmemptr(stlibrd_t *brdp, unsigned long offset, int line); |
brdp | 635 | drivers/char/istallion.c | static void stli_ecpeireset(stlibrd_t *brdp); |
brdp | 636 | drivers/char/istallion.c | static void stli_ecpmcenable(stlibrd_t *brdp); |
brdp | 637 | drivers/char/istallion.c | static void stli_ecpmcdisable(stlibrd_t *brdp); |
brdp | 638 | drivers/char/istallion.c | static char *stli_ecpmcgetmemptr(stlibrd_t *brdp, unsigned long offset, int line); |
brdp | 639 | drivers/char/istallion.c | static void stli_ecpmcreset(stlibrd_t *brdp); |
brdp | 641 | drivers/char/istallion.c | static void stli_onbinit(stlibrd_t *brdp); |
brdp | 642 | drivers/char/istallion.c | static void stli_onbenable(stlibrd_t *brdp); |
brdp | 643 | drivers/char/istallion.c | static void stli_onbdisable(stlibrd_t *brdp); |
brdp | 644 | drivers/char/istallion.c | static char *stli_onbgetmemptr(stlibrd_t *brdp, unsigned long offset, int line); |
brdp | 645 | drivers/char/istallion.c | static void stli_onbreset(stlibrd_t *brdp); |
brdp | 646 | drivers/char/istallion.c | static void stli_onbeinit(stlibrd_t *brdp); |
brdp | 647 | drivers/char/istallion.c | static void stli_onbeenable(stlibrd_t *brdp); |
brdp | 648 | drivers/char/istallion.c | static void stli_onbedisable(stlibrd_t *brdp); |
brdp | 649 | drivers/char/istallion.c | static char *stli_onbegetmemptr(stlibrd_t *brdp, unsigned long offset, int line); |
brdp | 650 | drivers/char/istallion.c | static void stli_onbereset(stlibrd_t *brdp); |
brdp | 651 | drivers/char/istallion.c | static void stli_bbyinit(stlibrd_t *brdp); |
brdp | 652 | drivers/char/istallion.c | static char *stli_bbygetmemptr(stlibrd_t *brdp, unsigned long offset, int line); |
brdp | 653 | drivers/char/istallion.c | static void stli_bbyreset(stlibrd_t *brdp); |
brdp | 654 | drivers/char/istallion.c | static void stli_stalinit(stlibrd_t *brdp); |
brdp | 655 | drivers/char/istallion.c | static char *stli_stalgetmemptr(stlibrd_t *brdp, unsigned long offset, int line); |
brdp | 656 | drivers/char/istallion.c | static void stli_stalreset(stlibrd_t *brdp); |
brdp | 731 | drivers/char/istallion.c | stlibrd_t *brdp; |
brdp | 770 | drivers/char/istallion.c | brdp = &stli_brds[i]; |
brdp | 772 | drivers/char/istallion.c | portp = brdp->ports[j]; |
brdp | 781 | drivers/char/istallion.c | if (((unsigned long) brdp->membase) >= 0x100000) |
brdp | 782 | drivers/char/istallion.c | vfree(brdp->membase); |
brdp | 784 | drivers/char/istallion.c | if ((brdp->brdtype == BRD_ECP) || (brdp->brdtype == BRD_ECPE) || (brdp->brdtype == BRD_ECPMC)) |
brdp | 785 | drivers/char/istallion.c | release_region(brdp->iobase, ECP_IOSIZE); |
brdp | 787 | drivers/char/istallion.c | release_region(brdp->iobase, ONB_IOSIZE); |
brdp | 816 | drivers/char/istallion.c | stlibrd_t *brdp; |
brdp | 831 | drivers/char/istallion.c | brdp = &stli_brds[brdnr]; |
brdp | 832 | drivers/char/istallion.c | if ((brdp->state & BST_STARTED) == 0) |
brdp | 835 | drivers/char/istallion.c | if ((portnr < 0) || (portnr > brdp->nrports)) |
brdp | 838 | drivers/char/istallion.c | portp = brdp->ports[portnr]; |
brdp | 875 | drivers/char/istallion.c | if ((rc = stli_initopen(brdp, portp)) >= 0) { |
brdp | 920 | drivers/char/istallion.c | if ((rc = stli_waitcarrier(brdp, portp, filp)) != 0) |
brdp | 943 | drivers/char/istallion.c | stlibrd_t *brdp; |
brdp | 988 | drivers/char/istallion.c | brdp = &stli_brds[portp->brdnr]; |
brdp | 989 | drivers/char/istallion.c | stli_rawclose(brdp, portp, 0, 1); |
brdp | 992 | drivers/char/istallion.c | stli_cmdwait(brdp, portp, A_SETSIGNALS, &portp->asig, sizeof(asysigs_t), 0); |
brdp | 1027 | drivers/char/istallion.c | static int stli_initopen(stlibrd_t *brdp, stliport_t *portp) |
brdp | 1035 | drivers/char/istallion.c | printk("stli_initopen(brdp=%x,portp=%x)\n", (int) brdp, (int) portp); |
brdp | 1038 | drivers/char/istallion.c | if ((rc = stli_rawopen(brdp, portp, 0, 1)) < 0) |
brdp | 1044 | drivers/char/istallion.c | if ((rc = stli_cmdwait(brdp, portp, A_SETNOTIFY, &nt, sizeof(asynotify_t), 0)) < 0) |
brdp | 1051 | drivers/char/istallion.c | if ((rc = stli_cmdwait(brdp, portp, A_SETPORT, &aport, sizeof(asyport_t), 0)) < 0) |
brdp | 1055 | drivers/char/istallion.c | if ((rc = stli_cmdwait(brdp, portp, A_GETSIGNALS, &portp->asig, sizeof(asysigs_t), 1)) < 0) |
brdp | 1060 | drivers/char/istallion.c | if ((rc = stli_cmdwait(brdp, portp, A_SETSIGNALS, &portp->asig, sizeof(asysigs_t), 0)) < 0) |
brdp | 1075 | drivers/char/istallion.c | static int stli_rawopen(stlibrd_t *brdp, stliport_t *portp, unsigned long arg, int wait) |
brdp | 1084 | drivers/char/istallion.c | printk("stli_rawopen(brdp=%x,portp=%x,arg=%x,wait=%d)\n", (int) brdp, (int) portp, (int) arg, wait); |
brdp | 1112 | drivers/char/istallion.c | EBRDENABLE(brdp); |
brdp | 1113 | drivers/char/istallion.c | cp = &((volatile cdkasy_t *) EBRDGETMEMPTR(brdp, portp->addr))->ctrl; |
brdp | 1116 | drivers/char/istallion.c | hdrp = (volatile cdkhdr_t *) EBRDGETMEMPTR(brdp, CDK_CDKADDR); |
brdp | 1118 | drivers/char/istallion.c | bits = ((volatile unsigned char *) hdrp) + brdp->slaveoffset + portp->portidx; |
brdp | 1120 | drivers/char/istallion.c | EBRDDISABLE(brdp); |
brdp | 1155 | drivers/char/istallion.c | static int stli_rawclose(stlibrd_t *brdp, stliport_t *portp, unsigned long arg, int wait) |
brdp | 1164 | drivers/char/istallion.c | printk("stli_rawclose(brdp=%x,portp=%x,arg=%x,wait=%d)\n", (int) brdp, (int) portp, (int) arg, wait); |
brdp | 1187 | drivers/char/istallion.c | EBRDENABLE(brdp); |
brdp | 1188 | drivers/char/istallion.c | cp = &((volatile cdkasy_t *) EBRDGETMEMPTR(brdp, portp->addr))->ctrl; |
brdp | 1191 | drivers/char/istallion.c | hdrp = (volatile cdkhdr_t *) EBRDGETMEMPTR(brdp, CDK_CDKADDR); |
brdp | 1193 | drivers/char/istallion.c | bits = ((volatile unsigned char *) hdrp) + brdp->slaveoffset + portp->portidx; |
brdp | 1195 | drivers/char/istallion.c | EBRDDISABLE(brdp); |
brdp | 1231 | drivers/char/istallion.c | static int stli_cmdwait(stlibrd_t *brdp, stliport_t *portp, unsigned long cmd, void *arg, int size, int copyback) |
brdp | 1236 | 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 | 1249 | drivers/char/istallion.c | stli_sendcmd(brdp, portp, cmd, arg, size, copyback); |
brdp | 1274 | drivers/char/istallion.c | stlibrd_t *brdp; |
brdp | 1287 | drivers/char/istallion.c | brdp = &stli_brds[portp->brdnr]; |
brdp | 1290 | drivers/char/istallion.c | return(stli_cmdwait(brdp, portp, A_SETPORT, &aport, sizeof(asyport_t), 0)); |
brdp | 1320 | drivers/char/istallion.c | static int stli_waitcarrier(stlibrd_t *brdp, stliport_t *portp, struct file *filp) |
brdp | 1326 | drivers/char/istallion.c | printk("stli_waitcarrier(brdp=%x,portp=%x,filp=%x)\n", (int) brdp, (int) portp, (int) filp); |
brdp | 1340 | drivers/char/istallion.c | if ((rc = stli_cmdwait(brdp, portp, A_SETSIGNALS, &portp->asig, sizeof(asysigs_t), 0)) < 0) |
brdp | 1386 | drivers/char/istallion.c | stlibrd_t *brdp; |
brdp | 1403 | drivers/char/istallion.c | brdp = &stli_brds[portp->brdnr]; |
brdp | 1420 | drivers/char/istallion.c | EBRDENABLE(brdp); |
brdp | 1421 | drivers/char/istallion.c | ap = (volatile cdkasy_t *) EBRDGETMEMPTR(brdp, portp->addr); |
brdp | 1428 | drivers/char/istallion.c | EBRDDISABLE(brdp); |
brdp | 1442 | drivers/char/istallion.c | EBRDENABLE(brdp); |
brdp | 1443 | drivers/char/istallion.c | ap = (volatile cdkasy_t *) EBRDGETMEMPTR(brdp, portp->addr); |
brdp | 1459 | drivers/char/istallion.c | shbuf = (char *) EBRDGETMEMPTR(brdp, portp->txoffset); |
brdp | 1474 | drivers/char/istallion.c | ap = (volatile cdkasy_t *) EBRDGETMEMPTR(brdp, portp->addr); |
brdp | 1480 | drivers/char/istallion.c | hdrp = (volatile cdkhdr_t *) EBRDGETMEMPTR(brdp, CDK_CDKADDR); |
brdp | 1482 | drivers/char/istallion.c | bits = ((volatile unsigned char *) hdrp) + brdp->slaveoffset + portp->portidx; |
brdp | 1486 | drivers/char/istallion.c | EBRDDISABLE(brdp); |
brdp | 1536 | drivers/char/istallion.c | stlibrd_t *brdp; |
brdp | 1565 | drivers/char/istallion.c | brdp = &stli_brds[portp->brdnr]; |
brdp | 1569 | drivers/char/istallion.c | EBRDENABLE(brdp); |
brdp | 1571 | drivers/char/istallion.c | ap = (volatile cdkasy_t *) EBRDGETMEMPTR(brdp, portp->addr); |
brdp | 1587 | drivers/char/istallion.c | shbuf = (char *) EBRDGETMEMPTR(brdp, portp->txoffset); |
brdp | 1603 | drivers/char/istallion.c | ap = (volatile cdkasy_t *) EBRDGETMEMPTR(brdp, portp->addr); |
brdp | 1610 | drivers/char/istallion.c | hdrp = (volatile cdkhdr_t *) EBRDGETMEMPTR(brdp, CDK_CDKADDR); |
brdp | 1612 | drivers/char/istallion.c | bits = ((volatile unsigned char *) hdrp) + brdp->slaveoffset + portp->portidx; |
brdp | 1616 | drivers/char/istallion.c | EBRDDISABLE(brdp); |
brdp | 1626 | drivers/char/istallion.c | stlibrd_t *brdp; |
brdp | 1648 | drivers/char/istallion.c | brdp = &stli_brds[portp->brdnr]; |
brdp | 1652 | drivers/char/istallion.c | EBRDENABLE(brdp); |
brdp | 1653 | drivers/char/istallion.c | rp = &((volatile cdkasy_t *) EBRDGETMEMPTR(brdp, portp->addr))->txq; |
brdp | 1660 | drivers/char/istallion.c | EBRDDISABLE(brdp); |
brdp | 1684 | drivers/char/istallion.c | stlibrd_t *brdp; |
brdp | 1701 | drivers/char/istallion.c | brdp = &stli_brds[portp->brdnr]; |
brdp | 1705 | drivers/char/istallion.c | EBRDENABLE(brdp); |
brdp | 1706 | drivers/char/istallion.c | rp = &((volatile cdkasy_t *) EBRDGETMEMPTR(brdp, portp->addr))->txq; |
brdp | 1714 | drivers/char/istallion.c | EBRDDISABLE(brdp); |
brdp | 1790 | drivers/char/istallion.c | stlibrd_t *brdp; |
brdp | 1805 | drivers/char/istallion.c | brdp = &stli_brds[portp->brdnr]; |
brdp | 1815 | drivers/char/istallion.c | rc = stli_cmdwait(brdp, portp, A_BREAK, &val, sizeof(unsigned long), 0); |
brdp | 1823 | drivers/char/istallion.c | rc = stli_cmdwait(brdp, portp, A_BREAK, &val, sizeof(unsigned long), 0); |
brdp | 1838 | drivers/char/istallion.c | if ((rc = stli_cmdwait(brdp, portp, A_GETSIGNALS, &portp->asig, sizeof(asysigs_t), 1)) < 0) |
brdp | 1848 | drivers/char/istallion.c | rc = stli_cmdwait(brdp, portp, A_SETSIGNALS, &portp->asig, sizeof(asysigs_t), 0); |
brdp | 1855 | drivers/char/istallion.c | rc = stli_cmdwait(brdp, portp, A_SETSIGNALS, &portp->asig, sizeof(asysigs_t), 0); |
brdp | 1862 | drivers/char/istallion.c | rc = stli_cmdwait(brdp, portp, A_SETSIGNALS, &portp->asig, sizeof(asysigs_t), 0); |
brdp | 1898 | drivers/char/istallion.c | stlibrd_t *brdp; |
brdp | 1913 | drivers/char/istallion.c | brdp = &stli_brds[portp->brdnr]; |
brdp | 1920 | drivers/char/istallion.c | stli_cmdwait(brdp, portp, A_SETPORT, &aport, sizeof(asyport_t), 0); |
brdp | 1922 | drivers/char/istallion.c | stli_cmdwait(brdp, portp, A_SETSIGNALS, &portp->asig, sizeof(asysigs_t), 0); |
brdp | 1992 | drivers/char/istallion.c | stlibrd_t *brdp; |
brdp | 2007 | drivers/char/istallion.c | brdp = &stli_brds[portp->brdnr]; |
brdp | 2012 | drivers/char/istallion.c | stli_cmdwait(brdp, portp, A_PORTCTRL, &actrl, sizeof(asyctrl_t)); |
brdp | 2025 | drivers/char/istallion.c | stlibrd_t *brdp; |
brdp | 2039 | drivers/char/istallion.c | brdp = &stli_brds[portp->brdnr]; |
brdp | 2044 | drivers/char/istallion.c | stli_cmdwait(brdp, portp, A_PORTCTRL, &actrl, sizeof(asyctrl_t)); |
brdp | 2087 | drivers/char/istallion.c | stlibrd_t *brdp; |
brdp | 2101 | drivers/char/istallion.c | brdp = &stli_brds[portp->brdnr]; |
brdp | 2108 | drivers/char/istallion.c | stli_rawclose(brdp, portp, 0, 0); |
brdp | 2116 | drivers/char/istallion.c | stli_sendcmd(brdp, portp, A_SETSIGNALSF, &portp->asig, sizeof(asysigs_t), 0); |
brdp | 2143 | drivers/char/istallion.c | stlibrd_t *brdp; |
brdp | 2157 | drivers/char/istallion.c | brdp = &stli_brds[portp->brdnr]; |
brdp | 2174 | drivers/char/istallion.c | stli_sendcmd(brdp, portp, A_FLUSH, &ftype, sizeof(unsigned long), 0); |
brdp | 2195 | drivers/char/istallion.c | static void stli_sendcmd(stlibrd_t *brdp, stliport_t *portp, unsigned long cmd, void *arg, int size, int copyback) |
brdp | 2203 | 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 | 2213 | drivers/char/istallion.c | EBRDENABLE(brdp); |
brdp | 2214 | drivers/char/istallion.c | cp = &((volatile cdkasy_t *) EBRDGETMEMPTR(brdp, portp->addr))->ctrl; |
brdp | 2224 | drivers/char/istallion.c | hdrp = (volatile cdkhdr_t *) EBRDGETMEMPTR(brdp, CDK_CDKADDR); |
brdp | 2226 | drivers/char/istallion.c | bits = ((volatile unsigned char *) hdrp) + brdp->slaveoffset + portp->portidx; |
brdp | 2229 | drivers/char/istallion.c | EBRDDISABLE(brdp); |
brdp | 2243 | drivers/char/istallion.c | static inline void stli_read(stlibrd_t *brdp, stliport_t *portp) |
brdp | 2252 | drivers/char/istallion.c | printk("stli_read(brdp=%x,portp=%d)\n", (int) brdp, (int) portp); |
brdp | 2261 | drivers/char/istallion.c | rp = &((volatile cdkasy_t *) EBRDGETMEMPTR(brdp, portp->addr))->rxq; |
brdp | 2276 | drivers/char/istallion.c | shbuf = (volatile char *) EBRDGETMEMPTR(brdp, portp->rxoffset); |
brdp | 2293 | drivers/char/istallion.c | rp = &((volatile cdkasy_t *) EBRDGETMEMPTR(brdp, portp->addr))->rxq; |
brdp | 2352 | drivers/char/istallion.c | static inline int stli_hostcmd(stlibrd_t *brdp, int channr) |
brdp | 2363 | drivers/char/istallion.c | printk("stli_hostcmd(brdp=%x,channr=%d)\n", (int) brdp, channr); |
brdp | 2366 | drivers/char/istallion.c | portp = brdp->ports[(channr - 1)]; |
brdp | 2367 | drivers/char/istallion.c | ap = (volatile cdkasy_t *) EBRDGETMEMPTR(brdp, portp->addr); |
brdp | 2475 | drivers/char/istallion.c | stli_read(brdp, portp); |
brdp | 2489 | drivers/char/istallion.c | stli_read(brdp, portp); |
brdp | 2512 | drivers/char/istallion.c | stlibrd_t *brdp; |
brdp | 2523 | drivers/char/istallion.c | brdp = &stli_brds[brdnr]; |
brdp | 2524 | drivers/char/istallion.c | if ((brdp->state & BST_STARTED) == 0) |
brdp | 2527 | drivers/char/istallion.c | EBRDENABLE(brdp); |
brdp | 2528 | drivers/char/istallion.c | hdrp = (volatile cdkhdr_t *) EBRDGETMEMPTR(brdp, CDK_CDKADDR); |
brdp | 2531 | drivers/char/istallion.c | bitsize = brdp->bitsize; |
brdp | 2532 | drivers/char/istallion.c | nrdevs = brdp->nrdevs; |
brdp | 2542 | drivers/char/istallion.c | memcpy(&bits[0], (((unsigned char *) hdrp) + brdp->hostoffset), bitsize); |
brdp | 2550 | drivers/char/istallion.c | stli_hostcmd(brdp, channr); |
brdp | 2564 | drivers/char/istallion.c | memcpy(&bits[0], (((unsigned char *) hdrp) + brdp->slaveoffset), bitsize); |
brdp | 2572 | drivers/char/istallion.c | portp = brdp->ports[(channr - 1)]; |
brdp | 2587 | drivers/char/istallion.c | memcpy((((unsigned char *) hdrp) + brdp->slaveoffset), &bits[0], bitsize); |
brdp | 2590 | drivers/char/istallion.c | EBRDDISABLE(brdp); |
brdp | 2752 | drivers/char/istallion.c | static int stli_initports(stlibrd_t *brdp) |
brdp | 2758 | drivers/char/istallion.c | printk("stli_initports(brdp=%x)\n", (int) brdp); |
brdp | 2761 | drivers/char/istallion.c | for (i = 0, panelnr = 0, panelport = 0; (i < brdp->nrports); i++) { |
brdp | 2770 | drivers/char/istallion.c | portp->brdnr = brdp->brdnr; |
brdp | 2780 | drivers/char/istallion.c | if (panelport >= brdp->panels[panelnr]) { |
brdp | 2784 | drivers/char/istallion.c | brdp->ports[i] = portp; |
brdp | 2796 | drivers/char/istallion.c | static void stli_ecpinit(stlibrd_t *brdp) |
brdp | 2801 | drivers/char/istallion.c | printk("stli_ecpinit(brdp=%d)\n", (int) brdp); |
brdp | 2804 | drivers/char/istallion.c | outb(ECP_ATSTOP, (brdp->iobase + ECP_ATCONFR)); |
brdp | 2806 | drivers/char/istallion.c | outb(ECP_ATDISABLE, (brdp->iobase + ECP_ATCONFR)); |
brdp | 2809 | drivers/char/istallion.c | memconf = (((unsigned long) brdp->membase) & ECP_ATADDRMASK) >> ECP_ATADDRSHFT; |
brdp | 2810 | drivers/char/istallion.c | outb(memconf, (brdp->iobase + ECP_ATMEMAR)); |
brdp | 2815 | drivers/char/istallion.c | static void stli_ecpenable(stlibrd_t *brdp) |
brdp | 2818 | drivers/char/istallion.c | printk("stli_ecpenable(brdp=%x)\n", (int) brdp); |
brdp | 2820 | drivers/char/istallion.c | outb(ECP_ATENABLE, (brdp->iobase + ECP_ATCONFR)); |
brdp | 2825 | drivers/char/istallion.c | static void stli_ecpdisable(stlibrd_t *brdp) |
brdp | 2828 | drivers/char/istallion.c | printk("stli_ecpdisable(brdp=%x)\n", (int) brdp); |
brdp | 2830 | drivers/char/istallion.c | outb(ECP_ATDISABLE, (brdp->iobase + ECP_ATCONFR)); |
brdp | 2835 | drivers/char/istallion.c | static char *stli_ecpgetmemptr(stlibrd_t *brdp, unsigned long offset, int line) |
brdp | 2841 | drivers/char/istallion.c | printk("stli_ecpgetmemptr(brdp=%x,offset=%x)\n", (int) brdp, (int) offset); |
brdp | 2844 | drivers/char/istallion.c | if (offset > brdp->memsize) { |
brdp | 2845 | 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 | 2849 | drivers/char/istallion.c | ptr = brdp->membase + (offset % ECP_ATPAGESIZE); |
brdp | 2852 | drivers/char/istallion.c | outb(val, (brdp->iobase + ECP_ATMEMPR)); |
brdp | 2858 | drivers/char/istallion.c | static void stli_ecpreset(stlibrd_t *brdp) |
brdp | 2861 | drivers/char/istallion.c | printk("stli_ecpreset(brdp=%x)\n", (int) brdp); |
brdp | 2864 | drivers/char/istallion.c | outb(ECP_ATSTOP, (brdp->iobase + ECP_ATCONFR)); |
brdp | 2866 | drivers/char/istallion.c | outb(ECP_ATDISABLE, (brdp->iobase + ECP_ATCONFR)); |
brdp | 2872 | drivers/char/istallion.c | static void stli_ecpintr(stlibrd_t *brdp) |
brdp | 2875 | drivers/char/istallion.c | printk("stli_ecpintr(brdp=%x)\n", (int) brdp); |
brdp | 2877 | drivers/char/istallion.c | outb(0x1, brdp->iobase); |
brdp | 2886 | drivers/char/istallion.c | static void stli_ecpeiinit(stlibrd_t *brdp) |
brdp | 2891 | drivers/char/istallion.c | printk("stli_ecpeiinit(brdp=%x)\n", (int) brdp); |
brdp | 2894 | drivers/char/istallion.c | outb(0x1, (brdp->iobase + ECP_EIBRDENAB)); |
brdp | 2895 | drivers/char/istallion.c | outb(ECP_EISTOP, (brdp->iobase + ECP_EICONFR)); |
brdp | 2897 | drivers/char/istallion.c | outb(ECP_EIDISABLE, (brdp->iobase + ECP_EICONFR)); |
brdp | 2900 | drivers/char/istallion.c | memconf = (((unsigned long) brdp->membase) & ECP_EIADDRMASKL) >> ECP_EIADDRSHFTL; |
brdp | 2901 | drivers/char/istallion.c | outb(memconf, (brdp->iobase + ECP_EIMEMARL)); |
brdp | 2902 | drivers/char/istallion.c | memconf = (((unsigned long) brdp->membase) & ECP_EIADDRMASKH) >> ECP_EIADDRSHFTH; |
brdp | 2903 | drivers/char/istallion.c | outb(memconf, (brdp->iobase + ECP_EIMEMARH)); |
brdp | 2908 | drivers/char/istallion.c | static void stli_ecpeienable(stlibrd_t *brdp) |
brdp | 2910 | drivers/char/istallion.c | outb(ECP_EIENABLE, (brdp->iobase + ECP_EICONFR)); |
brdp | 2915 | drivers/char/istallion.c | static void stli_ecpeidisable(stlibrd_t *brdp) |
brdp | 2917 | drivers/char/istallion.c | outb(ECP_EIDISABLE, (brdp->iobase + ECP_EICONFR)); |
brdp | 2922 | drivers/char/istallion.c | static char *stli_ecpeigetmemptr(stlibrd_t *brdp, unsigned long offset, int line) |
brdp | 2928 | drivers/char/istallion.c | printk("stli_ecpeigetmemptr(brdp=%x,offset=%x,line=%d)\n", (int) brdp, (int) offset, line); |
brdp | 2931 | drivers/char/istallion.c | if (offset > brdp->memsize) { |
brdp | 2932 | 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 | 2936 | drivers/char/istallion.c | ptr = brdp->membase + (offset % ECP_EIPAGESIZE); |
brdp | 2942 | drivers/char/istallion.c | outb(val, (brdp->iobase + ECP_EICONFR)); |
brdp | 2948 | drivers/char/istallion.c | static void stli_ecpeireset(stlibrd_t *brdp) |
brdp | 2950 | drivers/char/istallion.c | outb(ECP_EISTOP, (brdp->iobase + ECP_EICONFR)); |
brdp | 2952 | drivers/char/istallion.c | outb(ECP_EIDISABLE, (brdp->iobase + ECP_EICONFR)); |
brdp | 2962 | drivers/char/istallion.c | static void stli_ecpmcenable(stlibrd_t *brdp) |
brdp | 2964 | drivers/char/istallion.c | outb(ECP_MCENABLE, (brdp->iobase + ECP_MCCONFR)); |
brdp | 2969 | drivers/char/istallion.c | static void stli_ecpmcdisable(stlibrd_t *brdp) |
brdp | 2971 | drivers/char/istallion.c | outb(ECP_MCDISABLE, (brdp->iobase + ECP_MCCONFR)); |
brdp | 2976 | drivers/char/istallion.c | static char *stli_ecpmcgetmemptr(stlibrd_t *brdp, unsigned long offset, int line) |
brdp | 2981 | drivers/char/istallion.c | if (offset > brdp->memsize) { |
brdp | 2982 | 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 | 2986 | drivers/char/istallion.c | ptr = brdp->membase + (offset % ECP_MCPAGESIZE); |
brdp | 2989 | drivers/char/istallion.c | outb(val, (brdp->iobase + ECP_MCCONFR)); |
brdp | 2995 | drivers/char/istallion.c | static void stli_ecpmcreset(stlibrd_t *brdp) |
brdp | 2997 | drivers/char/istallion.c | outb(ECP_MCSTOP, (brdp->iobase + ECP_MCCONFR)); |
brdp | 2999 | drivers/char/istallion.c | outb(ECP_MCDISABLE, (brdp->iobase + ECP_MCCONFR)); |
brdp | 3009 | drivers/char/istallion.c | static void stli_onbinit(stlibrd_t *brdp) |
brdp | 3015 | drivers/char/istallion.c | printk("stli_onbinit(brdp=%d)\n", (int) brdp); |
brdp | 3018 | drivers/char/istallion.c | outb(ONB_ATSTOP, (brdp->iobase + ONB_ATCONFR)); |
brdp | 3020 | drivers/char/istallion.c | outb(ONB_ATDISABLE, (brdp->iobase + ONB_ATCONFR)); |
brdp | 3024 | drivers/char/istallion.c | memconf = (((unsigned long) brdp->membase) & ONB_ATADDRMASK) >> ONB_ATADDRSHFT; |
brdp | 3025 | drivers/char/istallion.c | outb(memconf, (brdp->iobase + ONB_ATMEMAR)); |
brdp | 3026 | drivers/char/istallion.c | outb(0x1, brdp->iobase); |
brdp | 3032 | drivers/char/istallion.c | static void stli_onbenable(stlibrd_t *brdp) |
brdp | 3035 | drivers/char/istallion.c | printk("stli_onbenable(brdp=%x)\n", (int) brdp); |
brdp | 3037 | drivers/char/istallion.c | outb((ONB_ATENABLE | ONB_HIMEMENAB), (brdp->iobase + ONB_ATCONFR)); |
brdp | 3042 | drivers/char/istallion.c | static void stli_onbdisable(stlibrd_t *brdp) |
brdp | 3045 | drivers/char/istallion.c | printk("stli_onbdisable(brdp=%x)\n", (int) brdp); |
brdp | 3047 | drivers/char/istallion.c | outb(ONB_ATDISABLE, (brdp->iobase + ONB_ATCONFR)); |
brdp | 3052 | drivers/char/istallion.c | static char *stli_onbgetmemptr(stlibrd_t *brdp, unsigned long offset, int line) |
brdp | 3057 | drivers/char/istallion.c | printk("stli_onbgetmemptr(brdp=%x,offset=%x)\n", (int) brdp, (int) offset); |
brdp | 3060 | drivers/char/istallion.c | if (offset > brdp->memsize) { |
brdp | 3061 | 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 | 3064 | drivers/char/istallion.c | ptr = brdp->membase + (offset % ONB_ATPAGESIZE); |
brdp | 3071 | drivers/char/istallion.c | static void stli_onbreset(stlibrd_t *brdp) |
brdp | 3076 | drivers/char/istallion.c | printk("stli_onbreset(brdp=%x)\n", (int) brdp); |
brdp | 3079 | drivers/char/istallion.c | outb(ONB_ATSTOP, (brdp->iobase + ONB_ATCONFR)); |
brdp | 3081 | drivers/char/istallion.c | outb(ONB_ATDISABLE, (brdp->iobase + ONB_ATCONFR)); |
brdp | 3092 | drivers/char/istallion.c | static void stli_onbeinit(stlibrd_t *brdp) |
brdp | 3098 | drivers/char/istallion.c | printk("stli_onbeinit(brdp=%d)\n", (int) brdp); |
brdp | 3101 | drivers/char/istallion.c | outb(0x1, (brdp->iobase + ONB_EIBRDENAB)); |
brdp | 3102 | drivers/char/istallion.c | outb(ONB_EISTOP, (brdp->iobase + ONB_EICONFR)); |
brdp | 3104 | drivers/char/istallion.c | outb(ONB_EIDISABLE, (brdp->iobase + ONB_EICONFR)); |
brdp | 3108 | drivers/char/istallion.c | memconf = (((unsigned long) brdp->membase) & ONB_EIADDRMASKL) >> ONB_EIADDRSHFTL; |
brdp | 3109 | drivers/char/istallion.c | outb(memconf, (brdp->iobase + ONB_EIMEMARL)); |
brdp | 3110 | drivers/char/istallion.c | memconf = (((unsigned long) brdp->membase) & ONB_EIADDRMASKH) >> ONB_EIADDRSHFTH; |
brdp | 3111 | drivers/char/istallion.c | outb(memconf, (brdp->iobase + ONB_EIMEMARH)); |
brdp | 3112 | drivers/char/istallion.c | outb(0x1, brdp->iobase); |
brdp | 3118 | drivers/char/istallion.c | static void stli_onbeenable(stlibrd_t *brdp) |
brdp | 3121 | drivers/char/istallion.c | printk("stli_onbeenable(brdp=%x)\n", (int) brdp); |
brdp | 3123 | drivers/char/istallion.c | outb(ONB_EIENABLE, (brdp->iobase + ONB_EICONFR)); |
brdp | 3128 | drivers/char/istallion.c | static void stli_onbedisable(stlibrd_t *brdp) |
brdp | 3131 | drivers/char/istallion.c | printk("stli_onbedisable(brdp=%x)\n", (int) brdp); |
brdp | 3133 | drivers/char/istallion.c | outb(ONB_EIDISABLE, (brdp->iobase + ONB_EICONFR)); |
brdp | 3138 | drivers/char/istallion.c | static char *stli_onbegetmemptr(stlibrd_t *brdp, unsigned long offset, int line) |
brdp | 3144 | drivers/char/istallion.c | printk("stli_onbegetmemptr(brdp=%x,offset=%x,line=%d)\n", (int) brdp, (int) offset, line); |
brdp | 3147 | drivers/char/istallion.c | if (offset > brdp->memsize) { |
brdp | 3148 | 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 | 3152 | drivers/char/istallion.c | ptr = brdp->membase + (offset % ONB_EIPAGESIZE); |
brdp | 3158 | drivers/char/istallion.c | outb(val, (brdp->iobase + ONB_EICONFR)); |
brdp | 3164 | drivers/char/istallion.c | static void stli_onbereset(stlibrd_t *brdp) |
brdp | 3169 | drivers/char/istallion.c | printk("stli_onbereset(brdp=%x)\n", (int) brdp); |
brdp | 3172 | drivers/char/istallion.c | outb(ONB_EISTOP, (brdp->iobase + ONB_EICONFR)); |
brdp | 3174 | drivers/char/istallion.c | outb(ONB_EIDISABLE, (brdp->iobase + ONB_EICONFR)); |
brdp | 3185 | drivers/char/istallion.c | static void stli_bbyinit(stlibrd_t *brdp) |
brdp | 3190 | drivers/char/istallion.c | printk("stli_bbyinit(brdp=%d)\n", (int) brdp); |
brdp | 3193 | drivers/char/istallion.c | outb(BBY_ATSTOP, (brdp->iobase + BBY_ATCONFR)); |
brdp | 3195 | drivers/char/istallion.c | outb(0, (brdp->iobase + BBY_ATCONFR)); |
brdp | 3198 | drivers/char/istallion.c | outb(0x1, brdp->iobase); |
brdp | 3204 | drivers/char/istallion.c | static char *stli_bbygetmemptr(stlibrd_t *brdp, unsigned long offset, int line) |
brdp | 3210 | drivers/char/istallion.c | printk("stli_bbygetmemptr(brdp=%x,offset=%x)\n", (int) brdp, (int) offset); |
brdp | 3213 | drivers/char/istallion.c | if (offset > brdp->memsize) { |
brdp | 3214 | 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 | 3218 | drivers/char/istallion.c | ptr = brdp->membase + (offset % BBY_PAGESIZE); |
brdp | 3221 | drivers/char/istallion.c | outb(val, (brdp->iobase + BBY_ATCONFR)); |
brdp | 3227 | drivers/char/istallion.c | static void stli_bbyreset(stlibrd_t *brdp) |
brdp | 3232 | drivers/char/istallion.c | printk("stli_bbyreset(brdp=%x)\n", (int) brdp); |
brdp | 3235 | drivers/char/istallion.c | outb(BBY_ATSTOP, (brdp->iobase + BBY_ATCONFR)); |
brdp | 3237 | drivers/char/istallion.c | outb(0, (brdp->iobase + BBY_ATCONFR)); |
brdp | 3248 | drivers/char/istallion.c | static void stli_stalinit(stlibrd_t *brdp) |
brdp | 3253 | drivers/char/istallion.c | printk("stli_stalinit(brdp=%d)\n", (int) brdp); |
brdp | 3256 | drivers/char/istallion.c | outb(0x1, brdp->iobase); |
brdp | 3263 | drivers/char/istallion.c | static char *stli_stalgetmemptr(stlibrd_t *brdp, unsigned long offset, int line) |
brdp | 3268 | drivers/char/istallion.c | printk("stli_stalgetmemptr(brdp=%x,offset=%x)\n", (int) brdp, (int) offset); |
brdp | 3271 | drivers/char/istallion.c | if (offset > brdp->memsize) { |
brdp | 3272 | 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 | 3275 | drivers/char/istallion.c | ptr = brdp->membase + (offset % STAL_PAGESIZE); |
brdp | 3282 | drivers/char/istallion.c | static void stli_stalreset(stlibrd_t *brdp) |
brdp | 3288 | drivers/char/istallion.c | printk("stli_stalreset(brdp=%x)\n", (int) brdp); |
brdp | 3291 | drivers/char/istallion.c | vecp = (volatile unsigned long *) (brdp->membase + 0x30); |
brdp | 3293 | drivers/char/istallion.c | outb(0, brdp->iobase); |
brdp | 3339 | drivers/char/istallion.c | static int stli_initecp(stlibrd_t *brdp, stlconf_t *confp) |
brdp | 3347 | drivers/char/istallion.c | printk("stli_initecp(brdp=%x,confp=%x)\n", (int) brdp, (int) confp); |
brdp | 3355 | drivers/char/istallion.c | switch (brdp->brdtype) { |
brdp | 3357 | drivers/char/istallion.c | brdp->iobase = confp->ioaddr1; |
brdp | 3358 | drivers/char/istallion.c | brdp->membase = (void *) confp->memaddr; |
brdp | 3359 | drivers/char/istallion.c | brdp->memsize = ECP_MEMSIZE; |
brdp | 3360 | drivers/char/istallion.c | brdp->pagesize = ECP_ATPAGESIZE; |
brdp | 3361 | drivers/char/istallion.c | brdp->init = stli_ecpinit; |
brdp | 3362 | drivers/char/istallion.c | brdp->enable = stli_ecpenable; |
brdp | 3363 | drivers/char/istallion.c | brdp->reenable = stli_ecpenable; |
brdp | 3364 | drivers/char/istallion.c | brdp->disable = stli_ecpdisable; |
brdp | 3365 | drivers/char/istallion.c | brdp->getmemptr = stli_ecpgetmemptr; |
brdp | 3366 | drivers/char/istallion.c | brdp->intr = stli_ecpintr; |
brdp | 3367 | drivers/char/istallion.c | brdp->reset = stli_ecpreset; |
brdp | 3371 | drivers/char/istallion.c | brdp->iobase = confp->ioaddr1; |
brdp | 3372 | drivers/char/istallion.c | brdp->membase = (void *) confp->memaddr; |
brdp | 3373 | drivers/char/istallion.c | brdp->memsize = ECP_MEMSIZE; |
brdp | 3374 | drivers/char/istallion.c | brdp->pagesize = ECP_EIPAGESIZE; |
brdp | 3375 | drivers/char/istallion.c | brdp->init = stli_ecpeiinit; |
brdp | 3376 | drivers/char/istallion.c | brdp->enable = stli_ecpeienable; |
brdp | 3377 | drivers/char/istallion.c | brdp->reenable = stli_ecpeienable; |
brdp | 3378 | drivers/char/istallion.c | brdp->disable = stli_ecpeidisable; |
brdp | 3379 | drivers/char/istallion.c | brdp->getmemptr = stli_ecpeigetmemptr; |
brdp | 3380 | drivers/char/istallion.c | brdp->intr = stli_ecpintr; |
brdp | 3381 | drivers/char/istallion.c | brdp->reset = stli_ecpeireset; |
brdp | 3385 | drivers/char/istallion.c | brdp->memsize = ECP_MEMSIZE; |
brdp | 3386 | drivers/char/istallion.c | brdp->membase = (void *) confp->memaddr; |
brdp | 3387 | drivers/char/istallion.c | brdp->pagesize = ECP_MCPAGESIZE; |
brdp | 3388 | drivers/char/istallion.c | brdp->iobase = confp->ioaddr1; |
brdp | 3389 | drivers/char/istallion.c | brdp->init = NULL; |
brdp | 3390 | drivers/char/istallion.c | brdp->enable = stli_ecpmcenable; |
brdp | 3391 | drivers/char/istallion.c | brdp->reenable = stli_ecpmcenable; |
brdp | 3392 | drivers/char/istallion.c | brdp->disable = stli_ecpmcdisable; |
brdp | 3393 | drivers/char/istallion.c | brdp->getmemptr = stli_ecpmcgetmemptr; |
brdp | 3394 | drivers/char/istallion.c | brdp->intr = stli_ecpintr; |
brdp | 3395 | drivers/char/istallion.c | brdp->reset = stli_ecpmcreset; |
brdp | 3408 | drivers/char/istallion.c | EBRDINIT(brdp); |
brdp | 3412 | drivers/char/istallion.c | brdp->membase = stli_mapbrdmem(confp->memaddr, brdp->memsize); |
brdp | 3413 | drivers/char/istallion.c | if (brdp->membase == (void *) NULL) |
brdp | 3423 | drivers/char/istallion.c | EBRDENABLE(brdp); |
brdp | 3424 | drivers/char/istallion.c | sigsp = (cdkecpsig_t *) EBRDGETMEMPTR(brdp, CDK_SIGADDR); |
brdp | 3426 | drivers/char/istallion.c | EBRDDISABLE(brdp); |
brdp | 3448 | drivers/char/istallion.c | brdp->panels[panelnr] = 16; |
brdp | 3449 | drivers/char/istallion.c | brdp->nrports += 16; |
brdp | 3452 | drivers/char/istallion.c | brdp->panels[panelnr] = 8; |
brdp | 3453 | drivers/char/istallion.c | brdp->nrports += 8; |
brdp | 3456 | drivers/char/istallion.c | brdp->nrpanels++; |
brdp | 3459 | drivers/char/istallion.c | request_region(brdp->iobase, ECP_IOSIZE, "serial(ECP)"); |
brdp | 3460 | drivers/char/istallion.c | brdp->state |= BST_FOUND; |
brdp | 3471 | drivers/char/istallion.c | static int stli_initonb(stlibrd_t *brdp, stlconf_t *confp) |
brdp | 3478 | drivers/char/istallion.c | printk("stli_initonb(brdp=%x,confp=%x)\n", (int) brdp, (int) confp); |
brdp | 3486 | drivers/char/istallion.c | switch (brdp->brdtype) { |
brdp | 3492 | drivers/char/istallion.c | brdp->iobase = confp->ioaddr1; |
brdp | 3493 | drivers/char/istallion.c | brdp->membase = (void *) confp->memaddr; |
brdp | 3494 | drivers/char/istallion.c | brdp->memsize = ONB_MEMSIZE; |
brdp | 3495 | drivers/char/istallion.c | brdp->pagesize = ONB_ATPAGESIZE; |
brdp | 3496 | drivers/char/istallion.c | brdp->init = stli_onbinit; |
brdp | 3497 | drivers/char/istallion.c | brdp->enable = stli_onbenable; |
brdp | 3498 | drivers/char/istallion.c | brdp->reenable = stli_onbenable; |
brdp | 3499 | drivers/char/istallion.c | brdp->disable = stli_onbdisable; |
brdp | 3500 | drivers/char/istallion.c | brdp->getmemptr = stli_onbgetmemptr; |
brdp | 3501 | drivers/char/istallion.c | brdp->intr = stli_ecpintr; |
brdp | 3502 | drivers/char/istallion.c | brdp->reset = stli_onbreset; |
brdp | 3506 | drivers/char/istallion.c | brdp->iobase = confp->ioaddr1; |
brdp | 3507 | drivers/char/istallion.c | brdp->membase = (void *) confp->memaddr; |
brdp | 3508 | drivers/char/istallion.c | brdp->memsize = ONB_EIMEMSIZE; |
brdp | 3509 | drivers/char/istallion.c | brdp->pagesize = ONB_EIPAGESIZE; |
brdp | 3510 | drivers/char/istallion.c | brdp->init = stli_onbeinit; |
brdp | 3511 | drivers/char/istallion.c | brdp->enable = stli_onbeenable; |
brdp | 3512 | drivers/char/istallion.c | brdp->reenable = stli_onbeenable; |
brdp | 3513 | drivers/char/istallion.c | brdp->disable = stli_onbedisable; |
brdp | 3514 | drivers/char/istallion.c | brdp->getmemptr = stli_onbegetmemptr; |
brdp | 3515 | drivers/char/istallion.c | brdp->intr = stli_ecpintr; |
brdp | 3516 | drivers/char/istallion.c | brdp->reset = stli_onbereset; |
brdp | 3522 | drivers/char/istallion.c | brdp->iobase = confp->ioaddr1; |
brdp | 3523 | drivers/char/istallion.c | brdp->membase = (void *) confp->memaddr; |
brdp | 3524 | drivers/char/istallion.c | brdp->memsize = BBY_MEMSIZE; |
brdp | 3525 | drivers/char/istallion.c | brdp->pagesize = BBY_PAGESIZE; |
brdp | 3526 | drivers/char/istallion.c | brdp->init = stli_bbyinit; |
brdp | 3527 | drivers/char/istallion.c | brdp->enable = NULL; |
brdp | 3528 | drivers/char/istallion.c | brdp->reenable = NULL; |
brdp | 3529 | drivers/char/istallion.c | brdp->disable = NULL; |
brdp | 3530 | drivers/char/istallion.c | brdp->getmemptr = stli_bbygetmemptr; |
brdp | 3531 | drivers/char/istallion.c | brdp->intr = stli_ecpintr; |
brdp | 3532 | drivers/char/istallion.c | brdp->reset = stli_bbyreset; |
brdp | 3536 | drivers/char/istallion.c | brdp->iobase = confp->ioaddr1; |
brdp | 3537 | drivers/char/istallion.c | brdp->membase = (void *) confp->memaddr; |
brdp | 3538 | drivers/char/istallion.c | brdp->memsize = STAL_MEMSIZE; |
brdp | 3539 | drivers/char/istallion.c | brdp->pagesize = STAL_PAGESIZE; |
brdp | 3540 | drivers/char/istallion.c | brdp->init = stli_stalinit; |
brdp | 3541 | drivers/char/istallion.c | brdp->enable = NULL; |
brdp | 3542 | drivers/char/istallion.c | brdp->reenable = NULL; |
brdp | 3543 | drivers/char/istallion.c | brdp->disable = NULL; |
brdp | 3544 | drivers/char/istallion.c | brdp->getmemptr = stli_stalgetmemptr; |
brdp | 3545 | drivers/char/istallion.c | brdp->intr = stli_ecpintr; |
brdp | 3546 | drivers/char/istallion.c | brdp->reset = stli_stalreset; |
brdp | 3559 | drivers/char/istallion.c | EBRDINIT(brdp); |
brdp | 3563 | drivers/char/istallion.c | brdp->membase = stli_mapbrdmem(confp->memaddr, brdp->memsize); |
brdp | 3564 | drivers/char/istallion.c | if (brdp->membase == (void *) NULL) |
brdp | 3574 | drivers/char/istallion.c | EBRDENABLE(brdp); |
brdp | 3575 | drivers/char/istallion.c | sigsp = (cdkonbsig_t *) EBRDGETMEMPTR(brdp, CDK_SIGADDR); |
brdp | 3577 | drivers/char/istallion.c | EBRDDISABLE(brdp); |
brdp | 3593 | drivers/char/istallion.c | brdp->nrpanels = 1; |
brdp | 3595 | drivers/char/istallion.c | brdp->nrports = 32; |
brdp | 3601 | drivers/char/istallion.c | brdp->nrports = i; |
brdp | 3604 | drivers/char/istallion.c | request_region(brdp->iobase, ONB_IOSIZE, "serial(ONB/BBY)"); |
brdp | 3605 | drivers/char/istallion.c | brdp->state |= BST_FOUND; |
brdp | 3617 | drivers/char/istallion.c | static int stli_startbrd(stlibrd_t *brdp) |
brdp | 3627 | drivers/char/istallion.c | printk("stli_startbrd(brdp=%x)\n", (int) brdp); |
brdp | 3634 | drivers/char/istallion.c | EBRDENABLE(brdp); |
brdp | 3635 | drivers/char/istallion.c | hdrp = (volatile cdkhdr_t *) EBRDGETMEMPTR(brdp, CDK_CDKADDR); |
brdp | 3645 | drivers/char/istallion.c | if (nrdevs < (brdp->nrports + 1)) { |
brdp | 3647 | drivers/char/istallion.c | brdp->nrports = nrdevs - 1; |
brdp | 3649 | drivers/char/istallion.c | brdp->nrdevs = nrdevs; |
brdp | 3650 | drivers/char/istallion.c | brdp->hostoffset = hdrp->hostp - CDK_CDKADDR; |
brdp | 3651 | drivers/char/istallion.c | brdp->slaveoffset = hdrp->slavep - CDK_CDKADDR; |
brdp | 3652 | drivers/char/istallion.c | brdp->bitsize = (nrdevs + 7) / 8; |
brdp | 3654 | drivers/char/istallion.c | if (((unsigned long) memp) > brdp->memsize) { |
brdp | 3659 | drivers/char/istallion.c | memp = (volatile cdkmem_t *) EBRDGETMEMPTR(brdp, (unsigned long) memp); |
brdp | 3674 | drivers/char/istallion.c | portp = brdp->ports[portnr]; |
brdp | 3690 | drivers/char/istallion.c | portp = brdp->ports[portnr]; |
brdp | 3695 | drivers/char/istallion.c | ap = (volatile cdkasy_t *) EBRDGETMEMPTR(brdp, portp->addr); |
brdp | 3705 | drivers/char/istallion.c | EBRDDISABLE(brdp); |
brdp | 3709 | drivers/char/istallion.c | brdp->state |= BST_STARTED; |
brdp | 3729 | drivers/char/istallion.c | stlibrd_t *brdp; |
brdp | 3748 | drivers/char/istallion.c | brdp = &stli_brds[i]; |
brdp | 3750 | drivers/char/istallion.c | brdp->brdnr = i; |
brdp | 3751 | drivers/char/istallion.c | brdp->brdtype = confp->brdtype; |
brdp | 3757 | drivers/char/istallion.c | stli_initecp(brdp, confp); |
brdp | 3769 | drivers/char/istallion.c | stli_initonb(brdp, confp); |
brdp | 3775 | drivers/char/istallion.c | printk("STALLION: %s board type not supported in this driver\n", stli_brdnames[brdp->brdtype]); |
brdp | 3782 | drivers/char/istallion.c | if ((brdp->state & BST_FOUND) == 0) { |
brdp | 3783 | 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 | 3787 | drivers/char/istallion.c | stli_initports(brdp); |
brdp | 3788 | 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 | 3800 | drivers/char/istallion.c | brdp = &stli_brds[i]; |
brdp | 3801 | drivers/char/istallion.c | if ((brdp->membase >= stli_brds[j].membase) && |
brdp | 3802 | drivers/char/istallion.c | (brdp->membase <= (stli_brds[j].membase + stli_brds[j].memsize - 1))) { |
brdp | 3812 | drivers/char/istallion.c | brdp = &stli_brds[i]; |
brdp | 3813 | drivers/char/istallion.c | if (brdp->state & BST_FOUND) { |
brdp | 3814 | drivers/char/istallion.c | EBRDENABLE(brdp); |
brdp | 3815 | drivers/char/istallion.c | brdp->enable = NULL; |
brdp | 3816 | drivers/char/istallion.c | brdp->disable = NULL; |
brdp | 3836 | drivers/char/istallion.c | stlibrd_t *brdp; |
brdp | 3846 | drivers/char/istallion.c | brdp = &stli_brds[brdnr]; |
brdp | 3847 | drivers/char/istallion.c | if (brdp->state == 0) |
brdp | 3849 | drivers/char/istallion.c | if (fp->f_pos >= brdp->memsize) |
brdp | 3852 | drivers/char/istallion.c | size = MIN(count, (brdp->memsize - fp->f_pos)); |
brdp | 3856 | drivers/char/istallion.c | EBRDENABLE(brdp); |
brdp | 3858 | drivers/char/istallion.c | memptr = (void *) EBRDGETMEMPTR(brdp, fp->f_pos); |
brdp | 3859 | drivers/char/istallion.c | n = MIN(size, (brdp->pagesize - (((unsigned long) fp->f_pos) % brdp->pagesize))); |
brdp | 3865 | drivers/char/istallion.c | EBRDDISABLE(brdp); |
brdp | 3883 | drivers/char/istallion.c | stlibrd_t *brdp; |
brdp | 3894 | drivers/char/istallion.c | brdp = &stli_brds[brdnr]; |
brdp | 3895 | drivers/char/istallion.c | if (brdp->state == 0) |
brdp | 3897 | drivers/char/istallion.c | if (fp->f_pos >= brdp->memsize) |
brdp | 3901 | drivers/char/istallion.c | size = MIN(count, (brdp->memsize - fp->f_pos)); |
brdp | 3905 | drivers/char/istallion.c | EBRDENABLE(brdp); |
brdp | 3907 | drivers/char/istallion.c | memptr = (void *) EBRDGETMEMPTR(brdp, fp->f_pos); |
brdp | 3908 | drivers/char/istallion.c | n = MIN(size, (brdp->pagesize - (((unsigned long) fp->f_pos) % brdp->pagesize))); |
brdp | 3914 | drivers/char/istallion.c | EBRDDISABLE(brdp); |
brdp | 3930 | drivers/char/istallion.c | stlibrd_t *brdp; |
brdp | 3940 | drivers/char/istallion.c | brdp = &stli_brds[brdnr]; |
brdp | 3941 | drivers/char/istallion.c | if (brdp->state == 0) |
brdp | 3948 | drivers/char/istallion.c | EBRDINTR(brdp); |
brdp | 3951 | drivers/char/istallion.c | rc = stli_startbrd(brdp); |
brdp | 3954 | drivers/char/istallion.c | brdp->state &= ~BST_STARTED; |
brdp | 3957 | drivers/char/istallion.c | brdp->state &= ~BST_STARTED; |
brdp | 3958 | drivers/char/istallion.c | EBRDRESET(brdp); |
brdp | 3960 | drivers/char/istallion.c | if (brdp->reenable != NULL) |
brdp | 3961 | drivers/char/istallion.c | (* brdp->reenable)(brdp); |
brdp | 475 | drivers/char/stallion.c | static int stl_brdinit(stlbrd_t *brdp); |
brdp | 476 | drivers/char/stallion.c | static int stl_initeio(stlbrd_t *brdp); |
brdp | 477 | drivers/char/stallion.c | static int stl_initech(stlbrd_t *brdp); |
brdp | 478 | drivers/char/stallion.c | static int stl_initports(stlbrd_t *brdp, stlpanel_t *panelp); |
brdp | 529 | drivers/char/stallion.c | stlbrd_t *brdp; |
brdp | 562 | drivers/char/stallion.c | brdp = stl_brds[i]; |
brdp | 564 | drivers/char/stallion.c | panelp = brdp->panels[j]; |
brdp | 581 | drivers/char/stallion.c | if (brdp->brdtype == BRD_ECH) { |
brdp | 582 | drivers/char/stallion.c | release_region(brdp->ioaddr1, 2); |
brdp | 583 | drivers/char/stallion.c | release_region(brdp->ioaddr2, 32); |
brdp | 584 | drivers/char/stallion.c | } else if (brdp->brdtype == BRD_ECHPCI) { |
brdp | 585 | drivers/char/stallion.c | release_region(brdp->ioaddr1, 4); |
brdp | 586 | drivers/char/stallion.c | release_region(brdp->ioaddr2, 8); |
brdp | 587 | drivers/char/stallion.c | } else if (brdp->brdtype == BRD_ECHMC) { |
brdp | 588 | drivers/char/stallion.c | release_region(brdp->ioaddr1, 64); |
brdp | 589 | drivers/char/stallion.c | } else if (brdp->brdtype == BRD_EASYIO) { |
brdp | 590 | drivers/char/stallion.c | release_region(brdp->ioaddr1, 8); |
brdp | 593 | drivers/char/stallion.c | kfree_s(brdp, sizeof(stlbrd_t)); |
brdp | 624 | drivers/char/stallion.c | stlbrd_t *brdp; |
brdp | 636 | drivers/char/stallion.c | brdp = stl_brds[brdnr]; |
brdp | 637 | drivers/char/stallion.c | if (brdp == (stlbrd_t *) NULL) |
brdp | 641 | drivers/char/stallion.c | if (brdp->panels[panelnr] == (stlpanel_t *) NULL) |
brdp | 643 | drivers/char/stallion.c | if (minordev < brdp->panels[panelnr]->nrports) { |
brdp | 647 | drivers/char/stallion.c | minordev -= brdp->panels[panelnr]->nrports; |
brdp | 652 | drivers/char/stallion.c | portp = brdp->panels[panelnr]->ports[portnr]; |
brdp | 1104 | drivers/char/stallion.c | stlbrd_t *brdp; |
brdp | 1122 | drivers/char/stallion.c | brdp = stl_brds[portp->brdnr]; |
brdp | 1123 | drivers/char/stallion.c | if (brdp != (stlbrd_t *) NULL) |
brdp | 1124 | drivers/char/stallion.c | sio.irq = brdp->irq; |
brdp | 1756 | drivers/char/stallion.c | stlbrd_t *brdp; |
brdp | 1767 | drivers/char/stallion.c | if ((brdp = stl_brds[i]) == (stlbrd_t *) NULL) { |
brdp | 1771 | drivers/char/stallion.c | if (brdp->state == 0) { |
brdp | 1780 | drivers/char/stallion.c | if (brdp->brdtype == BRD_EASYIO) { |
brdp | 1781 | drivers/char/stallion.c | if ((inb(brdp->iostatus) & EIO_INTRPEND) == 0) { |
brdp | 1785 | drivers/char/stallion.c | panelp = brdp->panels[0]; |
brdp | 1789 | drivers/char/stallion.c | if (brdp->nrports > 4) { |
brdp | 1793 | drivers/char/stallion.c | } else if (brdp->brdtype == BRD_ECH) { |
brdp | 1794 | drivers/char/stallion.c | if ((inb(brdp->iostatus) & ECH_INTRPEND) == 0) { |
brdp | 1798 | drivers/char/stallion.c | outb((brdp->ioctrlval | ECH_BRDENABLE), brdp->ioctrl); |
brdp | 1799 | drivers/char/stallion.c | for (panelnr = 0; (panelnr < brdp->nrpanels); panelnr++) { |
brdp | 1800 | drivers/char/stallion.c | panelp = brdp->panels[panelnr]; |
brdp | 1810 | drivers/char/stallion.c | if (panelnr >= brdp->nrpanels) { |
brdp | 1818 | drivers/char/stallion.c | } else if (brdp->brdtype == BRD_ECHPCI) { |
brdp | 1819 | drivers/char/stallion.c | iobase = brdp->ioaddr2; |
brdp | 1820 | drivers/char/stallion.c | for (panelnr = 0; (panelnr < brdp->nrpanels); panelnr++) { |
brdp | 1821 | drivers/char/stallion.c | panelp = brdp->panels[panelnr]; |
brdp | 1822 | drivers/char/stallion.c | outb(panelp->pagenr, brdp->ioctrl); |
brdp | 1826 | drivers/char/stallion.c | outb((panelp->pagenr + 1), brdp->ioctrl); |
brdp | 1831 | drivers/char/stallion.c | if (panelnr >= brdp->nrpanels) { |
brdp | 1839 | drivers/char/stallion.c | } else if (brdp->brdtype == BRD_ECHMC) { |
brdp | 1840 | drivers/char/stallion.c | if ((inb(brdp->iostatus) & ECH_INTRPEND) == 0) { |
brdp | 1844 | drivers/char/stallion.c | for (panelnr = 0; (panelnr < brdp->nrpanels); panelnr++) { |
brdp | 1845 | drivers/char/stallion.c | panelp = brdp->panels[panelnr]; |
brdp | 1855 | drivers/char/stallion.c | if (panelnr >= brdp->nrpanels) { |
brdp | 1864 | drivers/char/stallion.c | printk("STALLION: unknown board type=%x\n", brdp->brdtype); |
brdp | 1881 | drivers/char/stallion.c | if (brdp->brdtype == BRD_ECH) |
brdp | 1882 | drivers/char/stallion.c | outb((brdp->ioctrlval | ECH_BRDDISABLE), brdp->ioctrl); |
brdp | 1958 | drivers/char/stallion.c | stlbrd_t *brdp; |
brdp | 1981 | drivers/char/stallion.c | brdp = stl_brds[portp->brdnr]; |
brdp | 1982 | drivers/char/stallion.c | if (brdp == (stlbrd_t *) NULL) |
brdp | 2389 | drivers/char/stallion.c | static int stl_initports(stlbrd_t *brdp, stlpanel_t *panelp) |
brdp | 2409 | drivers/char/stallion.c | if (brdp->brdtype == BRD_ECHPCI) { |
brdp | 2410 | drivers/char/stallion.c | outb((panelp->pagenr + (i >> 1)), brdp->ioctrl); |
brdp | 2442 | drivers/char/stallion.c | if (brdp->brdtype == BRD_ECHPCI) { |
brdp | 2443 | drivers/char/stallion.c | outb((panelp->pagenr + (i >> 3)), brdp->ioctrl); |
brdp | 2484 | drivers/char/stallion.c | static int stl_initeio(stlbrd_t *brdp) |
brdp | 2491 | drivers/char/stallion.c | printk("stl_initeio(brdp=%x)\n", (int) brdp); |
brdp | 2494 | drivers/char/stallion.c | brdp->ioctrl = brdp->ioaddr1 + 1; |
brdp | 2495 | drivers/char/stallion.c | brdp->iostatus = brdp->ioaddr1 + 2; |
brdp | 2497 | drivers/char/stallion.c | status = inb(brdp->iostatus); |
brdp | 2502 | drivers/char/stallion.c | brdp->nrports = 8; |
brdp | 2505 | drivers/char/stallion.c | brdp->nrports = 4; |
brdp | 2511 | drivers/char/stallion.c | request_region(brdp->ioaddr1, 8, "serial(EIO)"); |
brdp | 2518 | drivers/char/stallion.c | if ((brdp->irq < 0) || (brdp->irq > 15) || |
brdp | 2519 | drivers/char/stallion.c | (stl_vecmap[brdp->irq] == (unsigned char) 0xff)) { |
brdp | 2520 | drivers/char/stallion.c | printk("STALLION: invalid irq=%d for brd=%d\n", brdp->irq, brdp->brdnr); |
brdp | 2523 | drivers/char/stallion.c | outb((stl_vecmap[brdp->irq] | ((brdp->irqtype) ? EIO_INTLEVEL : EIO_INTEDGE)), brdp->ioctrl); |
brdp | 2532 | drivers/char/stallion.c | panelp->brdnr = brdp->brdnr; |
brdp | 2534 | drivers/char/stallion.c | panelp->nrports = brdp->nrports; |
brdp | 2535 | drivers/char/stallion.c | panelp->iobase = brdp->ioaddr1; |
brdp | 2536 | drivers/char/stallion.c | brdp->panels[0] = panelp; |
brdp | 2537 | drivers/char/stallion.c | brdp->nrpanels = 1; |
brdp | 2538 | drivers/char/stallion.c | brdp->state |= BRD_FOUND; |
brdp | 2539 | drivers/char/stallion.c | rc = stl_mapirq(brdp->irq); |
brdp | 2550 | drivers/char/stallion.c | static int stl_initech(stlbrd_t *brdp) |
brdp | 2557 | drivers/char/stallion.c | printk("stl_initech(brdp=%x)\n", (int) brdp); |
brdp | 2565 | drivers/char/stallion.c | if (brdp->brdtype == BRD_ECH) { |
brdp | 2566 | drivers/char/stallion.c | brdp->ioctrl = brdp->ioaddr1 + 1; |
brdp | 2567 | drivers/char/stallion.c | brdp->iostatus = brdp->ioaddr1 + 1; |
brdp | 2568 | drivers/char/stallion.c | status = inb(brdp->iostatus); |
brdp | 2572 | drivers/char/stallion.c | if ((brdp->irq < 0) || (brdp->irq > 15) || |
brdp | 2573 | drivers/char/stallion.c | (stl_vecmap[brdp->irq] == (unsigned char) 0xff)) { |
brdp | 2574 | drivers/char/stallion.c | printk("STALLION: invalid irq=%d for brd=%d\n", brdp->irq, brdp->brdnr); |
brdp | 2577 | drivers/char/stallion.c | status = ((brdp->ioaddr2 & ECH_ADDR2MASK) >> 1); |
brdp | 2578 | drivers/char/stallion.c | status |= (stl_vecmap[brdp->irq] << 1); |
brdp | 2579 | drivers/char/stallion.c | outb((status | ECH_BRDRESET), brdp->ioaddr1); |
brdp | 2580 | drivers/char/stallion.c | brdp->ioctrlval = ECH_INTENABLE | ((brdp->irqtype) ? ECH_INTLEVEL : ECH_INTEDGE); |
brdp | 2581 | drivers/char/stallion.c | outb((brdp->ioctrlval | ECH_BRDENABLE), brdp->ioctrl); |
brdp | 2582 | drivers/char/stallion.c | outb(status, brdp->ioaddr1); |
brdp | 2584 | drivers/char/stallion.c | request_region(brdp->ioaddr1, 2, "serial(EC8/32)"); |
brdp | 2585 | drivers/char/stallion.c | request_region(brdp->ioaddr2, 32, "serial(EC8/32-secondary)"); |
brdp | 2586 | drivers/char/stallion.c | } else if (brdp->brdtype == BRD_ECHMC) { |
brdp | 2587 | drivers/char/stallion.c | brdp->ioctrl = brdp->ioaddr1 + 0x20; |
brdp | 2588 | drivers/char/stallion.c | brdp->iostatus = brdp->ioctrl; |
brdp | 2589 | drivers/char/stallion.c | status = inb(brdp->iostatus); |
brdp | 2593 | drivers/char/stallion.c | if ((brdp->irq < 0) || (brdp->irq > 15) || |
brdp | 2594 | drivers/char/stallion.c | (stl_vecmap[brdp->irq] == (unsigned char) 0xff)) { |
brdp | 2595 | drivers/char/stallion.c | printk("STALLION: invalid irq=%d for brd=%d\n", brdp->irq, brdp->brdnr); |
brdp | 2598 | drivers/char/stallion.c | outb(ECHMC_BRDRESET, brdp->ioctrl); |
brdp | 2599 | drivers/char/stallion.c | outb(ECHMC_INTENABLE, brdp->ioctrl); |
brdp | 2601 | drivers/char/stallion.c | request_region(brdp->ioaddr1, 64, "serial(EC8/32-MC)"); |
brdp | 2602 | drivers/char/stallion.c | } else if (brdp->brdtype == BRD_ECHPCI) { |
brdp | 2603 | drivers/char/stallion.c | brdp->ioctrl = brdp->ioaddr1 + 2; |
brdp | 2604 | drivers/char/stallion.c | request_region(brdp->ioaddr1, 4, "serial(EC8/32-PCI)"); |
brdp | 2605 | drivers/char/stallion.c | request_region(brdp->ioaddr2, 8, "serial(EC8/32-PCI-secondary)"); |
brdp | 2612 | drivers/char/stallion.c | ioaddr = brdp->ioaddr2; |
brdp | 2617 | drivers/char/stallion.c | if (brdp->brdtype == BRD_ECHPCI) { |
brdp | 2618 | drivers/char/stallion.c | outb(nxtid, brdp->ioctrl); |
brdp | 2619 | drivers/char/stallion.c | ioaddr = brdp->ioaddr2; |
brdp | 2630 | drivers/char/stallion.c | panelp->brdnr = brdp->brdnr; |
brdp | 2635 | drivers/char/stallion.c | if ((brdp->nrports + 16) > 32) |
brdp | 2639 | drivers/char/stallion.c | brdp->nrports += 16; |
brdp | 2645 | drivers/char/stallion.c | brdp->nrports += 8; |
brdp | 2649 | drivers/char/stallion.c | brdp->panels[panelnr++] = panelp; |
brdp | 2650 | drivers/char/stallion.c | brdp->nrpanels++; |
brdp | 2651 | drivers/char/stallion.c | if (ioaddr >= (brdp->ioaddr2 + 0x20)) |
brdp | 2655 | drivers/char/stallion.c | if (brdp->brdtype == BRD_ECH) |
brdp | 2656 | drivers/char/stallion.c | outb((brdp->ioctrlval | ECH_BRDDISABLE), brdp->ioctrl); |
brdp | 2658 | drivers/char/stallion.c | brdp->state |= BRD_FOUND; |
brdp | 2659 | drivers/char/stallion.c | i = stl_mapirq(brdp->irq); |
brdp | 2672 | drivers/char/stallion.c | static int stl_brdinit(stlbrd_t *brdp) |
brdp | 2677 | drivers/char/stallion.c | printk("stl_brdinit(brdp=%x)\n", (int) brdp); |
brdp | 2680 | drivers/char/stallion.c | switch (brdp->brdtype) { |
brdp | 2682 | drivers/char/stallion.c | stl_initeio(brdp); |
brdp | 2687 | drivers/char/stallion.c | stl_initech(brdp); |
brdp | 2690 | drivers/char/stallion.c | printk("STALLION: unit=%d is unknown board type=%d\n", brdp->brdnr, brdp->brdtype); |
brdp | 2694 | drivers/char/stallion.c | stl_brds[brdp->brdnr] = brdp; |
brdp | 2695 | drivers/char/stallion.c | if ((brdp->state & BRD_FOUND) == 0) { |
brdp | 2696 | 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 | 2701 | drivers/char/stallion.c | if (brdp->panels[i] != (stlpanel_t *) NULL) |
brdp | 2702 | drivers/char/stallion.c | stl_initports(brdp, brdp->panels[i]); |
brdp | 2704 | 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 | 2719 | drivers/char/stallion.c | stlbrd_t *brdp; |
brdp | 2755 | drivers/char/stallion.c | brdp = (stlbrd_t *) stl_memalloc(sizeof(stlbrd_t)); |
brdp | 2756 | drivers/char/stallion.c | if (brdp == (stlbrd_t *) NULL) { |
brdp | 2760 | drivers/char/stallion.c | memset(brdp, 0, sizeof(stlbrd_t)); |
brdp | 2761 | drivers/char/stallion.c | brdp->brdnr = stl_nrbrds++; |
brdp | 2762 | drivers/char/stallion.c | brdp->brdtype = BRD_ECHPCI; |
brdp | 2768 | drivers/char/stallion.c | brdp->ioaddr2 = (ioaddr & PCI_BASE_ADDRESS_IO_MASK); |
brdp | 2774 | drivers/char/stallion.c | brdp->ioaddr1 = (ioaddr & PCI_BASE_ADDRESS_IO_MASK); |
brdp | 2776 | drivers/char/stallion.c | printk("%s(%d): BAR0=%x BAR1=%x\n", __FILE__, __LINE__, brdp->ioaddr2, brdp->ioaddr1); |
brdp | 2783 | drivers/char/stallion.c | brdp->irq = irq; |
brdp | 2797 | drivers/char/stallion.c | stl_brdinit(brdp); |
brdp | 2816 | drivers/char/stallion.c | stlbrd_t *brdp; |
brdp | 2835 | drivers/char/stallion.c | brdp = (stlbrd_t *) stl_memalloc(sizeof(stlbrd_t)); |
brdp | 2836 | drivers/char/stallion.c | if (brdp == (stlbrd_t *) NULL) { |
brdp | 2840 | drivers/char/stallion.c | memset(brdp, 0, sizeof(stlbrd_t)); |
brdp | 2842 | drivers/char/stallion.c | brdp->brdnr = i; |
brdp | 2843 | drivers/char/stallion.c | brdp->brdtype = confp->brdtype; |
brdp | 2844 | drivers/char/stallion.c | brdp->ioaddr1 = confp->ioaddr1; |
brdp | 2845 | drivers/char/stallion.c | brdp->ioaddr2 = confp->ioaddr2; |
brdp | 2846 | drivers/char/stallion.c | brdp->irq = confp->irq; |
brdp | 2847 | drivers/char/stallion.c | brdp->irqtype = confp->irqtype; |
brdp | 2848 | drivers/char/stallion.c | stl_brdinit(brdp); |