taglinefilesource code
brdp301drivers/char/istallion.cvoid    (*init)(struct stlbrd *brdp);
brdp302drivers/char/istallion.cvoid    (*enable)(struct stlbrd *brdp);
brdp303drivers/char/istallion.cvoid    (*reenable)(struct stlbrd *brdp);
brdp304drivers/char/istallion.cvoid    (*disable)(struct stlbrd *brdp);
brdp305drivers/char/istallion.cchar    *(*getmemptr)(struct stlbrd *brdp, unsigned long offset, int line);
brdp306drivers/char/istallion.cvoid    (*intr)(struct stlbrd *brdp);
brdp307drivers/char/istallion.cvoid    (*reset)(struct stlbrd *brdp);
brdp518drivers/char/istallion.c#define  EBRDINIT(brdp)            \
brdp519drivers/char/istallion.cif (brdp->init != NULL)          \
brdp520drivers/char/istallion.c(* brdp->init)(brdp)
brdp522drivers/char/istallion.c#define  EBRDENABLE(brdp)          \
brdp523drivers/char/istallion.cif (brdp->enable != NULL)        \
brdp524drivers/char/istallion.c(* brdp->enable)(brdp);
brdp526drivers/char/istallion.c#define  EBRDDISABLE(brdp)          \
brdp527drivers/char/istallion.cif (brdp->disable != NULL)        \
brdp528drivers/char/istallion.c(* brdp->disable)(brdp);
brdp530drivers/char/istallion.c#define  EBRDINTR(brdp)            \
brdp531drivers/char/istallion.cif (brdp->intr != NULL)          \
brdp532drivers/char/istallion.c(* brdp->intr)(brdp);
brdp534drivers/char/istallion.c#define  EBRDRESET(brdp)            \
brdp535drivers/char/istallion.cif (brdp->reset != NULL)        \
brdp536drivers/char/istallion.c(* brdp->reset)(brdp);
brdp538drivers/char/istallion.c#define  EBRDGETMEMPTR(brdp,offset)        \
brdp539drivers/char/istallion.c(* brdp->getmemptr)(brdp, offset, __LINE__)
brdp603drivers/char/istallion.cstatic int  stli_initecp(stlibrd_t *brdp, stlconf_t *confp);
brdp604drivers/char/istallion.cstatic int  stli_initonb(stlibrd_t *brdp, stlconf_t *confp);
brdp605drivers/char/istallion.cstatic int  stli_initports(stlibrd_t *brdp);
brdp606drivers/char/istallion.cstatic int  stli_startbrd(stlibrd_t *brdp);
brdp611drivers/char/istallion.cstatic int  stli_hostcmd(stlibrd_t *brdp, int channr);
brdp612drivers/char/istallion.cstatic int  stli_initopen(stlibrd_t *brdp, stliport_t *portp);
brdp613drivers/char/istallion.cstatic int  stli_rawopen(stlibrd_t *brdp, stliport_t *portp, unsigned long arg, int wait);
brdp614drivers/char/istallion.cstatic int  stli_rawclose(stlibrd_t *brdp, stliport_t *portp, unsigned long arg, int wait);
brdp615drivers/char/istallion.cstatic int  stli_waitcarrier(stlibrd_t *brdp, stliport_t *portp, struct file *filp);
brdp619drivers/char/istallion.cstatic int  stli_cmdwait(stlibrd_t *brdp, stliport_t *portp, unsigned long cmd, void *arg, int size, int copyback);
brdp620drivers/char/istallion.cstatic void  stli_sendcmd(stlibrd_t *brdp, stliport_t *portp, unsigned long cmd, void *arg, int size, int copyback);
brdp625drivers/char/istallion.cstatic void  stli_read(stlibrd_t *brdp, stliport_t *portp);
brdp629drivers/char/istallion.cstatic void  stli_ecpinit(stlibrd_t *brdp);
brdp630drivers/char/istallion.cstatic void  stli_ecpenable(stlibrd_t *brdp);
brdp631drivers/char/istallion.cstatic void  stli_ecpdisable(stlibrd_t *brdp);
brdp632drivers/char/istallion.cstatic char  *stli_ecpgetmemptr(stlibrd_t *brdp, unsigned long offset, int line);
brdp633drivers/char/istallion.cstatic void  stli_ecpreset(stlibrd_t *brdp);
brdp634drivers/char/istallion.cstatic void  stli_ecpintr(stlibrd_t *brdp);
brdp635drivers/char/istallion.cstatic void  stli_ecpeiinit(stlibrd_t *brdp);
brdp636drivers/char/istallion.cstatic void  stli_ecpeienable(stlibrd_t *brdp);
brdp637drivers/char/istallion.cstatic void  stli_ecpeidisable(stlibrd_t *brdp);
brdp638drivers/char/istallion.cstatic char  *stli_ecpeigetmemptr(stlibrd_t *brdp, unsigned long offset, int line);
brdp639drivers/char/istallion.cstatic void  stli_ecpeireset(stlibrd_t *brdp);
brdp640drivers/char/istallion.cstatic void  stli_ecpmcenable(stlibrd_t *brdp);
brdp641drivers/char/istallion.cstatic void  stli_ecpmcdisable(stlibrd_t *brdp);
brdp642drivers/char/istallion.cstatic char  *stli_ecpmcgetmemptr(stlibrd_t *brdp, unsigned long offset, int line);
brdp643drivers/char/istallion.cstatic void  stli_ecpmcreset(stlibrd_t *brdp);
brdp645drivers/char/istallion.cstatic void  stli_onbinit(stlibrd_t *brdp);
brdp646drivers/char/istallion.cstatic void  stli_onbenable(stlibrd_t *brdp);
brdp647drivers/char/istallion.cstatic void  stli_onbdisable(stlibrd_t *brdp);
brdp648drivers/char/istallion.cstatic char  *stli_onbgetmemptr(stlibrd_t *brdp, unsigned long offset, int line);
brdp649drivers/char/istallion.cstatic void  stli_onbreset(stlibrd_t *brdp);
brdp650drivers/char/istallion.cstatic void  stli_onbeinit(stlibrd_t *brdp);
brdp651drivers/char/istallion.cstatic void  stli_onbeenable(stlibrd_t *brdp);
brdp652drivers/char/istallion.cstatic void  stli_onbedisable(stlibrd_t *brdp);
brdp653drivers/char/istallion.cstatic char  *stli_onbegetmemptr(stlibrd_t *brdp, unsigned long offset, int line);
brdp654drivers/char/istallion.cstatic void  stli_onbereset(stlibrd_t *brdp);
brdp655drivers/char/istallion.cstatic void  stli_bbyinit(stlibrd_t *brdp);
brdp656drivers/char/istallion.cstatic char  *stli_bbygetmemptr(stlibrd_t *brdp, unsigned long offset, int line);
brdp657drivers/char/istallion.cstatic void  stli_bbyreset(stlibrd_t *brdp);
brdp658drivers/char/istallion.cstatic void  stli_stalinit(stlibrd_t *brdp);
brdp659drivers/char/istallion.cstatic char  *stli_stalgetmemptr(stlibrd_t *brdp, unsigned long offset, int line);
brdp660drivers/char/istallion.cstatic void  stli_stalreset(stlibrd_t *brdp);
brdp740drivers/char/istallion.cstlibrd_t  *brdp;
brdp779drivers/char/istallion.cbrdp = &stli_brds[i];
brdp781drivers/char/istallion.cportp = brdp->ports[j];
brdp790drivers/char/istallion.cif (((unsigned long) brdp->membase) >= 0x100000)
brdp791drivers/char/istallion.cvfree(brdp->membase);
brdp793drivers/char/istallion.cif ((brdp->brdtype == BRD_ECP) || (brdp->brdtype == BRD_ECPE) || (brdp->brdtype == BRD_ECPMC))
brdp794drivers/char/istallion.crelease_region(brdp->iobase, ECP_IOSIZE);
brdp796drivers/char/istallion.crelease_region(brdp->iobase, ONB_IOSIZE);
brdp825drivers/char/istallion.cstlibrd_t  *brdp;
brdp840drivers/char/istallion.cbrdp = &stli_brds[brdnr];
brdp841drivers/char/istallion.cif ((brdp->state & BST_STARTED) == 0)
brdp844drivers/char/istallion.cif ((portnr < 0) || (portnr > brdp->nrports))
brdp847drivers/char/istallion.cportp = brdp->ports[portnr];
brdp884drivers/char/istallion.cif ((rc = stli_initopen(brdp, portp)) >= 0) {
brdp929drivers/char/istallion.cif ((rc = stli_waitcarrier(brdp, portp, filp)) != 0)
brdp952drivers/char/istallion.cstlibrd_t  *brdp;
brdp997drivers/char/istallion.cbrdp = &stli_brds[portp->brdnr];
brdp998drivers/char/istallion.cstli_rawclose(brdp, portp, 0, 1);
brdp1001drivers/char/istallion.cstli_cmdwait(brdp, portp, A_SETSIGNALS, &portp->asig, sizeof(asysigs_t), 0);
brdp1036drivers/char/istallion.cstatic int stli_initopen(stlibrd_t *brdp, stliport_t *portp)
brdp1044drivers/char/istallion.cprintk("stli_initopen(brdp=%x,portp=%x)\n", (int) brdp, (int) portp);
brdp1047drivers/char/istallion.cif ((rc = stli_rawopen(brdp, portp, 0, 1)) < 0)
brdp1053drivers/char/istallion.cif ((rc = stli_cmdwait(brdp, portp, A_SETNOTIFY, &nt, sizeof(asynotify_t), 0)) < 0)
brdp1060drivers/char/istallion.cif ((rc = stli_cmdwait(brdp, portp, A_SETPORT, &aport, sizeof(asyport_t), 0)) < 0)
brdp1064drivers/char/istallion.cif ((rc = stli_cmdwait(brdp, portp, A_GETSIGNALS, &portp->asig, sizeof(asysigs_t), 1)) < 0)
brdp1069drivers/char/istallion.cif ((rc = stli_cmdwait(brdp, portp, A_SETSIGNALS, &portp->asig, sizeof(asysigs_t), 0)) < 0)
brdp1084drivers/char/istallion.cstatic int stli_rawopen(stlibrd_t *brdp, stliport_t *portp, unsigned long arg, int wait)
brdp1093drivers/char/istallion.cprintk("stli_rawopen(brdp=%x,portp=%x,arg=%x,wait=%d)\n", (int) brdp, (int) portp, (int) arg, wait);
brdp1121drivers/char/istallion.cEBRDENABLE(brdp);
brdp1122drivers/char/istallion.ccp = &((volatile cdkasy_t *) EBRDGETMEMPTR(brdp, portp->addr))->ctrl;
brdp1125drivers/char/istallion.chdrp = (volatile cdkhdr_t *) EBRDGETMEMPTR(brdp, CDK_CDKADDR);
brdp1127drivers/char/istallion.cbits = ((volatile unsigned char *) hdrp) + brdp->slaveoffset + portp->portidx;
brdp1129drivers/char/istallion.cEBRDDISABLE(brdp);
brdp1164drivers/char/istallion.cstatic int stli_rawclose(stlibrd_t *brdp, stliport_t *portp, unsigned long arg, int wait)
brdp1173drivers/char/istallion.cprintk("stli_rawclose(brdp=%x,portp=%x,arg=%x,wait=%d)\n", (int) brdp, (int) portp, (int) arg, wait);
brdp1196drivers/char/istallion.cEBRDENABLE(brdp);
brdp1197drivers/char/istallion.ccp = &((volatile cdkasy_t *) EBRDGETMEMPTR(brdp, portp->addr))->ctrl;
brdp1200drivers/char/istallion.chdrp = (volatile cdkhdr_t *) EBRDGETMEMPTR(brdp, CDK_CDKADDR);
brdp1202drivers/char/istallion.cbits = ((volatile unsigned char *) hdrp) + brdp->slaveoffset + portp->portidx;
brdp1204drivers/char/istallion.cEBRDDISABLE(brdp);
brdp1240drivers/char/istallion.cstatic int stli_cmdwait(stlibrd_t *brdp, stliport_t *portp, unsigned long cmd, void *arg, int size, int copyback)
brdp1245drivers/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);
brdp1258drivers/char/istallion.cstli_sendcmd(brdp, portp, cmd, arg, size, copyback);
brdp1283drivers/char/istallion.cstlibrd_t  *brdp;
brdp1296drivers/char/istallion.cbrdp = &stli_brds[portp->brdnr];
brdp1299drivers/char/istallion.creturn(stli_cmdwait(brdp, portp, A_SETPORT, &aport, sizeof(asyport_t), 0));
brdp1329drivers/char/istallion.cstatic int stli_waitcarrier(stlibrd_t *brdp, stliport_t *portp, struct file *filp)
brdp1335drivers/char/istallion.cprintk("stli_waitcarrier(brdp=%x,portp=%x,filp=%x)\n", (int) brdp, (int) portp, (int) filp);
brdp1349drivers/char/istallion.cif ((rc = stli_cmdwait(brdp, portp, A_SETSIGNALS, &portp->asig, sizeof(asysigs_t), 0)) < 0)
brdp1395drivers/char/istallion.cstlibrd_t    *brdp;
brdp1412drivers/char/istallion.cbrdp = &stli_brds[portp->brdnr];
brdp1429drivers/char/istallion.cEBRDENABLE(brdp);
brdp1430drivers/char/istallion.cap = (volatile cdkasy_t *) EBRDGETMEMPTR(brdp, portp->addr);
brdp1437drivers/char/istallion.cEBRDDISABLE(brdp);
brdp1451drivers/char/istallion.cEBRDENABLE(brdp);
brdp1452drivers/char/istallion.cap = (volatile cdkasy_t *) EBRDGETMEMPTR(brdp, portp->addr);
brdp1468drivers/char/istallion.cshbuf = (char *) EBRDGETMEMPTR(brdp, portp->txoffset);
brdp1483drivers/char/istallion.cap = (volatile cdkasy_t *) EBRDGETMEMPTR(brdp, portp->addr);
brdp1489drivers/char/istallion.chdrp = (volatile cdkhdr_t *) EBRDGETMEMPTR(brdp, CDK_CDKADDR);
brdp1491drivers/char/istallion.cbits = ((volatile unsigned char *) hdrp) + brdp->slaveoffset + portp->portidx;
brdp1495drivers/char/istallion.cEBRDDISABLE(brdp);
brdp1545drivers/char/istallion.cstlibrd_t    *brdp;
brdp1574drivers/char/istallion.cbrdp = &stli_brds[portp->brdnr];
brdp1578drivers/char/istallion.cEBRDENABLE(brdp);
brdp1580drivers/char/istallion.cap = (volatile cdkasy_t *) EBRDGETMEMPTR(brdp, portp->addr);
brdp1596drivers/char/istallion.cshbuf = (char *) EBRDGETMEMPTR(brdp, portp->txoffset);
brdp1612drivers/char/istallion.cap = (volatile cdkasy_t *) EBRDGETMEMPTR(brdp, portp->addr);
brdp1619drivers/char/istallion.chdrp = (volatile cdkhdr_t *) EBRDGETMEMPTR(brdp, CDK_CDKADDR);
brdp1621drivers/char/istallion.cbits = ((volatile unsigned char *) hdrp) + brdp->slaveoffset + portp->portidx;
brdp1625drivers/char/istallion.cEBRDDISABLE(brdp);
brdp1635drivers/char/istallion.cstlibrd_t    *brdp;
brdp1657drivers/char/istallion.cbrdp = &stli_brds[portp->brdnr];
brdp1661drivers/char/istallion.cEBRDENABLE(brdp);
brdp1662drivers/char/istallion.crp = &((volatile cdkasy_t *) EBRDGETMEMPTR(brdp, portp->addr))->txq;
brdp1669drivers/char/istallion.cEBRDDISABLE(brdp);
brdp1693drivers/char/istallion.cstlibrd_t    *brdp;
brdp1710drivers/char/istallion.cbrdp = &stli_brds[portp->brdnr];
brdp1714drivers/char/istallion.cEBRDENABLE(brdp);
brdp1715drivers/char/istallion.crp = &((volatile cdkasy_t *) EBRDGETMEMPTR(brdp, portp->addr))->txq;
brdp1723drivers/char/istallion.cEBRDDISABLE(brdp);
brdp1799drivers/char/istallion.cstlibrd_t  *brdp;
brdp1814drivers/char/istallion.cbrdp = &stli_brds[portp->brdnr];
brdp1824drivers/char/istallion.crc = stli_cmdwait(brdp, portp, A_BREAK, &val, sizeof(unsigned long), 0);
brdp1832drivers/char/istallion.crc = stli_cmdwait(brdp, portp, A_BREAK, &val, sizeof(unsigned long), 0);
brdp1847drivers/char/istallion.cif ((rc = stli_cmdwait(brdp, portp, A_GETSIGNALS, &portp->asig, sizeof(asysigs_t), 1)) < 0)
brdp1857drivers/char/istallion.crc = stli_cmdwait(brdp, portp, A_SETSIGNALS, &portp->asig, sizeof(asysigs_t), 0);
brdp1864drivers/char/istallion.crc = stli_cmdwait(brdp, portp, A_SETSIGNALS, &portp->asig, sizeof(asysigs_t), 0);
brdp1871drivers/char/istallion.crc = stli_cmdwait(brdp, portp, A_SETSIGNALS, &portp->asig, sizeof(asysigs_t), 0);
brdp1907drivers/char/istallion.cstlibrd_t  *brdp;
brdp1922drivers/char/istallion.cbrdp = &stli_brds[portp->brdnr];
brdp1929drivers/char/istallion.cstli_cmdwait(brdp, portp, A_SETPORT, &aport, sizeof(asyport_t), 0);
brdp1931drivers/char/istallion.cstli_cmdwait(brdp, portp, A_SETSIGNALS, &portp->asig, sizeof(asysigs_t), 0);
brdp2001drivers/char/istallion.cstlibrd_t  *brdp;
brdp2016drivers/char/istallion.cbrdp = &stli_brds[portp->brdnr];
brdp2021drivers/char/istallion.cstli_cmdwait(brdp, portp, A_PORTCTRL, &actrl, sizeof(asyctrl_t));
brdp2034drivers/char/istallion.cstlibrd_t  *brdp;
brdp2048drivers/char/istallion.cbrdp = &stli_brds[portp->brdnr];
brdp2053drivers/char/istallion.cstli_cmdwait(brdp, portp, A_PORTCTRL, &actrl, sizeof(asyctrl_t));
brdp2096drivers/char/istallion.cstlibrd_t  *brdp;
brdp2110drivers/char/istallion.cbrdp = &stli_brds[portp->brdnr];
brdp2117drivers/char/istallion.cstli_rawclose(brdp, portp, 0, 0);
brdp2125drivers/char/istallion.cstli_sendcmd(brdp, portp, A_SETSIGNALSF, &portp->asig, sizeof(asysigs_t), 0);
brdp2152drivers/char/istallion.cstlibrd_t  *brdp;
brdp2166drivers/char/istallion.cbrdp = &stli_brds[portp->brdnr];
brdp2183drivers/char/istallion.cstli_sendcmd(brdp, portp, A_FLUSH, &ftype, sizeof(unsigned long), 0);
brdp2204drivers/char/istallion.cstatic void stli_sendcmd(stlibrd_t *brdp, stliport_t *portp, unsigned long cmd, void *arg, int size, int copyback)
brdp2212drivers/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);
brdp2222drivers/char/istallion.cEBRDENABLE(brdp);
brdp2223drivers/char/istallion.ccp = &((volatile cdkasy_t *) EBRDGETMEMPTR(brdp, portp->addr))->ctrl;
brdp2233drivers/char/istallion.chdrp = (volatile cdkhdr_t *) EBRDGETMEMPTR(brdp, CDK_CDKADDR);
brdp2235drivers/char/istallion.cbits = ((volatile unsigned char *) hdrp) + brdp->slaveoffset + portp->portidx;
brdp2238drivers/char/istallion.cEBRDDISABLE(brdp);
brdp2252drivers/char/istallion.cstatic inline void stli_read(stlibrd_t *brdp, stliport_t *portp)
brdp2261drivers/char/istallion.cprintk("stli_read(brdp=%x,portp=%d)\n", (int) brdp, (int) portp);
brdp2270drivers/char/istallion.crp = &((volatile cdkasy_t *) EBRDGETMEMPTR(brdp, portp->addr))->rxq;
brdp2285drivers/char/istallion.cshbuf = (volatile char *) EBRDGETMEMPTR(brdp, portp->rxoffset);
brdp2302drivers/char/istallion.crp = &((volatile cdkasy_t *) EBRDGETMEMPTR(brdp, portp->addr))->rxq;
brdp2361drivers/char/istallion.cstatic inline int stli_hostcmd(stlibrd_t *brdp, int channr)
brdp2372drivers/char/istallion.cprintk("stli_hostcmd(brdp=%x,channr=%d)\n", (int) brdp, channr);
brdp2375drivers/char/istallion.cportp = brdp->ports[(channr - 1)];
brdp2376drivers/char/istallion.cap = (volatile cdkasy_t *) EBRDGETMEMPTR(brdp, portp->addr);
brdp2484drivers/char/istallion.cstli_read(brdp, portp);
brdp2498drivers/char/istallion.cstli_read(brdp, portp);
brdp2521drivers/char/istallion.cstlibrd_t    *brdp;
brdp2532drivers/char/istallion.cbrdp = &stli_brds[brdnr];
brdp2533drivers/char/istallion.cif ((brdp->state & BST_STARTED) == 0)
brdp2536drivers/char/istallion.cEBRDENABLE(brdp);
brdp2537drivers/char/istallion.chdrp = (volatile cdkhdr_t *) EBRDGETMEMPTR(brdp, CDK_CDKADDR);
brdp2540drivers/char/istallion.cbitsize = brdp->bitsize;
brdp2541drivers/char/istallion.cnrdevs = brdp->nrdevs;
brdp2551drivers/char/istallion.cmemcpy(&bits[0], (((unsigned char *) hdrp) + brdp->hostoffset), bitsize);
brdp2559drivers/char/istallion.cstli_hostcmd(brdp, channr);
brdp2573drivers/char/istallion.cmemcpy(&bits[0], (((unsigned char *) hdrp) + brdp->slaveoffset), bitsize);
brdp2581drivers/char/istallion.cportp = brdp->ports[(channr - 1)];
brdp2596drivers/char/istallion.cmemcpy((((unsigned char *) hdrp) + brdp->slaveoffset), &bits[0], bitsize);
brdp2599drivers/char/istallion.cEBRDDISABLE(brdp);
brdp2761drivers/char/istallion.cstatic int stli_initports(stlibrd_t *brdp)
brdp2767drivers/char/istallion.cprintk("stli_initports(brdp=%x)\n", (int) brdp);
brdp2770drivers/char/istallion.cfor (i = 0, panelnr = 0, panelport = 0; (i < brdp->nrports); i++) {
brdp2779drivers/char/istallion.cportp->brdnr = brdp->brdnr;
brdp2789drivers/char/istallion.cif (panelport >= brdp->panels[panelnr]) {
brdp2793drivers/char/istallion.cbrdp->ports[i] = portp;
brdp2805drivers/char/istallion.cstatic void stli_ecpinit(stlibrd_t *brdp)
brdp2810drivers/char/istallion.cprintk("stli_ecpinit(brdp=%d)\n", (int) brdp);
brdp2813drivers/char/istallion.coutb(ECP_ATSTOP, (brdp->iobase + ECP_ATCONFR));
brdp2815drivers/char/istallion.coutb(ECP_ATDISABLE, (brdp->iobase + ECP_ATCONFR));
brdp2818drivers/char/istallion.cmemconf = (((unsigned long) brdp->membase) & ECP_ATADDRMASK) >> ECP_ATADDRSHFT;
brdp2819drivers/char/istallion.coutb(memconf, (brdp->iobase + ECP_ATMEMAR));
brdp2824drivers/char/istallion.cstatic void stli_ecpenable(stlibrd_t *brdp)
brdp2827drivers/char/istallion.cprintk("stli_ecpenable(brdp=%x)\n", (int) brdp);
brdp2829drivers/char/istallion.coutb(ECP_ATENABLE, (brdp->iobase + ECP_ATCONFR));
brdp2834drivers/char/istallion.cstatic void stli_ecpdisable(stlibrd_t *brdp)
brdp2837drivers/char/istallion.cprintk("stli_ecpdisable(brdp=%x)\n", (int) brdp);
brdp2839drivers/char/istallion.coutb(ECP_ATDISABLE, (brdp->iobase + ECP_ATCONFR));
brdp2844drivers/char/istallion.cstatic char *stli_ecpgetmemptr(stlibrd_t *brdp, unsigned long offset, int line)
brdp2850drivers/char/istallion.cprintk("stli_ecpgetmemptr(brdp=%x,offset=%x)\n", (int) brdp, (int) offset);
brdp2853drivers/char/istallion.cif (offset > brdp->memsize) {
brdp2854drivers/char/istallion.cprintk("STALLION: shared memory pointer=%x out of range at line=%d(%d), brd=%d\n", (int) offset, line, __LINE__, brdp->brdnr);
brdp2858drivers/char/istallion.cptr = brdp->membase + (offset % ECP_ATPAGESIZE);
brdp2861drivers/char/istallion.coutb(val, (brdp->iobase + ECP_ATMEMPR));
brdp2867drivers/char/istallion.cstatic void stli_ecpreset(stlibrd_t *brdp)
brdp2870drivers/char/istallion.cprintk("stli_ecpreset(brdp=%x)\n", (int) brdp);
brdp2873drivers/char/istallion.coutb(ECP_ATSTOP, (brdp->iobase + ECP_ATCONFR));
brdp2875drivers/char/istallion.coutb(ECP_ATDISABLE, (brdp->iobase + ECP_ATCONFR));
brdp2881drivers/char/istallion.cstatic void stli_ecpintr(stlibrd_t *brdp)
brdp2884drivers/char/istallion.cprintk("stli_ecpintr(brdp=%x)\n", (int) brdp);
brdp2886drivers/char/istallion.coutb(0x1, brdp->iobase);
brdp2895drivers/char/istallion.cstatic void stli_ecpeiinit(stlibrd_t *brdp)
brdp2900drivers/char/istallion.cprintk("stli_ecpeiinit(brdp=%x)\n", (int) brdp);
brdp2903drivers/char/istallion.coutb(0x1, (brdp->iobase + ECP_EIBRDENAB));
brdp2904drivers/char/istallion.coutb(ECP_EISTOP, (brdp->iobase + ECP_EICONFR));
brdp2906drivers/char/istallion.coutb(ECP_EIDISABLE, (brdp->iobase + ECP_EICONFR));
brdp2909drivers/char/istallion.cmemconf = (((unsigned long) brdp->membase) & ECP_EIADDRMASKL) >> ECP_EIADDRSHFTL;
brdp2910drivers/char/istallion.coutb(memconf, (brdp->iobase + ECP_EIMEMARL));
brdp2911drivers/char/istallion.cmemconf = (((unsigned long) brdp->membase) & ECP_EIADDRMASKH) >> ECP_EIADDRSHFTH;
brdp2912drivers/char/istallion.coutb(memconf, (brdp->iobase + ECP_EIMEMARH));
brdp2917drivers/char/istallion.cstatic void stli_ecpeienable(stlibrd_t *brdp)
brdp2919drivers/char/istallion.coutb(ECP_EIENABLE, (brdp->iobase + ECP_EICONFR));
brdp2924drivers/char/istallion.cstatic void stli_ecpeidisable(stlibrd_t *brdp)
brdp2926drivers/char/istallion.coutb(ECP_EIDISABLE, (brdp->iobase + ECP_EICONFR));
brdp2931drivers/char/istallion.cstatic char *stli_ecpeigetmemptr(stlibrd_t *brdp, unsigned long offset, int line)
brdp2937drivers/char/istallion.cprintk("stli_ecpeigetmemptr(brdp=%x,offset=%x,line=%d)\n", (int) brdp, (int) offset, line);
brdp2940drivers/char/istallion.cif (offset > brdp->memsize) {
brdp2941drivers/char/istallion.cprintk("STALLION: shared memory pointer=%x out of range at line=%d(%d), brd=%d\n", (int) offset, line, __LINE__, brdp->brdnr);
brdp2945drivers/char/istallion.cptr = brdp->membase + (offset % ECP_EIPAGESIZE);
brdp2951drivers/char/istallion.coutb(val, (brdp->iobase + ECP_EICONFR));
brdp2957drivers/char/istallion.cstatic void stli_ecpeireset(stlibrd_t *brdp)
brdp2959drivers/char/istallion.coutb(ECP_EISTOP, (brdp->iobase + ECP_EICONFR));
brdp2961drivers/char/istallion.coutb(ECP_EIDISABLE, (brdp->iobase + ECP_EICONFR));
brdp2971drivers/char/istallion.cstatic void stli_ecpmcenable(stlibrd_t *brdp)
brdp2973drivers/char/istallion.coutb(ECP_MCENABLE, (brdp->iobase + ECP_MCCONFR));
brdp2978drivers/char/istallion.cstatic void stli_ecpmcdisable(stlibrd_t *brdp)
brdp2980drivers/char/istallion.coutb(ECP_MCDISABLE, (brdp->iobase + ECP_MCCONFR));
brdp2985drivers/char/istallion.cstatic char *stli_ecpmcgetmemptr(stlibrd_t *brdp, unsigned long offset, int line)
brdp2990drivers/char/istallion.cif (offset > brdp->memsize) {
brdp2991drivers/char/istallion.cprintk("STALLION: shared memory pointer=%x out of range at line=%d(%d), brd=%d\n", (int) offset, line, __LINE__, brdp->brdnr);
brdp2995drivers/char/istallion.cptr = brdp->membase + (offset % ECP_MCPAGESIZE);
brdp2998drivers/char/istallion.coutb(val, (brdp->iobase + ECP_MCCONFR));
brdp3004drivers/char/istallion.cstatic void stli_ecpmcreset(stlibrd_t *brdp)
brdp3006drivers/char/istallion.coutb(ECP_MCSTOP, (brdp->iobase + ECP_MCCONFR));
brdp3008drivers/char/istallion.coutb(ECP_MCDISABLE, (brdp->iobase + ECP_MCCONFR));
brdp3018drivers/char/istallion.cstatic void stli_onbinit(stlibrd_t *brdp)
brdp3024drivers/char/istallion.cprintk("stli_onbinit(brdp=%d)\n", (int) brdp);
brdp3027drivers/char/istallion.coutb(ONB_ATSTOP, (brdp->iobase + ONB_ATCONFR));
brdp3029drivers/char/istallion.coutb(ONB_ATDISABLE, (brdp->iobase + ONB_ATCONFR));
brdp3033drivers/char/istallion.cmemconf = (((unsigned long) brdp->membase) & ONB_ATADDRMASK) >> ONB_ATADDRSHFT;
brdp3034drivers/char/istallion.coutb(memconf, (brdp->iobase + ONB_ATMEMAR));
brdp3035drivers/char/istallion.coutb(0x1, brdp->iobase);
brdp3041drivers/char/istallion.cstatic void stli_onbenable(stlibrd_t *brdp)
brdp3044drivers/char/istallion.cprintk("stli_onbenable(brdp=%x)\n", (int) brdp);
brdp3046drivers/char/istallion.coutb((ONB_ATENABLE | ONB_HIMEMENAB), (brdp->iobase + ONB_ATCONFR));
brdp3051drivers/char/istallion.cstatic void stli_onbdisable(stlibrd_t *brdp)
brdp3054drivers/char/istallion.cprintk("stli_onbdisable(brdp=%x)\n", (int) brdp);
brdp3056drivers/char/istallion.coutb(ONB_ATDISABLE, (brdp->iobase + ONB_ATCONFR));
brdp3061drivers/char/istallion.cstatic char *stli_onbgetmemptr(stlibrd_t *brdp, unsigned long offset, int line)
brdp3066drivers/char/istallion.cprintk("stli_onbgetmemptr(brdp=%x,offset=%x)\n", (int) brdp, (int) offset);
brdp3069drivers/char/istallion.cif (offset > brdp->memsize) {
brdp3070drivers/char/istallion.cprintk("STALLION: shared memory pointer=%x out of range at line=%d(%d), brd=%d\n", (int) offset, line, __LINE__, brdp->brdnr);
brdp3073drivers/char/istallion.cptr = brdp->membase + (offset % ONB_ATPAGESIZE);
brdp3080drivers/char/istallion.cstatic void stli_onbreset(stlibrd_t *brdp)
brdp3085drivers/char/istallion.cprintk("stli_onbreset(brdp=%x)\n", (int) brdp);
brdp3088drivers/char/istallion.coutb(ONB_ATSTOP, (brdp->iobase + ONB_ATCONFR));
brdp3090drivers/char/istallion.coutb(ONB_ATDISABLE, (brdp->iobase + ONB_ATCONFR));
brdp3101drivers/char/istallion.cstatic void stli_onbeinit(stlibrd_t *brdp)
brdp3107drivers/char/istallion.cprintk("stli_onbeinit(brdp=%d)\n", (int) brdp);
brdp3110drivers/char/istallion.coutb(0x1, (brdp->iobase + ONB_EIBRDENAB));
brdp3111drivers/char/istallion.coutb(ONB_EISTOP, (brdp->iobase + ONB_EICONFR));
brdp3113drivers/char/istallion.coutb(ONB_EIDISABLE, (brdp->iobase + ONB_EICONFR));
brdp3117drivers/char/istallion.cmemconf = (((unsigned long) brdp->membase) & ONB_EIADDRMASKL) >> ONB_EIADDRSHFTL;
brdp3118drivers/char/istallion.coutb(memconf, (brdp->iobase + ONB_EIMEMARL));
brdp3119drivers/char/istallion.cmemconf = (((unsigned long) brdp->membase) & ONB_EIADDRMASKH) >> ONB_EIADDRSHFTH;
brdp3120drivers/char/istallion.coutb(memconf, (brdp->iobase + ONB_EIMEMARH));
brdp3121drivers/char/istallion.coutb(0x1, brdp->iobase);
brdp3127drivers/char/istallion.cstatic void stli_onbeenable(stlibrd_t *brdp)
brdp3130drivers/char/istallion.cprintk("stli_onbeenable(brdp=%x)\n", (int) brdp);
brdp3132drivers/char/istallion.coutb(ONB_EIENABLE, (brdp->iobase + ONB_EICONFR));
brdp3137drivers/char/istallion.cstatic void stli_onbedisable(stlibrd_t *brdp)
brdp3140drivers/char/istallion.cprintk("stli_onbedisable(brdp=%x)\n", (int) brdp);
brdp3142drivers/char/istallion.coutb(ONB_EIDISABLE, (brdp->iobase + ONB_EICONFR));
brdp3147drivers/char/istallion.cstatic char *stli_onbegetmemptr(stlibrd_t *brdp, unsigned long offset, int line)
brdp3153drivers/char/istallion.cprintk("stli_onbegetmemptr(brdp=%x,offset=%x,line=%d)\n", (int) brdp, (int) offset, line);
brdp3156drivers/char/istallion.cif (offset > brdp->memsize) {
brdp3157drivers/char/istallion.cprintk("STALLION: shared memory pointer=%x out of range at line=%d(%d), brd=%d\n", (int) offset, line, __LINE__, brdp->brdnr);
brdp3161drivers/char/istallion.cptr = brdp->membase + (offset % ONB_EIPAGESIZE);
brdp3167drivers/char/istallion.coutb(val, (brdp->iobase + ONB_EICONFR));
brdp3173drivers/char/istallion.cstatic void stli_onbereset(stlibrd_t *brdp)
brdp3178drivers/char/istallion.cprintk("stli_onbereset(brdp=%x)\n", (int) brdp);
brdp3181drivers/char/istallion.coutb(ONB_EISTOP, (brdp->iobase + ONB_EICONFR));
brdp3183drivers/char/istallion.coutb(ONB_EIDISABLE, (brdp->iobase + ONB_EICONFR));
brdp3194drivers/char/istallion.cstatic void stli_bbyinit(stlibrd_t *brdp)
brdp3199drivers/char/istallion.cprintk("stli_bbyinit(brdp=%d)\n", (int) brdp);
brdp3202drivers/char/istallion.coutb(BBY_ATSTOP, (brdp->iobase + BBY_ATCONFR));
brdp3204drivers/char/istallion.coutb(0, (brdp->iobase + BBY_ATCONFR));
brdp3207drivers/char/istallion.coutb(0x1, brdp->iobase);
brdp3213drivers/char/istallion.cstatic char *stli_bbygetmemptr(stlibrd_t *brdp, unsigned long offset, int line)
brdp3219drivers/char/istallion.cprintk("stli_bbygetmemptr(brdp=%x,offset=%x)\n", (int) brdp, (int) offset);
brdp3222drivers/char/istallion.cif (offset > brdp->memsize) {
brdp3223drivers/char/istallion.cprintk("STALLION: shared memory pointer=%x out of range at line=%d(%d), brd=%d\n", (int) offset, line, __LINE__, brdp->brdnr);
brdp3227drivers/char/istallion.cptr = brdp->membase + (offset % BBY_PAGESIZE);
brdp3230drivers/char/istallion.coutb(val, (brdp->iobase + BBY_ATCONFR));
brdp3236drivers/char/istallion.cstatic void stli_bbyreset(stlibrd_t *brdp)
brdp3241drivers/char/istallion.cprintk("stli_bbyreset(brdp=%x)\n", (int) brdp);
brdp3244drivers/char/istallion.coutb(BBY_ATSTOP, (brdp->iobase + BBY_ATCONFR));
brdp3246drivers/char/istallion.coutb(0, (brdp->iobase + BBY_ATCONFR));
brdp3257drivers/char/istallion.cstatic void stli_stalinit(stlibrd_t *brdp)
brdp3262drivers/char/istallion.cprintk("stli_stalinit(brdp=%d)\n", (int) brdp);
brdp3265drivers/char/istallion.coutb(0x1, brdp->iobase);
brdp3272drivers/char/istallion.cstatic char *stli_stalgetmemptr(stlibrd_t *brdp, unsigned long offset, int line)
brdp3277drivers/char/istallion.cprintk("stli_stalgetmemptr(brdp=%x,offset=%x)\n", (int) brdp, (int) offset);
brdp3280drivers/char/istallion.cif (offset > brdp->memsize) {
brdp3281drivers/char/istallion.cprintk("STALLION: shared memory pointer=%x out of range at line=%d(%d), brd=%d\n", (int) offset, line, __LINE__, brdp->brdnr);
brdp3284drivers/char/istallion.cptr = brdp->membase + (offset % STAL_PAGESIZE);
brdp3291drivers/char/istallion.cstatic void stli_stalreset(stlibrd_t *brdp)
brdp3297drivers/char/istallion.cprintk("stli_stalreset(brdp=%x)\n", (int) brdp);
brdp3300drivers/char/istallion.cvecp = (volatile unsigned long *) (brdp->membase + 0x30);
brdp3302drivers/char/istallion.coutb(0, brdp->iobase);
brdp3348drivers/char/istallion.cstatic int stli_initecp(stlibrd_t *brdp, stlconf_t *confp)
brdp3356drivers/char/istallion.cprintk("stli_initecp(brdp=%x,confp=%x)\n", (int) brdp, (int) confp);
brdp3364drivers/char/istallion.cswitch (brdp->brdtype) {
brdp3366drivers/char/istallion.cbrdp->iobase = confp->ioaddr1;
brdp3367drivers/char/istallion.cbrdp->membase = (void *) confp->memaddr;
brdp3368drivers/char/istallion.cbrdp->memsize = ECP_MEMSIZE;
brdp3369drivers/char/istallion.cbrdp->pagesize = ECP_ATPAGESIZE;
brdp3370drivers/char/istallion.cbrdp->init = stli_ecpinit;
brdp3371drivers/char/istallion.cbrdp->enable = stli_ecpenable;
brdp3372drivers/char/istallion.cbrdp->reenable = stli_ecpenable;
brdp3373drivers/char/istallion.cbrdp->disable = stli_ecpdisable;
brdp3374drivers/char/istallion.cbrdp->getmemptr = stli_ecpgetmemptr;
brdp3375drivers/char/istallion.cbrdp->intr = stli_ecpintr;
brdp3376drivers/char/istallion.cbrdp->reset = stli_ecpreset;
brdp3380drivers/char/istallion.cbrdp->iobase = confp->ioaddr1;
brdp3381drivers/char/istallion.cbrdp->membase = (void *) confp->memaddr;
brdp3382drivers/char/istallion.cbrdp->memsize = ECP_MEMSIZE;
brdp3383drivers/char/istallion.cbrdp->pagesize = ECP_EIPAGESIZE;
brdp3384drivers/char/istallion.cbrdp->init = stli_ecpeiinit;
brdp3385drivers/char/istallion.cbrdp->enable = stli_ecpeienable;
brdp3386drivers/char/istallion.cbrdp->reenable = stli_ecpeienable;
brdp3387drivers/char/istallion.cbrdp->disable = stli_ecpeidisable;
brdp3388drivers/char/istallion.cbrdp->getmemptr = stli_ecpeigetmemptr;
brdp3389drivers/char/istallion.cbrdp->intr = stli_ecpintr;
brdp3390drivers/char/istallion.cbrdp->reset = stli_ecpeireset;
brdp3394drivers/char/istallion.cbrdp->memsize = ECP_MEMSIZE;
brdp3395drivers/char/istallion.cbrdp->membase = (void *) confp->memaddr;
brdp3396drivers/char/istallion.cbrdp->pagesize = ECP_MCPAGESIZE;
brdp3397drivers/char/istallion.cbrdp->iobase = confp->ioaddr1;
brdp3398drivers/char/istallion.cbrdp->init = NULL;
brdp3399drivers/char/istallion.cbrdp->enable = stli_ecpmcenable;
brdp3400drivers/char/istallion.cbrdp->reenable = stli_ecpmcenable;
brdp3401drivers/char/istallion.cbrdp->disable = stli_ecpmcdisable;
brdp3402drivers/char/istallion.cbrdp->getmemptr = stli_ecpmcgetmemptr;
brdp3403drivers/char/istallion.cbrdp->intr = stli_ecpintr;
brdp3404drivers/char/istallion.cbrdp->reset = stli_ecpmcreset;
brdp3417drivers/char/istallion.cEBRDINIT(brdp);
brdp3421drivers/char/istallion.cbrdp->membase = stli_mapbrdmem(confp->memaddr, brdp->memsize);
brdp3422drivers/char/istallion.cif (brdp->membase == (void *) NULL)
brdp3432drivers/char/istallion.cEBRDENABLE(brdp);
brdp3433drivers/char/istallion.csigsp = (cdkecpsig_t *) EBRDGETMEMPTR(brdp, CDK_SIGADDR);
brdp3435drivers/char/istallion.cEBRDDISABLE(brdp);
brdp3457drivers/char/istallion.cbrdp->panels[panelnr] = 16;
brdp3458drivers/char/istallion.cbrdp->nrports += 16;
brdp3461drivers/char/istallion.cbrdp->panels[panelnr] = 8;
brdp3462drivers/char/istallion.cbrdp->nrports += 8;
brdp3465drivers/char/istallion.cbrdp->nrpanels++;
brdp3468drivers/char/istallion.crequest_region(brdp->iobase, ECP_IOSIZE, "serial(ECP)");
brdp3469drivers/char/istallion.cbrdp->state |= BST_FOUND;
brdp3480drivers/char/istallion.cstatic int stli_initonb(stlibrd_t *brdp, stlconf_t *confp)
brdp3487drivers/char/istallion.cprintk("stli_initonb(brdp=%x,confp=%x)\n", (int) brdp, (int) confp);
brdp3495drivers/char/istallion.cswitch (brdp->brdtype) {
brdp3501drivers/char/istallion.cbrdp->iobase = confp->ioaddr1;
brdp3502drivers/char/istallion.cbrdp->membase = (void *) confp->memaddr;
brdp3503drivers/char/istallion.cbrdp->memsize = ONB_MEMSIZE;
brdp3504drivers/char/istallion.cbrdp->pagesize = ONB_ATPAGESIZE;
brdp3505drivers/char/istallion.cbrdp->init = stli_onbinit;
brdp3506drivers/char/istallion.cbrdp->enable = stli_onbenable;
brdp3507drivers/char/istallion.cbrdp->reenable = stli_onbenable;
brdp3508drivers/char/istallion.cbrdp->disable = stli_onbdisable;
brdp3509drivers/char/istallion.cbrdp->getmemptr = stli_onbgetmemptr;
brdp3510drivers/char/istallion.cbrdp->intr = stli_ecpintr;
brdp3511drivers/char/istallion.cbrdp->reset = stli_onbreset;
brdp3515drivers/char/istallion.cbrdp->iobase = confp->ioaddr1;
brdp3516drivers/char/istallion.cbrdp->membase = (void *) confp->memaddr;
brdp3517drivers/char/istallion.cbrdp->memsize = ONB_EIMEMSIZE;
brdp3518drivers/char/istallion.cbrdp->pagesize = ONB_EIPAGESIZE;
brdp3519drivers/char/istallion.cbrdp->init = stli_onbeinit;
brdp3520drivers/char/istallion.cbrdp->enable = stli_onbeenable;
brdp3521drivers/char/istallion.cbrdp->reenable = stli_onbeenable;
brdp3522drivers/char/istallion.cbrdp->disable = stli_onbedisable;
brdp3523drivers/char/istallion.cbrdp->getmemptr = stli_onbegetmemptr;
brdp3524drivers/char/istallion.cbrdp->intr = stli_ecpintr;
brdp3525drivers/char/istallion.cbrdp->reset = stli_onbereset;
brdp3531drivers/char/istallion.cbrdp->iobase = confp->ioaddr1;
brdp3532drivers/char/istallion.cbrdp->membase = (void *) confp->memaddr;
brdp3533drivers/char/istallion.cbrdp->memsize = BBY_MEMSIZE;
brdp3534drivers/char/istallion.cbrdp->pagesize = BBY_PAGESIZE;
brdp3535drivers/char/istallion.cbrdp->init = stli_bbyinit;
brdp3536drivers/char/istallion.cbrdp->enable = NULL;
brdp3537drivers/char/istallion.cbrdp->reenable = NULL;
brdp3538drivers/char/istallion.cbrdp->disable = NULL;
brdp3539drivers/char/istallion.cbrdp->getmemptr = stli_bbygetmemptr;
brdp3540drivers/char/istallion.cbrdp->intr = stli_ecpintr;
brdp3541drivers/char/istallion.cbrdp->reset = stli_bbyreset;
brdp3545drivers/char/istallion.cbrdp->iobase = confp->ioaddr1;
brdp3546drivers/char/istallion.cbrdp->membase = (void *) confp->memaddr;
brdp3547drivers/char/istallion.cbrdp->memsize = STAL_MEMSIZE;
brdp3548drivers/char/istallion.cbrdp->pagesize = STAL_PAGESIZE;
brdp3549drivers/char/istallion.cbrdp->init = stli_stalinit;
brdp3550drivers/char/istallion.cbrdp->enable = NULL;
brdp3551drivers/char/istallion.cbrdp->reenable = NULL;
brdp3552drivers/char/istallion.cbrdp->disable = NULL;
brdp3553drivers/char/istallion.cbrdp->getmemptr = stli_stalgetmemptr;
brdp3554drivers/char/istallion.cbrdp->intr = stli_ecpintr;
brdp3555drivers/char/istallion.cbrdp->reset = stli_stalreset;
brdp3568drivers/char/istallion.cEBRDINIT(brdp);
brdp3572drivers/char/istallion.cbrdp->membase = stli_mapbrdmem(confp->memaddr, brdp->memsize);
brdp3573drivers/char/istallion.cif (brdp->membase == (void *) NULL)
brdp3583drivers/char/istallion.cEBRDENABLE(brdp);
brdp3584drivers/char/istallion.csigsp = (cdkonbsig_t *) EBRDGETMEMPTR(brdp, CDK_SIGADDR);
brdp3586drivers/char/istallion.cEBRDDISABLE(brdp);
brdp3602drivers/char/istallion.cbrdp->nrpanels = 1;
brdp3604drivers/char/istallion.cbrdp->nrports = 32;
brdp3610drivers/char/istallion.cbrdp->nrports = i;
brdp3613drivers/char/istallion.crequest_region(brdp->iobase, ONB_IOSIZE, "serial(ONB/BBY)");
brdp3614drivers/char/istallion.cbrdp->state |= BST_FOUND;
brdp3626drivers/char/istallion.cstatic int stli_startbrd(stlibrd_t *brdp)
brdp3636drivers/char/istallion.cprintk("stli_startbrd(brdp=%x)\n", (int) brdp);
brdp3643drivers/char/istallion.cEBRDENABLE(brdp);
brdp3644drivers/char/istallion.chdrp = (volatile cdkhdr_t *) EBRDGETMEMPTR(brdp, CDK_CDKADDR);
brdp3654drivers/char/istallion.cif (nrdevs < (brdp->nrports + 1)) {
brdp3656drivers/char/istallion.cbrdp->nrports = nrdevs - 1;
brdp3658drivers/char/istallion.cbrdp->nrdevs = nrdevs;
brdp3659drivers/char/istallion.cbrdp->hostoffset = hdrp->hostp - CDK_CDKADDR;
brdp3660drivers/char/istallion.cbrdp->slaveoffset = hdrp->slavep - CDK_CDKADDR;
brdp3661drivers/char/istallion.cbrdp->bitsize = (nrdevs + 7) / 8;
brdp3663drivers/char/istallion.cif (((unsigned long) memp) > brdp->memsize) {
brdp3668drivers/char/istallion.cmemp = (volatile cdkmem_t *) EBRDGETMEMPTR(brdp, (unsigned long) memp);
brdp3683drivers/char/istallion.cportp = brdp->ports[portnr];
brdp3699drivers/char/istallion.cportp = brdp->ports[portnr];
brdp3704drivers/char/istallion.cap = (volatile cdkasy_t *) EBRDGETMEMPTR(brdp, portp->addr);
brdp3714drivers/char/istallion.cEBRDDISABLE(brdp);
brdp3718drivers/char/istallion.cbrdp->state |= BST_STARTED;
brdp3738drivers/char/istallion.cstlibrd_t  *brdp;
brdp3757drivers/char/istallion.cbrdp = &stli_brds[i];
brdp3759drivers/char/istallion.cbrdp->brdnr = i;
brdp3760drivers/char/istallion.cbrdp->brdtype = confp->brdtype;
brdp3766drivers/char/istallion.cstli_initecp(brdp, confp);
brdp3778drivers/char/istallion.cstli_initonb(brdp, confp);
brdp3784drivers/char/istallion.cprintk("STALLION: %s board type not supported in this driver\n", stli_brdnames[brdp->brdtype]);
brdp3791drivers/char/istallion.cif ((brdp->state & BST_FOUND) == 0) {
brdp3792drivers/char/istallion.cprintk("STALLION: %s board not found, unit=%d io=%x mem=%x\n", stli_brdnames[brdp->brdtype], i, confp->ioaddr1, (int) confp->memaddr);
brdp3796drivers/char/istallion.cstli_initports(brdp);
brdp3797drivers/char/istallion.cprintk("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);
brdp3809drivers/char/istallion.cbrdp = &stli_brds[i];
brdp3810drivers/char/istallion.cif ((brdp->membase >= stli_brds[j].membase) &&
brdp3811drivers/char/istallion.c(brdp->membase <= (stli_brds[j].membase + stli_brds[j].memsize - 1))) {
brdp3821drivers/char/istallion.cbrdp = &stli_brds[i];
brdp3822drivers/char/istallion.cif (brdp->state & BST_FOUND) {
brdp3823drivers/char/istallion.cEBRDENABLE(brdp);
brdp3824drivers/char/istallion.cbrdp->enable = NULL;
brdp3825drivers/char/istallion.cbrdp->disable = NULL;
brdp3845drivers/char/istallion.cstlibrd_t  *brdp;
brdp3855drivers/char/istallion.cbrdp = &stli_brds[brdnr];
brdp3856drivers/char/istallion.cif (brdp->state == 0)
brdp3858drivers/char/istallion.cif (fp->f_pos >= brdp->memsize)
brdp3861drivers/char/istallion.csize = MIN(count, (brdp->memsize - fp->f_pos));
brdp3865drivers/char/istallion.cEBRDENABLE(brdp);
brdp3867drivers/char/istallion.cmemptr = (void *) EBRDGETMEMPTR(brdp, fp->f_pos);
brdp3868drivers/char/istallion.cn = MIN(size, (brdp->pagesize - (((unsigned long) fp->f_pos) % brdp->pagesize)));
brdp3874drivers/char/istallion.cEBRDDISABLE(brdp);
brdp3892drivers/char/istallion.cstlibrd_t  *brdp;
brdp3903drivers/char/istallion.cbrdp = &stli_brds[brdnr];
brdp3904drivers/char/istallion.cif (brdp->state == 0)
brdp3906drivers/char/istallion.cif (fp->f_pos >= brdp->memsize)
brdp3910drivers/char/istallion.csize = MIN(count, (brdp->memsize - fp->f_pos));
brdp3914drivers/char/istallion.cEBRDENABLE(brdp);
brdp3916drivers/char/istallion.cmemptr = (void *) EBRDGETMEMPTR(brdp, fp->f_pos);
brdp3917drivers/char/istallion.cn = MIN(size, (brdp->pagesize - (((unsigned long) fp->f_pos) % brdp->pagesize)));
brdp3923drivers/char/istallion.cEBRDDISABLE(brdp);
brdp3939drivers/char/istallion.cstlibrd_t  *brdp;
brdp3949drivers/char/istallion.cbrdp = &stli_brds[brdnr];
brdp3950drivers/char/istallion.cif (brdp->state == 0)
brdp3957drivers/char/istallion.cEBRDINTR(brdp);
brdp3960drivers/char/istallion.crc = stli_startbrd(brdp);
brdp3963drivers/char/istallion.cbrdp->state &= ~BST_STARTED;
brdp3966drivers/char/istallion.cbrdp->state &= ~BST_STARTED;
brdp3967drivers/char/istallion.cEBRDRESET(brdp);
brdp3969drivers/char/istallion.cif (brdp->reenable != NULL)
brdp3970drivers/char/istallion.c(* brdp->reenable)(brdp);
brdp477drivers/char/stallion.cstatic int  stl_brdinit(stlbrd_t *brdp);
brdp478drivers/char/stallion.cstatic int  stl_initeio(stlbrd_t *brdp);
brdp479drivers/char/stallion.cstatic int  stl_initech(stlbrd_t *brdp);
brdp480drivers/char/stallion.cstatic int  stl_initports(stlbrd_t *brdp, stlpanel_t *panelp);
brdp533drivers/char/stallion.cstlbrd_t  *brdp;
brdp566drivers/char/stallion.cbrdp = stl_brds[i];
brdp568drivers/char/stallion.cpanelp = brdp->panels[j];
brdp585drivers/char/stallion.cif (brdp->brdtype == BRD_ECH) {
brdp586drivers/char/stallion.crelease_region(brdp->ioaddr1, 2);
brdp587drivers/char/stallion.crelease_region(brdp->ioaddr2, 32);
brdp588drivers/char/stallion.c} else if (brdp->brdtype == BRD_ECHPCI) {
brdp589drivers/char/stallion.crelease_region(brdp->ioaddr1, 4);
brdp590drivers/char/stallion.crelease_region(brdp->ioaddr2, 8);
brdp591drivers/char/stallion.c} else if (brdp->brdtype == BRD_ECHMC) {
brdp592drivers/char/stallion.crelease_region(brdp->ioaddr1, 64);
brdp593drivers/char/stallion.c} else if (brdp->brdtype == BRD_EASYIO) {
brdp594drivers/char/stallion.crelease_region(brdp->ioaddr1, 8);
brdp597drivers/char/stallion.ckfree_s(brdp, sizeof(stlbrd_t));
brdp628drivers/char/stallion.cstlbrd_t  *brdp;
brdp640drivers/char/stallion.cbrdp = stl_brds[brdnr];
brdp641drivers/char/stallion.cif (brdp == (stlbrd_t *) NULL)
brdp645drivers/char/stallion.cif (brdp->panels[panelnr] == (stlpanel_t *) NULL)
brdp647drivers/char/stallion.cif (minordev < brdp->panels[panelnr]->nrports) {
brdp651drivers/char/stallion.cminordev -= brdp->panels[panelnr]->nrports;
brdp656drivers/char/stallion.cportp = brdp->panels[panelnr]->ports[portnr];
brdp1108drivers/char/stallion.cstlbrd_t    *brdp;
brdp1126drivers/char/stallion.cbrdp = stl_brds[portp->brdnr];
brdp1127drivers/char/stallion.cif (brdp != (stlbrd_t *) NULL)
brdp1128drivers/char/stallion.csio.irq = brdp->irq;
brdp1760drivers/char/stallion.cstlbrd_t  *brdp;
brdp1771drivers/char/stallion.cif ((brdp = stl_brds[i]) == (stlbrd_t *) NULL) {
brdp1775drivers/char/stallion.cif (brdp->state == 0) {
brdp1784drivers/char/stallion.cif (brdp->brdtype == BRD_EASYIO) {
brdp1785drivers/char/stallion.cif ((inb(brdp->iostatus) & EIO_INTRPEND) == 0) {
brdp1789drivers/char/stallion.cpanelp = brdp->panels[0];
brdp1793drivers/char/stallion.cif (brdp->nrports > 4) {
brdp1797drivers/char/stallion.c} else if (brdp->brdtype == BRD_ECH) {
brdp1798drivers/char/stallion.cif ((inb(brdp->iostatus) & ECH_INTRPEND) == 0) {
brdp1802drivers/char/stallion.coutb((brdp->ioctrlval | ECH_BRDENABLE), brdp->ioctrl);
brdp1803drivers/char/stallion.cfor (panelnr = 0; (panelnr < brdp->nrpanels); panelnr++) {
brdp1804drivers/char/stallion.cpanelp = brdp->panels[panelnr];
brdp1814drivers/char/stallion.cif (panelnr >= brdp->nrpanels) {
brdp1822drivers/char/stallion.c} else if (brdp->brdtype == BRD_ECHPCI) {
brdp1823drivers/char/stallion.ciobase = brdp->ioaddr2;
brdp1824drivers/char/stallion.cfor (panelnr = 0; (panelnr < brdp->nrpanels); panelnr++) {
brdp1825drivers/char/stallion.cpanelp = brdp->panels[panelnr];
brdp1826drivers/char/stallion.coutb(panelp->pagenr, brdp->ioctrl);
brdp1830drivers/char/stallion.coutb((panelp->pagenr + 1), brdp->ioctrl);
brdp1835drivers/char/stallion.cif (panelnr >= brdp->nrpanels) {
brdp1843drivers/char/stallion.c} else if (brdp->brdtype == BRD_ECHMC) {
brdp1844drivers/char/stallion.cif ((inb(brdp->iostatus) & ECH_INTRPEND) == 0) {
brdp1848drivers/char/stallion.cfor (panelnr = 0; (panelnr < brdp->nrpanels); panelnr++) {
brdp1849drivers/char/stallion.cpanelp = brdp->panels[panelnr];
brdp1859drivers/char/stallion.cif (panelnr >= brdp->nrpanels) {
brdp1868drivers/char/stallion.cprintk("STALLION: unknown board type=%x\n", brdp->brdtype);
brdp1885drivers/char/stallion.cif (brdp->brdtype == BRD_ECH)
brdp1886drivers/char/stallion.coutb((brdp->ioctrlval | ECH_BRDDISABLE), brdp->ioctrl);
brdp1962drivers/char/stallion.cstlbrd_t  *brdp;
brdp1985drivers/char/stallion.cbrdp = stl_brds[portp->brdnr];
brdp1986drivers/char/stallion.cif (brdp == (stlbrd_t *) NULL)
brdp2393drivers/char/stallion.cstatic int stl_initports(stlbrd_t *brdp, stlpanel_t *panelp)
brdp2413drivers/char/stallion.cif (brdp->brdtype == BRD_ECHPCI) {
brdp2414drivers/char/stallion.coutb((panelp->pagenr + (i >> 1)), brdp->ioctrl);
brdp2446drivers/char/stallion.cif (brdp->brdtype == BRD_ECHPCI) {
brdp2447drivers/char/stallion.coutb((panelp->pagenr + (i >> 3)), brdp->ioctrl);
brdp2488drivers/char/stallion.cstatic int stl_initeio(stlbrd_t *brdp)
brdp2495drivers/char/stallion.cprintk("stl_initeio(brdp=%x)\n", (int) brdp);
brdp2498drivers/char/stallion.cbrdp->ioctrl = brdp->ioaddr1 + 1;
brdp2499drivers/char/stallion.cbrdp->iostatus = brdp->ioaddr1 + 2;
brdp2501drivers/char/stallion.cstatus = inb(brdp->iostatus);
brdp2506drivers/char/stallion.cbrdp->nrports = 8;
brdp2509drivers/char/stallion.cbrdp->nrports = 4;
brdp2515drivers/char/stallion.crequest_region(brdp->ioaddr1, 8, "serial(EIO)");
brdp2522drivers/char/stallion.cif ((brdp->irq < 0) || (brdp->irq > 15) ||
brdp2523drivers/char/stallion.c(stl_vecmap[brdp->irq] == (unsigned char) 0xff)) {
brdp2524drivers/char/stallion.cprintk("STALLION: invalid irq=%d for brd=%d\n", brdp->irq, brdp->brdnr);
brdp2527drivers/char/stallion.coutb((stl_vecmap[brdp->irq] | ((brdp->irqtype) ? EIO_INTLEVEL : EIO_INTEDGE)), brdp->ioctrl);
brdp2536drivers/char/stallion.cpanelp->brdnr = brdp->brdnr;
brdp2538drivers/char/stallion.cpanelp->nrports = brdp->nrports;
brdp2539drivers/char/stallion.cpanelp->iobase = brdp->ioaddr1;
brdp2540drivers/char/stallion.cbrdp->panels[0] = panelp;
brdp2541drivers/char/stallion.cbrdp->nrpanels = 1;
brdp2542drivers/char/stallion.cbrdp->state |= BRD_FOUND;
brdp2543drivers/char/stallion.crc = stl_mapirq(brdp->irq);
brdp2554drivers/char/stallion.cstatic int stl_initech(stlbrd_t *brdp)
brdp2561drivers/char/stallion.cprintk("stl_initech(brdp=%x)\n", (int) brdp);
brdp2569drivers/char/stallion.cif (brdp->brdtype == BRD_ECH) {
brdp2570drivers/char/stallion.cbrdp->ioctrl = brdp->ioaddr1 + 1;
brdp2571drivers/char/stallion.cbrdp->iostatus = brdp->ioaddr1 + 1;
brdp2572drivers/char/stallion.cstatus = inb(brdp->iostatus);
brdp2576drivers/char/stallion.cif ((brdp->irq < 0) || (brdp->irq > 15) ||
brdp2577drivers/char/stallion.c(stl_vecmap[brdp->irq] == (unsigned char) 0xff)) {
brdp2578drivers/char/stallion.cprintk("STALLION: invalid irq=%d for brd=%d\n", brdp->irq, brdp->brdnr);
brdp2581drivers/char/stallion.cstatus = ((brdp->ioaddr2 & ECH_ADDR2MASK) >> 1);
brdp2582drivers/char/stallion.cstatus |= (stl_vecmap[brdp->irq] << 1);
brdp2583drivers/char/stallion.coutb((status | ECH_BRDRESET), brdp->ioaddr1);
brdp2584drivers/char/stallion.cbrdp->ioctrlval = ECH_INTENABLE | ((brdp->irqtype) ? ECH_INTLEVEL : ECH_INTEDGE);
brdp2585drivers/char/stallion.coutb((brdp->ioctrlval | ECH_BRDENABLE), brdp->ioctrl);
brdp2586drivers/char/stallion.coutb(status, brdp->ioaddr1);
brdp2588drivers/char/stallion.crequest_region(brdp->ioaddr1, 2, "serial(EC8/32)");
brdp2589drivers/char/stallion.crequest_region(brdp->ioaddr2, 32, "serial(EC8/32-secondary)");
brdp2590drivers/char/stallion.c} else if (brdp->brdtype == BRD_ECHMC) {
brdp2591drivers/char/stallion.cbrdp->ioctrl = brdp->ioaddr1 + 0x20;
brdp2592drivers/char/stallion.cbrdp->iostatus = brdp->ioctrl;
brdp2593drivers/char/stallion.cstatus = inb(brdp->iostatus);
brdp2597drivers/char/stallion.cif ((brdp->irq < 0) || (brdp->irq > 15) ||
brdp2598drivers/char/stallion.c(stl_vecmap[brdp->irq] == (unsigned char) 0xff)) {
brdp2599drivers/char/stallion.cprintk("STALLION: invalid irq=%d for brd=%d\n", brdp->irq, brdp->brdnr);
brdp2602drivers/char/stallion.coutb(ECHMC_BRDRESET, brdp->ioctrl);
brdp2603drivers/char/stallion.coutb(ECHMC_INTENABLE, brdp->ioctrl);
brdp2605drivers/char/stallion.crequest_region(brdp->ioaddr1, 64, "serial(EC8/32-MC)");
brdp2606drivers/char/stallion.c} else if (brdp->brdtype == BRD_ECHPCI) {
brdp2607drivers/char/stallion.cbrdp->ioctrl = brdp->ioaddr1 + 2;
brdp2608drivers/char/stallion.crequest_region(brdp->ioaddr1, 4, "serial(EC8/32-PCI)");
brdp2609drivers/char/stallion.crequest_region(brdp->ioaddr2, 8, "serial(EC8/32-PCI-secondary)");
brdp2616drivers/char/stallion.cioaddr = brdp->ioaddr2;
brdp2621drivers/char/stallion.cif (brdp->brdtype == BRD_ECHPCI) {
brdp2622drivers/char/stallion.coutb(nxtid, brdp->ioctrl);
brdp2623drivers/char/stallion.cioaddr = brdp->ioaddr2;
brdp2634drivers/char/stallion.cpanelp->brdnr = brdp->brdnr;
brdp2639drivers/char/stallion.cif ((brdp->nrports + 16) > 32)
brdp2643drivers/char/stallion.cbrdp->nrports += 16;
brdp2649drivers/char/stallion.cbrdp->nrports += 8;
brdp2653drivers/char/stallion.cbrdp->panels[panelnr++] = panelp;
brdp2654drivers/char/stallion.cbrdp->nrpanels++;
brdp2655drivers/char/stallion.cif (ioaddr >= (brdp->ioaddr2 + 0x20))
brdp2659drivers/char/stallion.cif (brdp->brdtype == BRD_ECH)
brdp2660drivers/char/stallion.coutb((brdp->ioctrlval | ECH_BRDDISABLE), brdp->ioctrl);
brdp2662drivers/char/stallion.cbrdp->state |= BRD_FOUND;
brdp2663drivers/char/stallion.ci = stl_mapirq(brdp->irq);
brdp2676drivers/char/stallion.cstatic int stl_brdinit(stlbrd_t *brdp)
brdp2681drivers/char/stallion.cprintk("stl_brdinit(brdp=%x)\n", (int) brdp);
brdp2684drivers/char/stallion.cswitch (brdp->brdtype) {
brdp2686drivers/char/stallion.cstl_initeio(brdp);
brdp2691drivers/char/stallion.cstl_initech(brdp);
brdp2694drivers/char/stallion.cprintk("STALLION: unit=%d is unknown board type=%d\n", brdp->brdnr, brdp->brdtype);
brdp2698drivers/char/stallion.cstl_brds[brdp->brdnr] = brdp;
brdp2699drivers/char/stallion.cif ((brdp->state & BRD_FOUND) == 0) {
brdp2700drivers/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);
brdp2705drivers/char/stallion.cif (brdp->panels[i] != (stlpanel_t *) NULL)
brdp2706drivers/char/stallion.cstl_initports(brdp, brdp->panels[i]);
brdp2708drivers/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);
brdp2723drivers/char/stallion.cstlbrd_t  *brdp;
brdp2759drivers/char/stallion.cbrdp = (stlbrd_t *) stl_memalloc(sizeof(stlbrd_t));
brdp2760drivers/char/stallion.cif (brdp == (stlbrd_t *) NULL) {
brdp2764drivers/char/stallion.cmemset(brdp, 0, sizeof(stlbrd_t));
brdp2765drivers/char/stallion.cbrdp->brdnr = stl_nrbrds++;
brdp2766drivers/char/stallion.cbrdp->brdtype = BRD_ECHPCI;
brdp2772drivers/char/stallion.cbrdp->ioaddr2 = (ioaddr & PCI_BASE_ADDRESS_IO_MASK);
brdp2778drivers/char/stallion.cbrdp->ioaddr1 = (ioaddr & PCI_BASE_ADDRESS_IO_MASK);
brdp2780drivers/char/stallion.cprintk("%s(%d): BAR0=%x BAR1=%x\n", __FILE__, __LINE__, brdp->ioaddr2, brdp->ioaddr1);
brdp2787drivers/char/stallion.cbrdp->irq = irq;
brdp2801drivers/char/stallion.cstl_brdinit(brdp);
brdp2820drivers/char/stallion.cstlbrd_t  *brdp;
brdp2839drivers/char/stallion.cbrdp = (stlbrd_t *) stl_memalloc(sizeof(stlbrd_t));
brdp2840drivers/char/stallion.cif (brdp == (stlbrd_t *) NULL) {
brdp2844drivers/char/stallion.cmemset(brdp, 0, sizeof(stlbrd_t));
brdp2846drivers/char/stallion.cbrdp->brdnr = i;
brdp2847drivers/char/stallion.cbrdp->brdtype = confp->brdtype;
brdp2848drivers/char/stallion.cbrdp->ioaddr1 = confp->ioaddr1;
brdp2849drivers/char/stallion.cbrdp->ioaddr2 = confp->ioaddr2;
brdp2850drivers/char/stallion.cbrdp->irq = confp->irq;
brdp2851drivers/char/stallion.cbrdp->irqtype = confp->irqtype;
brdp2852drivers/char/stallion.cstl_brdinit(brdp);