taglinefilesource code
brdp450drivers/char/istallion.c#define  EBRDINIT(brdp)            \
brdp451drivers/char/istallion.cif (brdp->init != NULL)          \
brdp452drivers/char/istallion.c(* brdp->init)(brdp)
brdp454drivers/char/istallion.c#define  EBRDENABLE(brdp)          \
brdp455drivers/char/istallion.cif (brdp->enable != NULL)        \
brdp456drivers/char/istallion.c(* brdp->enable)(brdp);
brdp458drivers/char/istallion.c#define  EBRDDISABLE(brdp)          \
brdp459drivers/char/istallion.cif (brdp->disable != NULL)        \
brdp460drivers/char/istallion.c(* brdp->disable)(brdp);
brdp462drivers/char/istallion.c#define  EBRDINTR(brdp)            \
brdp463drivers/char/istallion.cif (brdp->intr != NULL)          \
brdp464drivers/char/istallion.c(* brdp->intr)(brdp);
brdp466drivers/char/istallion.c#define  EBRDRESET(brdp)            \
brdp467drivers/char/istallion.cif (brdp->reset != NULL)        \
brdp468drivers/char/istallion.c(* brdp->reset)(brdp);
brdp470drivers/char/istallion.c#define  EBRDGETMEMPTR(brdp,offset)        \
brdp471drivers/char/istallion.c(* brdp->getmemptr)(brdp, offset, __LINE__)
brdp534drivers/char/istallion.cstatic int  stli_brdinit(stlibrd_t *brdp);
brdp535drivers/char/istallion.cstatic int  stli_initecp(stlibrd_t *brdp);
brdp536drivers/char/istallion.cstatic int  stli_initonb(stlibrd_t *brdp);
brdp537drivers/char/istallion.cstatic int  stli_eisamemprobe(stlibrd_t *brdp);
brdp539drivers/char/istallion.cstatic int  stli_initports(stlibrd_t *brdp);
brdp540drivers/char/istallion.cstatic int  stli_startbrd(stlibrd_t *brdp);
brdp545drivers/char/istallion.cstatic int  stli_hostcmd(stlibrd_t *brdp, int channr);
brdp546drivers/char/istallion.cstatic int  stli_initopen(stlibrd_t *brdp, stliport_t *portp);
brdp547drivers/char/istallion.cstatic int  stli_rawopen(stlibrd_t *brdp, stliport_t *portp, unsigned long arg, int wait);
brdp548drivers/char/istallion.cstatic int  stli_rawclose(stlibrd_t *brdp, stliport_t *portp, unsigned long arg, int wait);
brdp549drivers/char/istallion.cstatic int  stli_waitcarrier(stlibrd_t *brdp, stliport_t *portp, struct file *filp);
brdp553drivers/char/istallion.cstatic int  stli_cmdwait(stlibrd_t *brdp, stliport_t *portp, unsigned long cmd, void *arg, int size, int copyback);
brdp554drivers/char/istallion.cstatic void  stli_sendcmd(stlibrd_t *brdp, stliport_t *portp, unsigned long cmd, void *arg, int size, int copyback);
brdp559drivers/char/istallion.cstatic void  stli_read(stlibrd_t *brdp, stliport_t *portp);
brdp569drivers/char/istallion.cstatic void  stli_ecpinit(stlibrd_t *brdp);
brdp570drivers/char/istallion.cstatic void  stli_ecpenable(stlibrd_t *brdp);
brdp571drivers/char/istallion.cstatic void  stli_ecpdisable(stlibrd_t *brdp);
brdp572drivers/char/istallion.cstatic char  *stli_ecpgetmemptr(stlibrd_t *brdp, unsigned long offset, int line);
brdp573drivers/char/istallion.cstatic void  stli_ecpreset(stlibrd_t *brdp);
brdp574drivers/char/istallion.cstatic void  stli_ecpintr(stlibrd_t *brdp);
brdp575drivers/char/istallion.cstatic void  stli_ecpeiinit(stlibrd_t *brdp);
brdp576drivers/char/istallion.cstatic void  stli_ecpeienable(stlibrd_t *brdp);
brdp577drivers/char/istallion.cstatic void  stli_ecpeidisable(stlibrd_t *brdp);
brdp578drivers/char/istallion.cstatic char  *stli_ecpeigetmemptr(stlibrd_t *brdp, unsigned long offset, int line);
brdp579drivers/char/istallion.cstatic void  stli_ecpeireset(stlibrd_t *brdp);
brdp580drivers/char/istallion.cstatic void  stli_ecpmcenable(stlibrd_t *brdp);
brdp581drivers/char/istallion.cstatic void  stli_ecpmcdisable(stlibrd_t *brdp);
brdp582drivers/char/istallion.cstatic char  *stli_ecpmcgetmemptr(stlibrd_t *brdp, unsigned long offset, int line);
brdp583drivers/char/istallion.cstatic void  stli_ecpmcreset(stlibrd_t *brdp);
brdp585drivers/char/istallion.cstatic void  stli_onbinit(stlibrd_t *brdp);
brdp586drivers/char/istallion.cstatic void  stli_onbenable(stlibrd_t *brdp);
brdp587drivers/char/istallion.cstatic void  stli_onbdisable(stlibrd_t *brdp);
brdp588drivers/char/istallion.cstatic char  *stli_onbgetmemptr(stlibrd_t *brdp, unsigned long offset, int line);
brdp589drivers/char/istallion.cstatic void  stli_onbreset(stlibrd_t *brdp);
brdp590drivers/char/istallion.cstatic void  stli_onbeinit(stlibrd_t *brdp);
brdp591drivers/char/istallion.cstatic void  stli_onbeenable(stlibrd_t *brdp);
brdp592drivers/char/istallion.cstatic void  stli_onbedisable(stlibrd_t *brdp);
brdp593drivers/char/istallion.cstatic char  *stli_onbegetmemptr(stlibrd_t *brdp, unsigned long offset, int line);
brdp594drivers/char/istallion.cstatic void  stli_onbereset(stlibrd_t *brdp);
brdp595drivers/char/istallion.cstatic void  stli_bbyinit(stlibrd_t *brdp);
brdp596drivers/char/istallion.cstatic char  *stli_bbygetmemptr(stlibrd_t *brdp, unsigned long offset, int line);
brdp597drivers/char/istallion.cstatic void  stli_bbyreset(stlibrd_t *brdp);
brdp598drivers/char/istallion.cstatic void  stli_stalinit(stlibrd_t *brdp);
brdp599drivers/char/istallion.cstatic char  *stli_stalgetmemptr(stlibrd_t *brdp, unsigned long offset, int line);
brdp600drivers/char/istallion.cstatic void  stli_stalreset(stlibrd_t *brdp);
brdp672drivers/char/istallion.cstlibrd_t  *brdp;
brdp711drivers/char/istallion.cbrdp = stli_brds[i];
brdp712drivers/char/istallion.cif (brdp == (stlibrd_t *) NULL)
brdp715drivers/char/istallion.cportp = brdp->ports[j];
brdp723drivers/char/istallion.cif (brdp->memaddr >= 0x100000)
brdp724drivers/char/istallion.cvfree(brdp->membase);
brdp725drivers/char/istallion.cif ((brdp->brdtype == BRD_ECP) || (brdp->brdtype == BRD_ECPE) || (brdp->brdtype == BRD_ECPMC))
brdp726drivers/char/istallion.crelease_region(brdp->iobase, ECP_IOSIZE);
brdp728drivers/char/istallion.crelease_region(brdp->iobase, ONB_IOSIZE);
brdp729drivers/char/istallion.ckfree_s(brdp, sizeof(stlibrd_t));
brdp753drivers/char/istallion.cstlibrd_t  *brdp;
brdp766drivers/char/istallion.cbrdp = stli_brds[brdnr];
brdp767drivers/char/istallion.cif (brdp == (stlibrd_t *) NULL)
brdp769drivers/char/istallion.cif ((brdp->state & BST_STARTED) == 0)
brdp772drivers/char/istallion.cif ((portnr < 0) || (portnr > brdp->nrports))
brdp775drivers/char/istallion.cportp = brdp->ports[portnr];
brdp812drivers/char/istallion.cif ((rc = stli_initopen(brdp, portp)) >= 0) {
brdp857drivers/char/istallion.cif ((rc = stli_waitcarrier(brdp, portp, filp)) != 0)
brdp880drivers/char/istallion.cstlibrd_t  *brdp;
brdp925drivers/char/istallion.cbrdp = stli_brds[portp->brdnr];
brdp926drivers/char/istallion.cstli_rawclose(brdp, portp, 0, 0);
brdp932drivers/char/istallion.cstli_sendcmd(brdp, portp, A_SETSIGNALS, &portp->asig, sizeof(asysigs_t), 0);
brdp967drivers/char/istallion.cstatic int stli_initopen(stlibrd_t *brdp, stliport_t *portp)
brdp975drivers/char/istallion.cprintk("stli_initopen(brdp=%x,portp=%x)\n", (int) brdp, (int) portp);
brdp978drivers/char/istallion.cif ((rc = stli_rawopen(brdp, portp, 0, 1)) < 0)
brdp984drivers/char/istallion.cif ((rc = stli_cmdwait(brdp, portp, A_SETNOTIFY, &nt, sizeof(asynotify_t), 0)) < 0)
brdp991drivers/char/istallion.cif ((rc = stli_cmdwait(brdp, portp, A_SETPORT, &aport, sizeof(asyport_t), 0)) < 0)
brdp995drivers/char/istallion.cif ((rc = stli_cmdwait(brdp, portp, A_GETSIGNALS, &portp->asig, sizeof(asysigs_t), 1)) < 0)
brdp1000drivers/char/istallion.cif ((rc = stli_cmdwait(brdp, portp, A_SETSIGNALS, &portp->asig, sizeof(asysigs_t), 0)) < 0)
brdp1015drivers/char/istallion.cstatic int stli_rawopen(stlibrd_t *brdp, stliport_t *portp, unsigned long arg, int wait)
brdp1024drivers/char/istallion.cprintk("stli_rawopen(brdp=%x,portp=%x,arg=%x,wait=%d)\n", (int) brdp, (int) portp, (int) arg, wait);
brdp1052drivers/char/istallion.cEBRDENABLE(brdp);
brdp1053drivers/char/istallion.ccp = &((volatile cdkasy_t *) EBRDGETMEMPTR(brdp, portp->addr))->ctrl;
brdp1056drivers/char/istallion.chdrp = (volatile cdkhdr_t *) EBRDGETMEMPTR(brdp, CDK_CDKADDR);
brdp1058drivers/char/istallion.cbits = ((volatile unsigned char *) hdrp) + brdp->slaveoffset + portp->portidx;
brdp1060drivers/char/istallion.cEBRDDISABLE(brdp);
brdp1095drivers/char/istallion.cstatic int stli_rawclose(stlibrd_t *brdp, stliport_t *portp, unsigned long arg, int wait)
brdp1104drivers/char/istallion.cprintk("stli_rawclose(brdp=%x,portp=%x,arg=%x,wait=%d)\n", (int) brdp, (int) portp, (int) arg, wait);
brdp1127drivers/char/istallion.cEBRDENABLE(brdp);
brdp1128drivers/char/istallion.ccp = &((volatile cdkasy_t *) EBRDGETMEMPTR(brdp, portp->addr))->ctrl;
brdp1131drivers/char/istallion.chdrp = (volatile cdkhdr_t *) EBRDGETMEMPTR(brdp, CDK_CDKADDR);
brdp1133drivers/char/istallion.cbits = ((volatile unsigned char *) hdrp) + brdp->slaveoffset + portp->portidx;
brdp1135drivers/char/istallion.cEBRDDISABLE(brdp);
brdp1171drivers/char/istallion.cstatic int stli_cmdwait(stlibrd_t *brdp, stliport_t *portp, unsigned long cmd, void *arg, int size, int copyback)
brdp1176drivers/char/istallion.cprintk("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);
brdp1189drivers/char/istallion.cstli_sendcmd(brdp, portp, cmd, arg, size, copyback);
brdp1214drivers/char/istallion.cstlibrd_t  *brdp;
brdp1227drivers/char/istallion.cbrdp = stli_brds[portp->brdnr];
brdp1228drivers/char/istallion.cif (brdp == (stlibrd_t *) NULL)
brdp1232drivers/char/istallion.creturn(stli_cmdwait(brdp, portp, A_SETPORT, &aport, sizeof(asyport_t), 0));
brdp1262drivers/char/istallion.cstatic int stli_waitcarrier(stlibrd_t *brdp, stliport_t *portp, struct file *filp)
brdp1268drivers/char/istallion.cprintk("stli_waitcarrier(brdp=%x,portp=%x,filp=%x)\n", (int) brdp, (int) portp, (int) filp);
brdp1291drivers/char/istallion.cif ((rc = stli_cmdwait(brdp, portp, A_SETSIGNALS, &portp->asig, sizeof(asysigs_t), 0)) < 0)
brdp1336drivers/char/istallion.cstlibrd_t    *brdp;
brdp1353drivers/char/istallion.cbrdp = stli_brds[portp->brdnr];
brdp1354drivers/char/istallion.cif (brdp == (stlibrd_t *) NULL)
brdp1372drivers/char/istallion.cEBRDENABLE(brdp);
brdp1373drivers/char/istallion.cap = (volatile cdkasy_t *) EBRDGETMEMPTR(brdp, portp->addr);
brdp1380drivers/char/istallion.cEBRDDISABLE(brdp);
brdp1394drivers/char/istallion.cEBRDENABLE(brdp);
brdp1395drivers/char/istallion.cap = (volatile cdkasy_t *) EBRDGETMEMPTR(brdp, portp->addr);
brdp1411drivers/char/istallion.cshbuf = (char *) EBRDGETMEMPTR(brdp, portp->txoffset);
brdp1426drivers/char/istallion.cap = (volatile cdkasy_t *) EBRDGETMEMPTR(brdp, portp->addr);
brdp1432drivers/char/istallion.chdrp = (volatile cdkhdr_t *) EBRDGETMEMPTR(brdp, CDK_CDKADDR);
brdp1434drivers/char/istallion.cbits = ((volatile unsigned char *) hdrp) + brdp->slaveoffset + portp->portidx;
brdp1438drivers/char/istallion.cEBRDDISABLE(brdp);
brdp1488drivers/char/istallion.cstlibrd_t    *brdp;
brdp1517drivers/char/istallion.cbrdp = stli_brds[portp->brdnr];
brdp1518drivers/char/istallion.cif (brdp == (stlibrd_t *) NULL)
brdp1523drivers/char/istallion.cEBRDENABLE(brdp);
brdp1525drivers/char/istallion.cap = (volatile cdkasy_t *) EBRDGETMEMPTR(brdp, portp->addr);
brdp1541drivers/char/istallion.cshbuf = (char *) EBRDGETMEMPTR(brdp, portp->txoffset);
brdp1557drivers/char/istallion.cap = (volatile cdkasy_t *) EBRDGETMEMPTR(brdp, portp->addr);
brdp1564drivers/char/istallion.chdrp = (volatile cdkhdr_t *) EBRDGETMEMPTR(brdp, CDK_CDKADDR);
brdp1566drivers/char/istallion.cbits = ((volatile unsigned char *) hdrp) + brdp->slaveoffset + portp->portidx;
brdp1570drivers/char/istallion.cEBRDDISABLE(brdp);
brdp1580drivers/char/istallion.cstlibrd_t    *brdp;
brdp1602drivers/char/istallion.cbrdp = stli_brds[portp->brdnr];
brdp1603drivers/char/istallion.cif (brdp == (stlibrd_t *) NULL)
brdp1608drivers/char/istallion.cEBRDENABLE(brdp);
brdp1609drivers/char/istallion.crp = &((volatile cdkasy_t *) EBRDGETMEMPTR(brdp, portp->addr))->txq;
brdp1616drivers/char/istallion.cEBRDDISABLE(brdp);
brdp1640drivers/char/istallion.cstlibrd_t    *brdp;
brdp1657drivers/char/istallion.cbrdp = stli_brds[portp->brdnr];
brdp1658drivers/char/istallion.cif (brdp == (stlibrd_t *) NULL)
brdp1663drivers/char/istallion.cEBRDENABLE(brdp);
brdp1664drivers/char/istallion.crp = &((volatile cdkasy_t *) EBRDGETMEMPTR(brdp, portp->addr))->txq;
brdp1672drivers/char/istallion.cEBRDDISABLE(brdp);
brdp1687drivers/char/istallion.cstlibrd_t    *brdp;
brdp1705drivers/char/istallion.cbrdp = stli_brds[portp->brdnr];
brdp1706drivers/char/istallion.cif (brdp != (stlibrd_t *) NULL)
brdp1707drivers/char/istallion.csio.port = brdp->iobase;
brdp1753drivers/char/istallion.cstlibrd_t  *brdp;
brdp1768drivers/char/istallion.cbrdp = stli_brds[portp->brdnr];
brdp1769drivers/char/istallion.cif (brdp == (stlibrd_t *) NULL)
brdp1780drivers/char/istallion.crc = stli_cmdwait(brdp, portp, A_BREAK, &val, sizeof(unsigned long), 0);
brdp1788drivers/char/istallion.crc = stli_cmdwait(brdp, portp, A_BREAK, &val, sizeof(unsigned long), 0);
brdp1803drivers/char/istallion.cif ((rc = stli_cmdwait(brdp, portp, A_GETSIGNALS, &portp->asig, sizeof(asysigs_t), 1)) < 0)
brdp1813drivers/char/istallion.crc = stli_cmdwait(brdp, portp, A_SETSIGNALS, &portp->asig, sizeof(asysigs_t), 0);
brdp1820drivers/char/istallion.crc = stli_cmdwait(brdp, portp, A_SETSIGNALS, &portp->asig, sizeof(asysigs_t), 0);
brdp1827drivers/char/istallion.crc = stli_cmdwait(brdp, portp, A_SETSIGNALS, &portp->asig, sizeof(asysigs_t), 0);
brdp1881drivers/char/istallion.cstlibrd_t  *brdp;
brdp1896drivers/char/istallion.cbrdp = stli_brds[portp->brdnr];
brdp1897drivers/char/istallion.cif (brdp == (stlibrd_t *) NULL)
brdp1905drivers/char/istallion.cstli_cmdwait(brdp, portp, A_SETPORT, &aport, sizeof(asyport_t), 0);
brdp1907drivers/char/istallion.cstli_cmdwait(brdp, portp, A_SETSIGNALS, &portp->asig, sizeof(asysigs_t), 0);
brdp1977drivers/char/istallion.cstlibrd_t  *brdp;
brdp1992drivers/char/istallion.cbrdp = stli_brds[portp->brdnr];
brdp1993drivers/char/istallion.cif (brdp == (stlibrd_t *) NULL)
brdp1999drivers/char/istallion.cstli_cmdwait(brdp, portp, A_PORTCTRL, &actrl, sizeof(asyctrl_t));
brdp2012drivers/char/istallion.cstlibrd_t  *brdp;
brdp2026drivers/char/istallion.cbrdp = stli_brds[portp->brdnr];
brdp2027drivers/char/istallion.cif (brdp == (stlibrd_t *) NULL)
brdp2033drivers/char/istallion.cstli_cmdwait(brdp, portp, A_PORTCTRL, &actrl, sizeof(asyctrl_t));
brdp2076drivers/char/istallion.cstlibrd_t  *brdp;
brdp2090drivers/char/istallion.cbrdp = stli_brds[portp->brdnr];
brdp2091drivers/char/istallion.cif (brdp == (stlibrd_t *) NULL)
brdp2099drivers/char/istallion.cstli_rawclose(brdp, portp, 0, 0);
brdp2107drivers/char/istallion.cstli_sendcmd(brdp, portp, A_SETSIGNALSF, &portp->asig, sizeof(asysigs_t), 0);
brdp2134drivers/char/istallion.cstlibrd_t  *brdp;
brdp2148drivers/char/istallion.cbrdp = stli_brds[portp->brdnr];
brdp2149drivers/char/istallion.cif (brdp == (stlibrd_t *) NULL)
brdp2167drivers/char/istallion.cstli_sendcmd(brdp, portp, A_FLUSH, &ftype, sizeof(unsigned long), 0);
brdp2188drivers/char/istallion.cstatic void stli_sendcmd(stlibrd_t *brdp, stliport_t *portp, unsigned long cmd, void *arg, int size, int copyback)
brdp2196drivers/char/istallion.cprintk("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);
brdp2208drivers/char/istallion.cEBRDENABLE(brdp);
brdp2209drivers/char/istallion.ccp = &((volatile cdkasy_t *) EBRDGETMEMPTR(brdp, portp->addr))->ctrl;
brdp2219drivers/char/istallion.chdrp = (volatile cdkhdr_t *) EBRDGETMEMPTR(brdp, CDK_CDKADDR);
brdp2221drivers/char/istallion.cbits = ((volatile unsigned char *) hdrp) + brdp->slaveoffset + portp->portidx;
brdp2224drivers/char/istallion.cEBRDDISABLE(brdp);
brdp2238drivers/char/istallion.cstatic inline void stli_read(stlibrd_t *brdp, stliport_t *portp)
brdp2247drivers/char/istallion.cprintk("stli_read(brdp=%x,portp=%d)\n", (int) brdp, (int) portp);
brdp2256drivers/char/istallion.crp = &((volatile cdkasy_t *) EBRDGETMEMPTR(brdp, portp->addr))->rxq;
brdp2271drivers/char/istallion.cshbuf = (volatile char *) EBRDGETMEMPTR(brdp, portp->rxoffset);
brdp2288drivers/char/istallion.crp = &((volatile cdkasy_t *) EBRDGETMEMPTR(brdp, portp->addr))->rxq;
brdp2347drivers/char/istallion.cstatic inline int stli_hostcmd(stlibrd_t *brdp, int channr)
brdp2358drivers/char/istallion.cprintk("stli_hostcmd(brdp=%x,channr=%d)\n", (int) brdp, channr);
brdp2361drivers/char/istallion.cportp = brdp->ports[(channr - 1)];
brdp2362drivers/char/istallion.cap = (volatile cdkasy_t *) EBRDGETMEMPTR(brdp, portp->addr);
brdp2451drivers/char/istallion.cEBRDENABLE(brdp);
brdp2466drivers/char/istallion.cEBRDENABLE(brdp);
brdp2476drivers/char/istallion.cstli_read(brdp, portp);
brdp2490drivers/char/istallion.cstli_read(brdp, portp);
brdp2513drivers/char/istallion.cstlibrd_t    *brdp;
brdp2524drivers/char/istallion.cbrdp = stli_brds[brdnr];
brdp2525drivers/char/istallion.cif (brdp == (stlibrd_t *) NULL)
brdp2527drivers/char/istallion.cif ((brdp->state & BST_STARTED) == 0)
brdp2530drivers/char/istallion.cEBRDENABLE(brdp);
brdp2531drivers/char/istallion.chdrp = (volatile cdkhdr_t *) EBRDGETMEMPTR(brdp, CDK_CDKADDR);
brdp2534drivers/char/istallion.cbitsize = brdp->bitsize;
brdp2535drivers/char/istallion.cnrdevs = brdp->nrdevs;
brdp2545drivers/char/istallion.cmemcpy(&bits[0], (((unsigned char *) hdrp) + brdp->hostoffset), bitsize);
brdp2553drivers/char/istallion.cstli_hostcmd(brdp, channr);
brdp2567drivers/char/istallion.cmemcpy(&bits[0], (((unsigned char *) hdrp) + brdp->slaveoffset), bitsize);
brdp2575drivers/char/istallion.cportp = brdp->ports[(channr - 1)];
brdp2590drivers/char/istallion.cmemcpy((((unsigned char *) hdrp) + brdp->slaveoffset), &bits[0], bitsize);
brdp2593drivers/char/istallion.cEBRDDISABLE(brdp);
brdp2768drivers/char/istallion.cstatic int stli_initports(stlibrd_t *brdp)
brdp2774drivers/char/istallion.cprintk("stli_initports(brdp=%x)\n", (int) brdp);
brdp2777drivers/char/istallion.cfor (i = 0, panelnr = 0, panelport = 0; (i < brdp->nrports); i++) {
brdp2787drivers/char/istallion.cportp->brdnr = brdp->brdnr;
brdp2797drivers/char/istallion.cif (panelport >= brdp->panels[panelnr]) {
brdp2801drivers/char/istallion.cbrdp->ports[i] = portp;
brdp2813drivers/char/istallion.cstatic void stli_ecpinit(stlibrd_t *brdp)
brdp2818drivers/char/istallion.cprintk("stli_ecpinit(brdp=%d)\n", (int) brdp);
brdp2821drivers/char/istallion.coutb(ECP_ATSTOP, (brdp->iobase + ECP_ATCONFR));
brdp2823drivers/char/istallion.coutb(ECP_ATDISABLE, (brdp->iobase + ECP_ATCONFR));
brdp2826drivers/char/istallion.cmemconf = (brdp->memaddr & ECP_ATADDRMASK) >> ECP_ATADDRSHFT;
brdp2827drivers/char/istallion.coutb(memconf, (brdp->iobase + ECP_ATMEMAR));
brdp2832drivers/char/istallion.cstatic void stli_ecpenable(stlibrd_t *brdp)
brdp2835drivers/char/istallion.cprintk("stli_ecpenable(brdp=%x)\n", (int) brdp);
brdp2837drivers/char/istallion.coutb(ECP_ATENABLE, (brdp->iobase + ECP_ATCONFR));
brdp2842drivers/char/istallion.cstatic void stli_ecpdisable(stlibrd_t *brdp)
brdp2845drivers/char/istallion.cprintk("stli_ecpdisable(brdp=%x)\n", (int) brdp);
brdp2847drivers/char/istallion.coutb(ECP_ATDISABLE, (brdp->iobase + ECP_ATCONFR));
brdp2852drivers/char/istallion.cstatic char *stli_ecpgetmemptr(stlibrd_t *brdp, unsigned long offset, int line)
brdp2858drivers/char/istallion.cprintk("stli_ecpgetmemptr(brdp=%x,offset=%x)\n", (int) brdp, (int) offset);
brdp2861drivers/char/istallion.cif (offset > brdp->memsize) {
brdp2862drivers/char/istallion.cprintk("STALLION: shared memory pointer=%x out of range at line=%d(%d), brd=%d\n", (int) offset, line, __LINE__, brdp->brdnr);
brdp2866drivers/char/istallion.cptr = brdp->membase + (offset % ECP_ATPAGESIZE);
brdp2869drivers/char/istallion.coutb(val, (brdp->iobase + ECP_ATMEMPR));
brdp2875drivers/char/istallion.cstatic void stli_ecpreset(stlibrd_t *brdp)
brdp2878drivers/char/istallion.cprintk("stli_ecpreset(brdp=%x)\n", (int) brdp);
brdp2881drivers/char/istallion.coutb(ECP_ATSTOP, (brdp->iobase + ECP_ATCONFR));
brdp2883drivers/char/istallion.coutb(ECP_ATDISABLE, (brdp->iobase + ECP_ATCONFR));
brdp2889drivers/char/istallion.cstatic void stli_ecpintr(stlibrd_t *brdp)
brdp2892drivers/char/istallion.cprintk("stli_ecpintr(brdp=%x)\n", (int) brdp);
brdp2894drivers/char/istallion.coutb(0x1, brdp->iobase);
brdp2903drivers/char/istallion.cstatic void stli_ecpeiinit(stlibrd_t *brdp)
brdp2908drivers/char/istallion.cprintk("stli_ecpeiinit(brdp=%x)\n", (int) brdp);
brdp2911drivers/char/istallion.coutb(0x1, (brdp->iobase + ECP_EIBRDENAB));
brdp2912drivers/char/istallion.coutb(ECP_EISTOP, (brdp->iobase + ECP_EICONFR));
brdp2914drivers/char/istallion.coutb(ECP_EIDISABLE, (brdp->iobase + ECP_EICONFR));
brdp2917drivers/char/istallion.cmemconf = (brdp->memaddr & ECP_EIADDRMASKL) >> ECP_EIADDRSHFTL;
brdp2918drivers/char/istallion.coutb(memconf, (brdp->iobase + ECP_EIMEMARL));
brdp2919drivers/char/istallion.cmemconf = (brdp->memaddr & ECP_EIADDRMASKH) >> ECP_EIADDRSHFTH;
brdp2920drivers/char/istallion.coutb(memconf, (brdp->iobase + ECP_EIMEMARH));
brdp2925drivers/char/istallion.cstatic void stli_ecpeienable(stlibrd_t *brdp)
brdp2927drivers/char/istallion.coutb(ECP_EIENABLE, (brdp->iobase + ECP_EICONFR));
brdp2932drivers/char/istallion.cstatic void stli_ecpeidisable(stlibrd_t *brdp)
brdp2934drivers/char/istallion.coutb(ECP_EIDISABLE, (brdp->iobase + ECP_EICONFR));
brdp2939drivers/char/istallion.cstatic char *stli_ecpeigetmemptr(stlibrd_t *brdp, unsigned long offset, int line)
brdp2945drivers/char/istallion.cprintk("stli_ecpeigetmemptr(brdp=%x,offset=%x,line=%d)\n", (int) brdp, (int) offset, line);
brdp2948drivers/char/istallion.cif (offset > brdp->memsize) {
brdp2949drivers/char/istallion.cprintk("STALLION: shared memory pointer=%x out of range at line=%d(%d), brd=%d\n", (int) offset, line, __LINE__, brdp->brdnr);
brdp2953drivers/char/istallion.cptr = brdp->membase + (offset % ECP_EIPAGESIZE);
brdp2959drivers/char/istallion.coutb(val, (brdp->iobase + ECP_EICONFR));
brdp2965drivers/char/istallion.cstatic void stli_ecpeireset(stlibrd_t *brdp)
brdp2967drivers/char/istallion.coutb(ECP_EISTOP, (brdp->iobase + ECP_EICONFR));
brdp2969drivers/char/istallion.coutb(ECP_EIDISABLE, (brdp->iobase + ECP_EICONFR));
brdp2979drivers/char/istallion.cstatic void stli_ecpmcenable(stlibrd_t *brdp)
brdp2981drivers/char/istallion.coutb(ECP_MCENABLE, (brdp->iobase + ECP_MCCONFR));
brdp2986drivers/char/istallion.cstatic void stli_ecpmcdisable(stlibrd_t *brdp)
brdp2988drivers/char/istallion.coutb(ECP_MCDISABLE, (brdp->iobase + ECP_MCCONFR));
brdp2993drivers/char/istallion.cstatic char *stli_ecpmcgetmemptr(stlibrd_t *brdp, unsigned long offset, int line)
brdp2998drivers/char/istallion.cif (offset > brdp->memsize) {
brdp2999drivers/char/istallion.cprintk("STALLION: shared memory pointer=%x out of range at line=%d(%d), brd=%d\n", (int) offset, line, __LINE__, brdp->brdnr);
brdp3003drivers/char/istallion.cptr = brdp->membase + (offset % ECP_MCPAGESIZE);
brdp3006drivers/char/istallion.coutb(val, (brdp->iobase + ECP_MCCONFR));
brdp3012drivers/char/istallion.cstatic void stli_ecpmcreset(stlibrd_t *brdp)
brdp3014drivers/char/istallion.coutb(ECP_MCSTOP, (brdp->iobase + ECP_MCCONFR));
brdp3016drivers/char/istallion.coutb(ECP_MCDISABLE, (brdp->iobase + ECP_MCCONFR));
brdp3026drivers/char/istallion.cstatic void stli_onbinit(stlibrd_t *brdp)
brdp3032drivers/char/istallion.cprintk("stli_onbinit(brdp=%d)\n", (int) brdp);
brdp3035drivers/char/istallion.coutb(ONB_ATSTOP, (brdp->iobase + ONB_ATCONFR));
brdp3037drivers/char/istallion.coutb(ONB_ATDISABLE, (brdp->iobase + ONB_ATCONFR));
brdp3041drivers/char/istallion.cmemconf = (brdp->memaddr & ONB_ATADDRMASK) >> ONB_ATADDRSHFT;
brdp3042drivers/char/istallion.coutb(memconf, (brdp->iobase + ONB_ATMEMAR));
brdp3043drivers/char/istallion.coutb(0x1, brdp->iobase);
brdp3049drivers/char/istallion.cstatic void stli_onbenable(stlibrd_t *brdp)
brdp3052drivers/char/istallion.cprintk("stli_onbenable(brdp=%x)\n", (int) brdp);
brdp3054drivers/char/istallion.coutb((brdp->enabval | ONB_ATENABLE), (brdp->iobase + ONB_ATCONFR));
brdp3059drivers/char/istallion.cstatic void stli_onbdisable(stlibrd_t *brdp)
brdp3062drivers/char/istallion.cprintk("stli_onbdisable(brdp=%x)\n", (int) brdp);
brdp3064drivers/char/istallion.coutb((brdp->enabval | ONB_ATDISABLE), (brdp->iobase + ONB_ATCONFR));
brdp3069drivers/char/istallion.cstatic char *stli_onbgetmemptr(stlibrd_t *brdp, unsigned long offset, int line)
brdp3074drivers/char/istallion.cprintk("stli_onbgetmemptr(brdp=%x,offset=%x)\n", (int) brdp, (int) offset);
brdp3077drivers/char/istallion.cif (offset > brdp->memsize) {
brdp3078drivers/char/istallion.cprintk("STALLION: shared memory pointer=%x out of range at line=%d(%d), brd=%d\n", (int) offset, line, __LINE__, brdp->brdnr);
brdp3081drivers/char/istallion.cptr = brdp->membase + (offset % ONB_ATPAGESIZE);
brdp3088drivers/char/istallion.cstatic void stli_onbreset(stlibrd_t *brdp)
brdp3093drivers/char/istallion.cprintk("stli_onbreset(brdp=%x)\n", (int) brdp);
brdp3096drivers/char/istallion.coutb(ONB_ATSTOP, (brdp->iobase + ONB_ATCONFR));
brdp3098drivers/char/istallion.coutb(ONB_ATDISABLE, (brdp->iobase + ONB_ATCONFR));
brdp3109drivers/char/istallion.cstatic void stli_onbeinit(stlibrd_t *brdp)
brdp3115drivers/char/istallion.cprintk("stli_onbeinit(brdp=%d)\n", (int) brdp);
brdp3118drivers/char/istallion.coutb(0x1, (brdp->iobase + ONB_EIBRDENAB));
brdp3119drivers/char/istallion.coutb(ONB_EISTOP, (brdp->iobase + ONB_EICONFR));
brdp3121drivers/char/istallion.coutb(ONB_EIDISABLE, (brdp->iobase + ONB_EICONFR));
brdp3125drivers/char/istallion.cmemconf = (brdp->memaddr & ONB_EIADDRMASKL) >> ONB_EIADDRSHFTL;
brdp3126drivers/char/istallion.coutb(memconf, (brdp->iobase + ONB_EIMEMARL));
brdp3127drivers/char/istallion.cmemconf = (brdp->memaddr & ONB_EIADDRMASKH) >> ONB_EIADDRSHFTH;
brdp3128drivers/char/istallion.coutb(memconf, (brdp->iobase + ONB_EIMEMARH));
brdp3129drivers/char/istallion.coutb(0x1, brdp->iobase);
brdp3135drivers/char/istallion.cstatic void stli_onbeenable(stlibrd_t *brdp)
brdp3138drivers/char/istallion.cprintk("stli_onbeenable(brdp=%x)\n", (int) brdp);
brdp3140drivers/char/istallion.coutb(ONB_EIENABLE, (brdp->iobase + ONB_EICONFR));
brdp3145drivers/char/istallion.cstatic void stli_onbedisable(stlibrd_t *brdp)
brdp3148drivers/char/istallion.cprintk("stli_onbedisable(brdp=%x)\n", (int) brdp);
brdp3150drivers/char/istallion.coutb(ONB_EIDISABLE, (brdp->iobase + ONB_EICONFR));
brdp3155drivers/char/istallion.cstatic char *stli_onbegetmemptr(stlibrd_t *brdp, unsigned long offset, int line)
brdp3161drivers/char/istallion.cprintk("stli_onbegetmemptr(brdp=%x,offset=%x,line=%d)\n", (int) brdp, (int) offset, line);
brdp3164drivers/char/istallion.cif (offset > brdp->memsize) {
brdp3165drivers/char/istallion.cprintk("STALLION: shared memory pointer=%x out of range at line=%d(%d), brd=%d\n", (int) offset, line, __LINE__, brdp->brdnr);
brdp3169drivers/char/istallion.cptr = brdp->membase + (offset % ONB_EIPAGESIZE);
brdp3175drivers/char/istallion.coutb(val, (brdp->iobase + ONB_EICONFR));
brdp3181drivers/char/istallion.cstatic void stli_onbereset(stlibrd_t *brdp)
brdp3186drivers/char/istallion.cprintk("stli_onbereset(brdp=%x)\n", (int) brdp);
brdp3189drivers/char/istallion.coutb(ONB_EISTOP, (brdp->iobase + ONB_EICONFR));
brdp3191drivers/char/istallion.coutb(ONB_EIDISABLE, (brdp->iobase + ONB_EICONFR));
brdp3202drivers/char/istallion.cstatic void stli_bbyinit(stlibrd_t *brdp)
brdp3207drivers/char/istallion.cprintk("stli_bbyinit(brdp=%d)\n", (int) brdp);
brdp3210drivers/char/istallion.coutb(BBY_ATSTOP, (brdp->iobase + BBY_ATCONFR));
brdp3212drivers/char/istallion.coutb(0, (brdp->iobase + BBY_ATCONFR));
brdp3215drivers/char/istallion.coutb(0x1, brdp->iobase);
brdp3221drivers/char/istallion.cstatic char *stli_bbygetmemptr(stlibrd_t *brdp, unsigned long offset, int line)
brdp3227drivers/char/istallion.cprintk("stli_bbygetmemptr(brdp=%x,offset=%x)\n", (int) brdp, (int) offset);
brdp3230drivers/char/istallion.cif (offset > brdp->memsize) {
brdp3231drivers/char/istallion.cprintk("STALLION: shared memory pointer=%x out of range at line=%d(%d), brd=%d\n", (int) offset, line, __LINE__, brdp->brdnr);
brdp3235drivers/char/istallion.cptr = brdp->membase + (offset % BBY_PAGESIZE);
brdp3238drivers/char/istallion.coutb(val, (brdp->iobase + BBY_ATCONFR));
brdp3244drivers/char/istallion.cstatic void stli_bbyreset(stlibrd_t *brdp)
brdp3249drivers/char/istallion.cprintk("stli_bbyreset(brdp=%x)\n", (int) brdp);
brdp3252drivers/char/istallion.coutb(BBY_ATSTOP, (brdp->iobase + BBY_ATCONFR));
brdp3254drivers/char/istallion.coutb(0, (brdp->iobase + BBY_ATCONFR));
brdp3265drivers/char/istallion.cstatic void stli_stalinit(stlibrd_t *brdp)
brdp3270drivers/char/istallion.cprintk("stli_stalinit(brdp=%d)\n", (int) brdp);
brdp3273drivers/char/istallion.coutb(0x1, brdp->iobase);
brdp3280drivers/char/istallion.cstatic char *stli_stalgetmemptr(stlibrd_t *brdp, unsigned long offset, int line)
brdp3285drivers/char/istallion.cprintk("stli_stalgetmemptr(brdp=%x,offset=%x)\n", (int) brdp, (int) offset);
brdp3288drivers/char/istallion.cif (offset > brdp->memsize) {
brdp3289drivers/char/istallion.cprintk("STALLION: shared memory pointer=%x out of range at line=%d(%d), brd=%d\n", (int) offset, line, __LINE__, brdp->brdnr);
brdp3292drivers/char/istallion.cptr = brdp->membase + (offset % STAL_PAGESIZE);
brdp3299drivers/char/istallion.cstatic void stli_stalreset(stlibrd_t *brdp)
brdp3305drivers/char/istallion.cprintk("stli_stalreset(brdp=%x)\n", (int) brdp);
brdp3308drivers/char/istallion.cvecp = (volatile unsigned long *) (brdp->membase + 0x30);
brdp3310drivers/char/istallion.coutb(0, brdp->iobase);
brdp3322drivers/char/istallion.cstatic int stli_initecp(stlibrd_t *brdp)
brdp3330drivers/char/istallion.cprintk("stli_initecp(brdp=%x)\n", (int) brdp);
brdp3336drivers/char/istallion.cif ((brdp->iobase == 0) || (brdp->memaddr == 0))
brdp3344drivers/char/istallion.cswitch (brdp->brdtype) {
brdp3346drivers/char/istallion.cbrdp->membase = (void *) brdp->memaddr;
brdp3347drivers/char/istallion.cbrdp->memsize = ECP_MEMSIZE;
brdp3348drivers/char/istallion.cbrdp->pagesize = ECP_ATPAGESIZE;
brdp3349drivers/char/istallion.cbrdp->init = stli_ecpinit;
brdp3350drivers/char/istallion.cbrdp->enable = stli_ecpenable;
brdp3351drivers/char/istallion.cbrdp->reenable = stli_ecpenable;
brdp3352drivers/char/istallion.cbrdp->disable = stli_ecpdisable;
brdp3353drivers/char/istallion.cbrdp->getmemptr = stli_ecpgetmemptr;
brdp3354drivers/char/istallion.cbrdp->intr = stli_ecpintr;
brdp3355drivers/char/istallion.cbrdp->reset = stli_ecpreset;
brdp3359drivers/char/istallion.cbrdp->membase = (void *) brdp->memaddr;
brdp3360drivers/char/istallion.cbrdp->memsize = ECP_MEMSIZE;
brdp3361drivers/char/istallion.cbrdp->pagesize = ECP_EIPAGESIZE;
brdp3362drivers/char/istallion.cbrdp->init = stli_ecpeiinit;
brdp3363drivers/char/istallion.cbrdp->enable = stli_ecpeienable;
brdp3364drivers/char/istallion.cbrdp->reenable = stli_ecpeienable;
brdp3365drivers/char/istallion.cbrdp->disable = stli_ecpeidisable;
brdp3366drivers/char/istallion.cbrdp->getmemptr = stli_ecpeigetmemptr;
brdp3367drivers/char/istallion.cbrdp->intr = stli_ecpintr;
brdp3368drivers/char/istallion.cbrdp->reset = stli_ecpeireset;
brdp3372drivers/char/istallion.cbrdp->membase = (void *) brdp->memaddr;
brdp3373drivers/char/istallion.cbrdp->memsize = ECP_MEMSIZE;
brdp3374drivers/char/istallion.cbrdp->pagesize = ECP_MCPAGESIZE;
brdp3375drivers/char/istallion.cbrdp->init = NULL;
brdp3376drivers/char/istallion.cbrdp->enable = stli_ecpmcenable;
brdp3377drivers/char/istallion.cbrdp->reenable = stli_ecpmcenable;
brdp3378drivers/char/istallion.cbrdp->disable = stli_ecpmcdisable;
brdp3379drivers/char/istallion.cbrdp->getmemptr = stli_ecpmcgetmemptr;
brdp3380drivers/char/istallion.cbrdp->intr = stli_ecpintr;
brdp3381drivers/char/istallion.cbrdp->reset = stli_ecpmcreset;
brdp3394drivers/char/istallion.cEBRDINIT(brdp);
brdp3396drivers/char/istallion.cif (brdp->memaddr > 0x100000) {
brdp3397drivers/char/istallion.cbrdp->membase = vremap(brdp->memaddr, brdp->memsize);
brdp3398drivers/char/istallion.cif (brdp->membase == (void *) NULL)
brdp3407drivers/char/istallion.cEBRDENABLE(brdp);
brdp3408drivers/char/istallion.csigsp = (cdkecpsig_t *) EBRDGETMEMPTR(brdp, CDK_SIGADDR);
brdp3410drivers/char/istallion.cEBRDDISABLE(brdp);
brdp3432drivers/char/istallion.cbrdp->panels[panelnr] = 16;
brdp3433drivers/char/istallion.cbrdp->nrports += 16;
brdp3436drivers/char/istallion.cbrdp->panels[panelnr] = 8;
brdp3437drivers/char/istallion.cbrdp->nrports += 8;
brdp3440drivers/char/istallion.cbrdp->panelids[panelnr] = status;
brdp3441drivers/char/istallion.cbrdp->nrpanels++;
brdp3444drivers/char/istallion.crequest_region(brdp->iobase, ECP_IOSIZE, "serial(ECP)");
brdp3445drivers/char/istallion.cbrdp->state |= BST_FOUND;
brdp3456drivers/char/istallion.cstatic int stli_initonb(stlibrd_t *brdp)
brdp3463drivers/char/istallion.cprintk("stli_initonb(brdp=%x)\n", (int) brdp);
brdp3469drivers/char/istallion.cif ((brdp->iobase == 0) || (brdp->memaddr == 0))
brdp3477drivers/char/istallion.cswitch (brdp->brdtype) {
brdp3483drivers/char/istallion.cbrdp->membase = (void *) brdp->memaddr;
brdp3484drivers/char/istallion.cbrdp->memsize = ONB_MEMSIZE;
brdp3485drivers/char/istallion.cbrdp->pagesize = ONB_ATPAGESIZE;
brdp3486drivers/char/istallion.cbrdp->init = stli_onbinit;
brdp3487drivers/char/istallion.cbrdp->enable = stli_onbenable;
brdp3488drivers/char/istallion.cbrdp->reenable = stli_onbenable;
brdp3489drivers/char/istallion.cbrdp->disable = stli_onbdisable;
brdp3490drivers/char/istallion.cbrdp->getmemptr = stli_onbgetmemptr;
brdp3491drivers/char/istallion.cbrdp->intr = stli_ecpintr;
brdp3492drivers/char/istallion.cbrdp->reset = stli_onbreset;
brdp3493drivers/char/istallion.cif (brdp->memaddr > 0x100000)
brdp3494drivers/char/istallion.cbrdp->enabval = ONB_MEMENABHI;
brdp3496drivers/char/istallion.cbrdp->enabval = ONB_MEMENABLO;
brdp3500drivers/char/istallion.cbrdp->membase = (void *) brdp->memaddr;
brdp3501drivers/char/istallion.cbrdp->memsize = ONB_EIMEMSIZE;
brdp3502drivers/char/istallion.cbrdp->pagesize = ONB_EIPAGESIZE;
brdp3503drivers/char/istallion.cbrdp->init = stli_onbeinit;
brdp3504drivers/char/istallion.cbrdp->enable = stli_onbeenable;
brdp3505drivers/char/istallion.cbrdp->reenable = stli_onbeenable;
brdp3506drivers/char/istallion.cbrdp->disable = stli_onbedisable;
brdp3507drivers/char/istallion.cbrdp->getmemptr = stli_onbegetmemptr;
brdp3508drivers/char/istallion.cbrdp->intr = stli_ecpintr;
brdp3509drivers/char/istallion.cbrdp->reset = stli_onbereset;
brdp3515drivers/char/istallion.cbrdp->membase = (void *) brdp->memaddr;
brdp3516drivers/char/istallion.cbrdp->memsize = BBY_MEMSIZE;
brdp3517drivers/char/istallion.cbrdp->pagesize = BBY_PAGESIZE;
brdp3518drivers/char/istallion.cbrdp->init = stli_bbyinit;
brdp3519drivers/char/istallion.cbrdp->enable = NULL;
brdp3520drivers/char/istallion.cbrdp->reenable = NULL;
brdp3521drivers/char/istallion.cbrdp->disable = NULL;
brdp3522drivers/char/istallion.cbrdp->getmemptr = stli_bbygetmemptr;
brdp3523drivers/char/istallion.cbrdp->intr = stli_ecpintr;
brdp3524drivers/char/istallion.cbrdp->reset = stli_bbyreset;
brdp3528drivers/char/istallion.cbrdp->membase = (void *) brdp->memaddr;
brdp3529drivers/char/istallion.cbrdp->memsize = STAL_MEMSIZE;
brdp3530drivers/char/istallion.cbrdp->pagesize = STAL_PAGESIZE;
brdp3531drivers/char/istallion.cbrdp->init = stli_stalinit;
brdp3532drivers/char/istallion.cbrdp->enable = NULL;
brdp3533drivers/char/istallion.cbrdp->reenable = NULL;
brdp3534drivers/char/istallion.cbrdp->disable = NULL;
brdp3535drivers/char/istallion.cbrdp->getmemptr = stli_stalgetmemptr;
brdp3536drivers/char/istallion.cbrdp->intr = stli_ecpintr;
brdp3537drivers/char/istallion.cbrdp->reset = stli_stalreset;
brdp3550drivers/char/istallion.cEBRDINIT(brdp);
brdp3552drivers/char/istallion.cif (brdp->memaddr > 0x100000) {
brdp3553drivers/char/istallion.cbrdp->membase = vremap(brdp->memaddr, brdp->memsize);
brdp3554drivers/char/istallion.cif (brdp->membase == (void *) NULL)
brdp3563drivers/char/istallion.cEBRDENABLE(brdp);
brdp3564drivers/char/istallion.csigsp = (cdkonbsig_t *) EBRDGETMEMPTR(brdp, CDK_SIGADDR);
brdp3566drivers/char/istallion.cEBRDDISABLE(brdp);
brdp3582drivers/char/istallion.cbrdp->nrpanels = 1;
brdp3584drivers/char/istallion.cbrdp->nrports = 32;
brdp3590drivers/char/istallion.cbrdp->nrports = i;
brdp3592drivers/char/istallion.cbrdp->panels[0] = brdp->nrports;
brdp3594drivers/char/istallion.crequest_region(brdp->iobase, ONB_IOSIZE, "serial(ONB/BBY)");
brdp3595drivers/char/istallion.cbrdp->state |= BST_FOUND;
brdp3607drivers/char/istallion.cstatic int stli_startbrd(stlibrd_t *brdp)
brdp3617drivers/char/istallion.cprintk("stli_startbrd(brdp=%x)\n", (int) brdp);
brdp3624drivers/char/istallion.cEBRDENABLE(brdp);
brdp3625drivers/char/istallion.chdrp = (volatile cdkhdr_t *) EBRDGETMEMPTR(brdp, CDK_CDKADDR);
brdp3635drivers/char/istallion.cif (nrdevs < (brdp->nrports + 1)) {
brdp3637drivers/char/istallion.cbrdp->nrports = nrdevs - 1;
brdp3639drivers/char/istallion.cbrdp->nrdevs = nrdevs;
brdp3640drivers/char/istallion.cbrdp->hostoffset = hdrp->hostp - CDK_CDKADDR;
brdp3641drivers/char/istallion.cbrdp->slaveoffset = hdrp->slavep - CDK_CDKADDR;
brdp3642drivers/char/istallion.cbrdp->bitsize = (nrdevs + 7) / 8;
brdp3644drivers/char/istallion.cif (((unsigned long) memp) > brdp->memsize) {
brdp3649drivers/char/istallion.cmemp = (volatile cdkmem_t *) EBRDGETMEMPTR(brdp, (unsigned long) memp);
brdp3664drivers/char/istallion.cportp = brdp->ports[portnr];
brdp3680drivers/char/istallion.cportp = brdp->ports[portnr];
brdp3685drivers/char/istallion.cap = (volatile cdkasy_t *) EBRDGETMEMPTR(brdp, portp->addr);
brdp3695drivers/char/istallion.cEBRDDISABLE(brdp);
brdp3699drivers/char/istallion.cbrdp->state |= BST_STARTED;
brdp3716drivers/char/istallion.cstatic int stli_brdinit(stlibrd_t *brdp)
brdp3719drivers/char/istallion.cprintk("stli_brdinit(brdp=%x)\n", (int) brdp);
brdp3722drivers/char/istallion.cstli_brds[brdp->brdnr] = brdp;
brdp3724drivers/char/istallion.cswitch (brdp->brdtype) {
brdp3728drivers/char/istallion.cstli_initecp(brdp);
brdp3740drivers/char/istallion.cstli_initonb(brdp);
brdp3746drivers/char/istallion.cprintk("STALLION: %s board type not supported in this driver\n", stli_brdnames[brdp->brdtype]);
brdp3749drivers/char/istallion.cprintk("STALLION: unit=%d is unknown board type=%d\n", brdp->brdnr, brdp->brdtype);
brdp3753drivers/char/istallion.cif ((brdp->state & BST_FOUND) == 0) {
brdp3754drivers/char/istallion.cprintk("STALLION: %s board not found, unit=%d io=%x mem=%x\n", stli_brdnames[brdp->brdtype], brdp->brdnr, brdp->iobase, (int) brdp->memaddr);
brdp3758drivers/char/istallion.cstli_initports(brdp);
brdp3759drivers/char/istallion.cprintk("STALLION: %s found, unit=%d io=%x mem=%x nrpanels=%d nrports=%d\n", stli_brdnames[brdp->brdtype], brdp->brdnr, brdp->iobase, (int) brdp->memaddr, brdp->nrpanels, brdp->nrports);
brdp3770drivers/char/istallion.cstatic int stli_eisamemprobe(stlibrd_t *brdp)
brdp3777drivers/char/istallion.cprintk("stli_eisamemprobe(brdp=%x)\n", (int) brdp);
brdp3786drivers/char/istallion.cif (brdp->brdtype == BRD_ECPE) {
brdp3787drivers/char/istallion.coutb(0x1, (brdp->iobase + ECP_EIBRDENAB));
brdp3788drivers/char/istallion.coutb(ECP_EISTOP, (brdp->iobase + ECP_EICONFR));
brdp3790drivers/char/istallion.coutb(ECP_EIDISABLE, (brdp->iobase + ECP_EICONFR));
brdp3792drivers/char/istallion.cstli_ecpeienable(brdp);
brdp3793drivers/char/istallion.c} else if (brdp->brdtype == BRD_ONBOARDE) {
brdp3794drivers/char/istallion.coutb(0x1, (brdp->iobase + ONB_EIBRDENAB));
brdp3795drivers/char/istallion.coutb(ONB_EISTOP, (brdp->iobase + ONB_EICONFR));
brdp3797drivers/char/istallion.coutb(ONB_EIDISABLE, (brdp->iobase + ONB_EICONFR));
brdp3800drivers/char/istallion.coutb(0x1, brdp->iobase);
brdp3802drivers/char/istallion.cstli_onbeenable(brdp);
brdp3808drivers/char/istallion.cbrdp->memsize = ECP_MEMSIZE;
brdp3815drivers/char/istallion.cbrdp->memaddr = stli_eisamemprobeaddrs[i];
brdp3816drivers/char/istallion.cbrdp->membase = (void *) brdp->memaddr;
brdp3817drivers/char/istallion.cif (brdp->memaddr > 0x100000) {
brdp3818drivers/char/istallion.cbrdp->membase = vremap(brdp->memaddr, brdp->memsize);
brdp3819drivers/char/istallion.cif (brdp->membase == (void *) NULL)
brdp3822drivers/char/istallion.cif (brdp->brdtype == BRD_ECPE) {
brdp3823drivers/char/istallion.cecpsigp = (cdkecpsig_t *) stli_ecpeigetmemptr(brdp, CDK_SIGADDR, __LINE__);
brdp3828drivers/char/istallion.conbsigp = (cdkonbsig_t *) stli_onbegetmemptr(brdp, CDK_SIGADDR, __LINE__);
brdp3834drivers/char/istallion.cif (brdp->memaddr >= 0x100000)
brdp3835drivers/char/istallion.cvfree(brdp->membase);
brdp3844drivers/char/istallion.cif (brdp->brdtype == BRD_ECPE)
brdp3845drivers/char/istallion.cstli_ecpeidisable(brdp);
brdp3847drivers/char/istallion.cstli_onbedisable(brdp);
brdp3850drivers/char/istallion.cbrdp->memaddr = 0;
brdp3851drivers/char/istallion.cbrdp->membase = 0;
brdp3852drivers/char/istallion.cprintk("STALLION: failed to probe shared memory region for %s in EISA slot=%d\n", stli_brdnames[brdp->brdtype], (brdp->iobase >> 12));
brdp3872drivers/char/istallion.cstlibrd_t  *brdp;
brdp3904drivers/char/istallion.cbrdp = stli_brds[i];
brdp3905drivers/char/istallion.cif (brdp == (stlibrd_t *) NULL)
brdp3907drivers/char/istallion.cif (brdp->iobase == iobase)
brdp3926drivers/char/istallion.cbrdp = (stlibrd_t *) stli_memalloc(sizeof(stlibrd_t));
brdp3927drivers/char/istallion.cif (brdp == (stlibrd_t *) NULL) {
brdp3931drivers/char/istallion.cmemset(brdp, 0, sizeof(stlibrd_t));
brdp3933drivers/char/istallion.cbrdp->magic = STLI_BOARDMAGIC;
brdp3934drivers/char/istallion.cbrdp->brdnr = stli_nrbrds++;
brdp3937drivers/char/istallion.cbrdp->brdtype = BRD_ECPE;
brdp3939drivers/char/istallion.cbrdp->brdtype = BRD_ONBOARDE;
brdp3941drivers/char/istallion.cbrdp->brdtype = BRD_UNKNOWN;
brdp3942drivers/char/istallion.cbrdp->iobase = iobase;
brdp3944drivers/char/istallion.cif (stli_eisamemprobe(brdp))
brdp3946drivers/char/istallion.cstli_brdinit(brdp);
brdp3961drivers/char/istallion.cstlibrd_t  *brdp, *nxtbrdp;
brdp3980drivers/char/istallion.cbrdp = (stlibrd_t *) stli_memalloc(sizeof(stlibrd_t));
brdp3981drivers/char/istallion.cif (brdp == (stlibrd_t *) NULL) {
brdp3985drivers/char/istallion.cmemset(brdp, 0, sizeof(stlibrd_t));
brdp3987drivers/char/istallion.cbrdp->magic = STLI_BOARDMAGIC;
brdp3988drivers/char/istallion.cbrdp->brdnr = i;
brdp3989drivers/char/istallion.cbrdp->brdtype = confp->brdtype;
brdp3990drivers/char/istallion.cbrdp->iobase = confp->ioaddr1;
brdp3991drivers/char/istallion.cbrdp->memaddr = confp->memaddr;
brdp3992drivers/char/istallion.cstli_brdinit(brdp);
brdp4009drivers/char/istallion.cbrdp = stli_brds[i];
brdp4010drivers/char/istallion.cif (brdp == (stlibrd_t *) NULL)
brdp4016drivers/char/istallion.cif ((brdp->membase >= nxtbrdp->membase) && (brdp->membase <= (nxtbrdp->membase + nxtbrdp->memsize - 1))) {
brdp4026drivers/char/istallion.cbrdp = stli_brds[i];
brdp4027drivers/char/istallion.cif (brdp == (stlibrd_t *) NULL)
brdp4029drivers/char/istallion.cif (brdp->state & BST_FOUND) {
brdp4030drivers/char/istallion.cEBRDENABLE(brdp);
brdp4031drivers/char/istallion.cbrdp->enable = NULL;
brdp4032drivers/char/istallion.cbrdp->disable = NULL;
brdp4052drivers/char/istallion.cstlibrd_t  *brdp;
brdp4062drivers/char/istallion.cbrdp = stli_brds[brdnr];
brdp4063drivers/char/istallion.cif (brdp == (stlibrd_t *) NULL)
brdp4065drivers/char/istallion.cif (brdp->state == 0)
brdp4067drivers/char/istallion.cif (fp->f_pos >= brdp->memsize)
brdp4070drivers/char/istallion.csize = MIN(count, (brdp->memsize - fp->f_pos));
brdp4074drivers/char/istallion.cEBRDENABLE(brdp);
brdp4076drivers/char/istallion.cmemptr = (void *) EBRDGETMEMPTR(brdp, fp->f_pos);
brdp4077drivers/char/istallion.cn = MIN(size, (brdp->pagesize - (((unsigned long) fp->f_pos) % brdp->pagesize)));
brdp4083drivers/char/istallion.cEBRDDISABLE(brdp);
brdp4101drivers/char/istallion.cstlibrd_t  *brdp;
brdp4112drivers/char/istallion.cbrdp = stli_brds[brdnr];
brdp4113drivers/char/istallion.cif (brdp == (stlibrd_t *) NULL)
brdp4115drivers/char/istallion.cif (brdp->state == 0)
brdp4117drivers/char/istallion.cif (fp->f_pos >= brdp->memsize)
brdp4121drivers/char/istallion.csize = MIN(count, (brdp->memsize - fp->f_pos));
brdp4125drivers/char/istallion.cEBRDENABLE(brdp);
brdp4127drivers/char/istallion.cmemptr = (void *) EBRDGETMEMPTR(brdp, fp->f_pos);
brdp4128drivers/char/istallion.cn = MIN(size, (brdp->pagesize - (((unsigned long) fp->f_pos) % brdp->pagesize)));
brdp4134drivers/char/istallion.cEBRDDISABLE(brdp);
brdp4148drivers/char/istallion.cstlibrd_t  *brdp;
brdp4154drivers/char/istallion.cbrdp = stli_brds[stli_brdstats.brd];
brdp4155drivers/char/istallion.cif (brdp == (stlibrd_t *) NULL)
brdp4159drivers/char/istallion.cstli_brdstats.brd = brdp->brdnr;
brdp4160drivers/char/istallion.cstli_brdstats.type = brdp->brdtype;
brdp4162drivers/char/istallion.cstli_brdstats.state = brdp->state;
brdp4163drivers/char/istallion.cstli_brdstats.ioaddr = brdp->iobase;
brdp4164drivers/char/istallion.cstli_brdstats.memaddr = brdp->memaddr;
brdp4165drivers/char/istallion.cstli_brdstats.nrpanels = brdp->nrpanels;
brdp4166drivers/char/istallion.cstli_brdstats.nrports = brdp->nrports;
brdp4167drivers/char/istallion.cfor (i = 0; (i < brdp->nrpanels); i++) {
brdp4169drivers/char/istallion.cstli_brdstats.panels[i].hwid = brdp->panelids[i];
brdp4170drivers/char/istallion.cstli_brdstats.panels[i].nrports = brdp->panels[i];
brdp4185drivers/char/istallion.cstlibrd_t  *brdp;
brdp4190drivers/char/istallion.cbrdp = stli_brds[brdnr];
brdp4191drivers/char/istallion.cif (brdp == (stlibrd_t *) NULL)
brdp4194drivers/char/istallion.cportnr += brdp->panels[i];
brdp4195drivers/char/istallion.cif ((portnr < 0) || (portnr >= brdp->nrports))
brdp4197drivers/char/istallion.creturn(brdp->ports[portnr]);
brdp4211drivers/char/istallion.cstlibrd_t  *brdp;
brdp4221drivers/char/istallion.cbrdp = stli_brds[portp->brdnr];
brdp4222drivers/char/istallion.cif (brdp == (stlibrd_t *) NULL)
brdp4225drivers/char/istallion.cif (brdp->state & BST_STARTED) {
brdp4226drivers/char/istallion.cif ((rc = stli_cmdwait(brdp, portp, A_GETSTATS, &stli_cdkstats, sizeof(asystats_t), 1)) < 0)
brdp4287drivers/char/istallion.cstlibrd_t  *brdp;
brdp4297drivers/char/istallion.cbrdp = stli_brds[portp->brdnr];
brdp4298drivers/char/istallion.cif (brdp == (stlibrd_t *) NULL)
brdp4301drivers/char/istallion.cif (brdp->state & BST_STARTED) {
brdp4302drivers/char/istallion.cif ((rc = stli_cmdwait(brdp, portp, A_CLEARSTATS, 0, 0, 0)) < 0)
brdp4342drivers/char/istallion.cstlibrd_t  *brdp;
brdp4347drivers/char/istallion.cbrdp = stli_brds[stli_dummybrd.brdnr];
brdp4348drivers/char/istallion.cif (brdp == (stlibrd_t *) NULL)
brdp4350drivers/char/istallion.cmemcpy_tofs((void *) arg, brdp, sizeof(stlibrd_t));
brdp4364drivers/char/istallion.cstlibrd_t  *brdp;
brdp4417drivers/char/istallion.cbrdp = stli_brds[brdnr];
brdp4418drivers/char/istallion.cif (brdp == (stlibrd_t *) NULL)
brdp4420drivers/char/istallion.cif (brdp->state == 0)
brdp4425drivers/char/istallion.cEBRDINTR(brdp);
brdp4428drivers/char/istallion.crc = stli_startbrd(brdp);
brdp4431drivers/char/istallion.cbrdp->state &= ~BST_STARTED;
brdp4434drivers/char/istallion.cbrdp->state &= ~BST_STARTED;
brdp4435drivers/char/istallion.cEBRDRESET(brdp);
brdp4437drivers/char/istallion.cif (brdp->reenable != NULL)
brdp4438drivers/char/istallion.c(* brdp->reenable)(brdp);
brdp399drivers/char/stallion.cstatic int  stl_brdinit(stlbrd_t *brdp);
brdp400drivers/char/stallion.cstatic int  stl_initeio(stlbrd_t *brdp);
brdp401drivers/char/stallion.cstatic int  stl_initech(stlbrd_t *brdp);
brdp402drivers/char/stallion.cstatic int  stl_initports(stlbrd_t *brdp, stlpanel_t *panelp);
brdp480drivers/char/stallion.cstlbrd_t  *brdp;
brdp515drivers/char/stallion.cbrdp = stl_brds[i];
brdp517drivers/char/stallion.cpanelp = brdp->panels[j];
brdp534drivers/char/stallion.cif (brdp->brdtype == BRD_ECH) {
brdp535drivers/char/stallion.crelease_region(brdp->ioaddr1, 2);
brdp536drivers/char/stallion.crelease_region(brdp->ioaddr2, 32);
brdp537drivers/char/stallion.c} else if (brdp->brdtype == BRD_ECHPCI) {
brdp538drivers/char/stallion.crelease_region(brdp->ioaddr1, 4);
brdp539drivers/char/stallion.crelease_region(brdp->ioaddr2, 8);
brdp540drivers/char/stallion.c} else if (brdp->brdtype == BRD_ECHMC) {
brdp541drivers/char/stallion.crelease_region(brdp->ioaddr1, 64);
brdp542drivers/char/stallion.c} else if (brdp->brdtype == BRD_EASYIO) {
brdp543drivers/char/stallion.crelease_region(brdp->ioaddr1, 8);
brdp546drivers/char/stallion.ckfree_s(brdp, sizeof(stlbrd_t));
brdp574drivers/char/stallion.cstlbrd_t  *brdp;
brdp586drivers/char/stallion.cbrdp = stl_brds[brdnr];
brdp587drivers/char/stallion.cif (brdp == (stlbrd_t *) NULL)
brdp591drivers/char/stallion.cif (brdp->panels[panelnr] == (stlpanel_t *) NULL)
brdp593drivers/char/stallion.cif (minordev < brdp->panels[panelnr]->nrports) {
brdp597drivers/char/stallion.cminordev -= brdp->panels[panelnr]->nrports;
brdp602drivers/char/stallion.cportp = brdp->panels[panelnr]->ports[portnr];
brdp1062drivers/char/stallion.cstlbrd_t    *brdp;
brdp1080drivers/char/stallion.cbrdp = stl_brds[portp->brdnr];
brdp1081drivers/char/stallion.cif (brdp != (stlbrd_t *) NULL)
brdp1082drivers/char/stallion.csio.irq = brdp->irq;
brdp1750drivers/char/stallion.cstlbrd_t  *brdp;
brdp1761drivers/char/stallion.cif ((brdp = stl_brds[i]) == (stlbrd_t *) NULL) {
brdp1765drivers/char/stallion.cif (brdp->state == 0) {
brdp1774drivers/char/stallion.cif (brdp->brdtype == BRD_EASYIO) {
brdp1775drivers/char/stallion.cif ((inb(brdp->iostatus) & EIO_INTRPEND) == 0) {
brdp1779drivers/char/stallion.cpanelp = brdp->panels[0];
brdp1783drivers/char/stallion.cif (brdp->nrports > 4) {
brdp1787drivers/char/stallion.c} else if (brdp->brdtype == BRD_ECH) {
brdp1788drivers/char/stallion.cif ((inb(brdp->iostatus) & ECH_INTRPEND) == 0) {
brdp1792drivers/char/stallion.coutb((brdp->ioctrlval | ECH_BRDENABLE), brdp->ioctrl);
brdp1793drivers/char/stallion.cfor (panelnr = 0; (panelnr < brdp->nrpanels); panelnr++) {
brdp1794drivers/char/stallion.cpanelp = brdp->panels[panelnr];
brdp1804drivers/char/stallion.cif (panelnr >= brdp->nrpanels) {
brdp1812drivers/char/stallion.c} else if (brdp->brdtype == BRD_ECHPCI) {
brdp1813drivers/char/stallion.ciobase = brdp->ioaddr2;
brdp1814drivers/char/stallion.cfor (panelnr = 0; (panelnr < brdp->nrpanels); panelnr++) {
brdp1815drivers/char/stallion.cpanelp = brdp->panels[panelnr];
brdp1816drivers/char/stallion.coutb(panelp->pagenr, brdp->ioctrl);
brdp1820drivers/char/stallion.coutb((panelp->pagenr + 1), brdp->ioctrl);
brdp1825drivers/char/stallion.cif (panelnr >= brdp->nrpanels) {
brdp1833drivers/char/stallion.c} else if (brdp->brdtype == BRD_ECHMC) {
brdp1834drivers/char/stallion.cif ((inb(brdp->iostatus) & ECH_INTRPEND) == 0) {
brdp1838drivers/char/stallion.cfor (panelnr = 0; (panelnr < brdp->nrpanels); panelnr++) {
brdp1839drivers/char/stallion.cpanelp = brdp->panels[panelnr];
brdp1849drivers/char/stallion.cif (panelnr >= brdp->nrpanels) {
brdp1858drivers/char/stallion.cprintk("STALLION: unknown board type=%x\n", brdp->brdtype);
brdp1875drivers/char/stallion.cif (brdp->brdtype == BRD_ECH)
brdp1876drivers/char/stallion.coutb((brdp->ioctrlval | ECH_BRDDISABLE), brdp->ioctrl);
brdp1954drivers/char/stallion.cstlbrd_t  *brdp;
brdp1977drivers/char/stallion.cbrdp = stl_brds[portp->brdnr];
brdp1978drivers/char/stallion.cif (brdp == (stlbrd_t *) NULL)
brdp2391drivers/char/stallion.cstatic int stl_initports(stlbrd_t *brdp, stlpanel_t *panelp)
brdp2411drivers/char/stallion.cif (brdp->brdtype == BRD_ECHPCI) {
brdp2412drivers/char/stallion.coutb((panelp->pagenr + (i >> 1)), brdp->ioctrl);
brdp2444drivers/char/stallion.cif (brdp->brdtype == BRD_ECHPCI) {
brdp2445drivers/char/stallion.coutb((panelp->pagenr + (i >> 3)), brdp->ioctrl);
brdp2465drivers/char/stallion.cportp->clk = brdp->clk;
brdp2492drivers/char/stallion.cstatic int stl_initeio(stlbrd_t *brdp)
brdp2499drivers/char/stallion.cprintk("stl_initeio(brdp=%x)\n", (int) brdp);
brdp2502drivers/char/stallion.cbrdp->ioctrl = brdp->ioaddr1 + 1;
brdp2503drivers/char/stallion.cbrdp->iostatus = brdp->ioaddr1 + 2;
brdp2504drivers/char/stallion.cbrdp->clk = EIO_CLK;
brdp2506drivers/char/stallion.cstatus = inb(brdp->iostatus);
brdp2509drivers/char/stallion.cbrdp->clk = EIO_CLK8M;
brdp2513drivers/char/stallion.cbrdp->nrports = 8;
brdp2516drivers/char/stallion.cbrdp->nrports = 4;
brdp2522drivers/char/stallion.crequest_region(brdp->ioaddr1, 8, "serial(EIO)");
brdp2529drivers/char/stallion.cif ((brdp->irq < 0) || (brdp->irq > 15) ||
brdp2530drivers/char/stallion.c(stl_vecmap[brdp->irq] == (unsigned char) 0xff)) {
brdp2531drivers/char/stallion.cprintk("STALLION: invalid irq=%d for brd=%d\n", brdp->irq, brdp->brdnr);
brdp2534drivers/char/stallion.coutb((stl_vecmap[brdp->irq] | ((brdp->irqtype) ? EIO_INTLEVEL : EIO_INTEDGE)), brdp->ioctrl);
brdp2544drivers/char/stallion.cpanelp->brdnr = brdp->brdnr;
brdp2546drivers/char/stallion.cpanelp->nrports = brdp->nrports;
brdp2547drivers/char/stallion.cpanelp->iobase = brdp->ioaddr1;
brdp2549drivers/char/stallion.cbrdp->panels[0] = panelp;
brdp2550drivers/char/stallion.cbrdp->nrpanels = 1;
brdp2551drivers/char/stallion.cbrdp->state |= BRD_FOUND;
brdp2552drivers/char/stallion.cbrdp->hwid = status;
brdp2553drivers/char/stallion.crc = stl_mapirq(brdp->irq);
brdp2564drivers/char/stallion.cstatic int stl_initech(stlbrd_t *brdp)
brdp2571drivers/char/stallion.cprintk("stl_initech(brdp=%x)\n", (int) brdp);
brdp2581drivers/char/stallion.cif (brdp->brdtype == BRD_ECH) {
brdp2582drivers/char/stallion.cbrdp->ioctrl = brdp->ioaddr1 + 1;
brdp2583drivers/char/stallion.cbrdp->iostatus = brdp->ioaddr1 + 1;
brdp2584drivers/char/stallion.cstatus = inb(brdp->iostatus);
brdp2588drivers/char/stallion.cif ((brdp->irq < 0) || (brdp->irq > 15) ||
brdp2589drivers/char/stallion.c(stl_vecmap[brdp->irq] == (unsigned char) 0xff)) {
brdp2590drivers/char/stallion.cprintk("STALLION: invalid irq=%d for brd=%d\n", brdp->irq, brdp->brdnr);
brdp2593drivers/char/stallion.cstatus = ((brdp->ioaddr2 & ECH_ADDR2MASK) >> 1);
brdp2594drivers/char/stallion.cstatus |= (stl_vecmap[brdp->irq] << 1);
brdp2595drivers/char/stallion.coutb((status | ECH_BRDRESET), brdp->ioaddr1);
brdp2596drivers/char/stallion.cbrdp->ioctrlval = ECH_INTENABLE | ((brdp->irqtype) ? ECH_INTLEVEL : ECH_INTEDGE);
brdp2597drivers/char/stallion.coutb((brdp->ioctrlval | ECH_BRDENABLE), brdp->ioctrl);
brdp2598drivers/char/stallion.coutb(status, brdp->ioaddr1);
brdp2600drivers/char/stallion.crequest_region(brdp->ioaddr1, 2, "serial(EC8/32)");
brdp2601drivers/char/stallion.crequest_region(brdp->ioaddr2, 32, "serial(EC8/32-secondary)");
brdp2602drivers/char/stallion.c} else if (brdp->brdtype == BRD_ECHMC) {
brdp2603drivers/char/stallion.cbrdp->ioctrl = brdp->ioaddr1 + 0x20;
brdp2604drivers/char/stallion.cbrdp->iostatus = brdp->ioctrl;
brdp2605drivers/char/stallion.cstatus = inb(brdp->iostatus);
brdp2609drivers/char/stallion.cif ((brdp->irq < 0) || (brdp->irq > 15) ||
brdp2610drivers/char/stallion.c(stl_vecmap[brdp->irq] == (unsigned char) 0xff)) {
brdp2611drivers/char/stallion.cprintk("STALLION: invalid irq=%d for brd=%d\n", brdp->irq, brdp->brdnr);
brdp2614drivers/char/stallion.coutb(ECHMC_BRDRESET, brdp->ioctrl);
brdp2615drivers/char/stallion.coutb(ECHMC_INTENABLE, brdp->ioctrl);
brdp2617drivers/char/stallion.crequest_region(brdp->ioaddr1, 64, "serial(EC8/32-MC)");
brdp2618drivers/char/stallion.c} else if (brdp->brdtype == BRD_ECHPCI) {
brdp2619drivers/char/stallion.cbrdp->ioctrl = brdp->ioaddr1 + 2;
brdp2620drivers/char/stallion.crequest_region(brdp->ioaddr1, 4, "serial(EC8/32-PCI)");
brdp2621drivers/char/stallion.crequest_region(brdp->ioaddr2, 8, "serial(EC8/32-PCI-secondary)");
brdp2624drivers/char/stallion.cbrdp->clk = ECH_CLK;
brdp2625drivers/char/stallion.cbrdp->hwid = status;
brdp2631drivers/char/stallion.cioaddr = brdp->ioaddr2;
brdp2636drivers/char/stallion.cif (brdp->brdtype == BRD_ECHPCI) {
brdp2637drivers/char/stallion.coutb(nxtid, brdp->ioctrl);
brdp2638drivers/char/stallion.cioaddr = brdp->ioaddr2;
brdp2650drivers/char/stallion.cpanelp->brdnr = brdp->brdnr;
brdp2656drivers/char/stallion.cif ((brdp->nrports + 16) > 32)
brdp2660drivers/char/stallion.cbrdp->nrports += 16;
brdp2666drivers/char/stallion.cbrdp->nrports += 8;
brdp2670drivers/char/stallion.cbrdp->panels[panelnr++] = panelp;
brdp2671drivers/char/stallion.cbrdp->nrpanels++;
brdp2672drivers/char/stallion.cif (ioaddr >= (brdp->ioaddr2 + 0x20))
brdp2676drivers/char/stallion.cif (brdp->brdtype == BRD_ECH)
brdp2677drivers/char/stallion.coutb((brdp->ioctrlval | ECH_BRDDISABLE), brdp->ioctrl);
brdp2679drivers/char/stallion.cbrdp->state |= BRD_FOUND;
brdp2680drivers/char/stallion.ci = stl_mapirq(brdp->irq);
brdp2693drivers/char/stallion.cstatic int stl_brdinit(stlbrd_t *brdp)
brdp2698drivers/char/stallion.cprintk("stl_brdinit(brdp=%x)\n", (int) brdp);
brdp2701drivers/char/stallion.cswitch (brdp->brdtype) {
brdp2703drivers/char/stallion.cstl_initeio(brdp);
brdp2708drivers/char/stallion.cstl_initech(brdp);
brdp2711drivers/char/stallion.cprintk("STALLION: unit=%d is unknown board type=%d\n", brdp->brdnr, brdp->brdtype);
brdp2715drivers/char/stallion.cstl_brds[brdp->brdnr] = brdp;
brdp2716drivers/char/stallion.cif ((brdp->state & BRD_FOUND) == 0) {
brdp2717drivers/char/stallion.cprintk("STALLION: %s board not found, unit=%d io=%x irq=%d\n", stl_brdnames[brdp->brdtype], brdp->brdnr, brdp->ioaddr1, brdp->irq);
brdp2722drivers/char/stallion.cif (brdp->panels[i] != (stlpanel_t *) NULL)
brdp2723drivers/char/stallion.cstl_initports(brdp, brdp->panels[i]);
brdp2725drivers/char/stallion.cprintk("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);
brdp2740drivers/char/stallion.cstlbrd_t  *brdp;
brdp2776drivers/char/stallion.cbrdp = (stlbrd_t *) stl_memalloc(sizeof(stlbrd_t));
brdp2777drivers/char/stallion.cif (brdp == (stlbrd_t *) NULL) {
brdp2781drivers/char/stallion.cmemset(brdp, 0, sizeof(stlbrd_t));
brdp2782drivers/char/stallion.cbrdp->magic = STL_BOARDMAGIC;
brdp2783drivers/char/stallion.cbrdp->brdnr = stl_nrbrds++;
brdp2784drivers/char/stallion.cbrdp->brdtype = BRD_ECHPCI;
brdp2790drivers/char/stallion.cbrdp->ioaddr2 = (ioaddr & PCI_BASE_ADDRESS_IO_MASK);
brdp2796drivers/char/stallion.cbrdp->ioaddr1 = (ioaddr & PCI_BASE_ADDRESS_IO_MASK);
brdp2798drivers/char/stallion.cprintk("%s(%d): BAR0=%x BAR1=%x\n", __FILE__, __LINE__, brdp->ioaddr2, brdp->ioaddr1);
brdp2805drivers/char/stallion.cbrdp->irq = irq;
brdp2807drivers/char/stallion.cstl_brdinit(brdp);
brdp2826drivers/char/stallion.cstlbrd_t  *brdp;
brdp2845drivers/char/stallion.cbrdp = (stlbrd_t *) stl_memalloc(sizeof(stlbrd_t));
brdp2846drivers/char/stallion.cif (brdp == (stlbrd_t *) NULL) {
brdp2850drivers/char/stallion.cmemset(brdp, 0, sizeof(stlbrd_t));
brdp2852drivers/char/stallion.cbrdp->magic = STL_BOARDMAGIC;
brdp2853drivers/char/stallion.cbrdp->brdnr = i;
brdp2854drivers/char/stallion.cbrdp->brdtype = confp->brdtype;
brdp2855drivers/char/stallion.cbrdp->ioaddr1 = confp->ioaddr1;
brdp2856drivers/char/stallion.cbrdp->ioaddr2 = confp->ioaddr2;
brdp2857drivers/char/stallion.cbrdp->irq = confp->irq;
brdp2858drivers/char/stallion.cbrdp->irqtype = confp->irqtype;
brdp2859drivers/char/stallion.cstl_brdinit(brdp);
brdp2881drivers/char/stallion.cstlbrd_t  *brdp;
brdp2888drivers/char/stallion.cbrdp = stl_brds[stl_brdstats.brd];
brdp2889drivers/char/stallion.cif (brdp == (stlbrd_t *) NULL)
brdp2893drivers/char/stallion.cstl_brdstats.brd = brdp->brdnr;
brdp2894drivers/char/stallion.cstl_brdstats.type = brdp->brdtype;
brdp2895drivers/char/stallion.cstl_brdstats.hwid = brdp->hwid;
brdp2896drivers/char/stallion.cstl_brdstats.state = brdp->state;
brdp2897drivers/char/stallion.cstl_brdstats.ioaddr = brdp->ioaddr1;
brdp2898drivers/char/stallion.cstl_brdstats.ioaddr2 = brdp->ioaddr2;
brdp2899drivers/char/stallion.cstl_brdstats.irq = brdp->irq;
brdp2900drivers/char/stallion.cstl_brdstats.nrpanels = brdp->nrpanels;
brdp2901drivers/char/stallion.cstl_brdstats.nrports = brdp->nrports;
brdp2902drivers/char/stallion.cfor (i = 0; (i < brdp->nrpanels); i++) {
brdp2903drivers/char/stallion.cpanelp = brdp->panels[i];
brdp2921drivers/char/stallion.cstlbrd_t  *brdp;
brdp2926drivers/char/stallion.cbrdp = stl_brds[brdnr];
brdp2927drivers/char/stallion.cif (brdp == (stlbrd_t *) NULL)
brdp2929drivers/char/stallion.cif ((panelnr < 0) || (panelnr >= brdp->nrpanels))
brdp2931drivers/char/stallion.cpanelp = brdp->panels[panelnr];
brdp3046drivers/char/stallion.cstlbrd_t  *brdp;
brdp3051drivers/char/stallion.cbrdp = stl_brds[stl_dummybrd.brdnr];
brdp3052drivers/char/stallion.cif (brdp == (stlbrd_t *) NULL)
brdp3054drivers/char/stallion.cmemcpy_tofs((void *) arg, brdp, sizeof(stlbrd_t));
brdp114include/linux/istallion.hvoid    (*init)(struct stlibrd *brdp);
brdp115include/linux/istallion.hvoid    (*enable)(struct stlibrd *brdp);
brdp116include/linux/istallion.hvoid    (*reenable)(struct stlibrd *brdp);
brdp117include/linux/istallion.hvoid    (*disable)(struct stlibrd *brdp);
brdp118include/linux/istallion.hchar    *(*getmemptr)(struct stlibrd *brdp, unsigned long offset, int line);
brdp119include/linux/istallion.hvoid    (*intr)(struct stlibrd *brdp);
brdp120include/linux/istallion.hvoid    (*reset)(struct stlibrd *brdp);