Lines Matching refs:ChP

235 static int sInitChan(CONTROLLER_T * CtlP, CHANNEL_T * ChP, int AiopNum,
237 static void sSetInterfaceMode(CHANNEL_T * ChP, Byte_t mode);
238 static void sFlushRxFIFO(CHANNEL_T * ChP);
239 static void sFlushTxFIFO(CHANNEL_T * ChP);
240 static void sEnInterrupts(CHANNEL_T * ChP, Word_t Flags);
241 static void sDisInterrupts(CHANNEL_T * ChP, Word_t Flags);
244 static int sWriteTxPrioByte(CHANNEL_T * ChP, Byte_t Data);
1136 static int sGetChanRI(CHANNEL_T * ChP) in sGetChanRI() argument
1138 CONTROLLER_t *CtlP = ChP->CtlP; in sGetChanRI()
1139 int ChanNum = ChP->ChanNum; in sGetChanRI()
1145 RingInd = sInB((ByteIO_t) (ChP->ChanStat + 8)) & DSR_ACT; in sGetChanRI()
2725 static int sInitChan(CONTROLLER_T * CtlP, CHANNEL_T * ChP, int AiopNum, in sInitChan() argument
2740 ChP->CtlP = CtlP; in sInitChan()
2741 ChP->ChanID = CtlP->AiopID[AiopNum]; in sInitChan()
2742 ChP->AiopNum = AiopNum; in sInitChan()
2743 ChP->ChanNum = ChanNum; in sInitChan()
2747 ChP->Cmd = (ByteIO_t) AiopIO + _CMD_REG; in sInitChan()
2748 ChP->IntChan = (ByteIO_t) AiopIO + _INT_CHAN; in sInitChan()
2749 ChP->IntMask = (ByteIO_t) AiopIO + _INT_MASK; in sInitChan()
2750 ChP->IndexAddr = (DWordIO_t) AiopIO + _INDX_ADDR; in sInitChan()
2751 ChP->IndexData = AiopIO + _INDX_DATA; in sInitChan()
2754 ChIOOff = AiopIO + ChP->ChanNum * 2; in sInitChan()
2755 ChP->TxRxData = ChIOOff + _TD0; in sInitChan()
2756 ChP->ChanStat = ChIOOff + _CHN_STAT0; in sInitChan()
2757 ChP->TxRxCount = ChIOOff + _FIFO_CNT0; in sInitChan()
2758 ChP->IntID = (ByteIO_t) AiopIO + ChP->ChanNum + _INT_ID0; in sInitChan()
2766 out32(ChP->IndexAddr, R); in sInitChan()
2769 ChR = ChP->R; in sInitChan()
2785 ChP->BaudDiv[0] = (Byte_t) (ChOff + _BAUD); in sInitChan()
2786 ChP->BaudDiv[1] = (Byte_t) ((ChOff + _BAUD) >> 8); in sInitChan()
2787 ChP->BaudDiv[2] = (Byte_t) brd9600; in sInitChan()
2788 ChP->BaudDiv[3] = (Byte_t) (brd9600 >> 8); in sInitChan()
2789 out32(ChP->IndexAddr, ChP->BaudDiv); in sInitChan()
2791 ChP->TxControl[0] = (Byte_t) (ChOff + _TX_CTRL); in sInitChan()
2792 ChP->TxControl[1] = (Byte_t) ((ChOff + _TX_CTRL) >> 8); in sInitChan()
2793 ChP->TxControl[2] = 0; in sInitChan()
2794 ChP->TxControl[3] = 0; in sInitChan()
2795 out32(ChP->IndexAddr, ChP->TxControl); in sInitChan()
2797 ChP->RxControl[0] = (Byte_t) (ChOff + _RX_CTRL); in sInitChan()
2798 ChP->RxControl[1] = (Byte_t) ((ChOff + _RX_CTRL) >> 8); in sInitChan()
2799 ChP->RxControl[2] = 0; in sInitChan()
2800 ChP->RxControl[3] = 0; in sInitChan()
2801 out32(ChP->IndexAddr, ChP->RxControl); in sInitChan()
2803 ChP->TxEnables[0] = (Byte_t) (ChOff + _TX_ENBLS); in sInitChan()
2804 ChP->TxEnables[1] = (Byte_t) ((ChOff + _TX_ENBLS) >> 8); in sInitChan()
2805 ChP->TxEnables[2] = 0; in sInitChan()
2806 ChP->TxEnables[3] = 0; in sInitChan()
2807 out32(ChP->IndexAddr, ChP->TxEnables); in sInitChan()
2809 ChP->TxCompare[0] = (Byte_t) (ChOff + _TXCMP1); in sInitChan()
2810 ChP->TxCompare[1] = (Byte_t) ((ChOff + _TXCMP1) >> 8); in sInitChan()
2811 ChP->TxCompare[2] = 0; in sInitChan()
2812 ChP->TxCompare[3] = 0; in sInitChan()
2813 out32(ChP->IndexAddr, ChP->TxCompare); in sInitChan()
2815 ChP->TxReplace1[0] = (Byte_t) (ChOff + _TXREP1B1); in sInitChan()
2816 ChP->TxReplace1[1] = (Byte_t) ((ChOff + _TXREP1B1) >> 8); in sInitChan()
2817 ChP->TxReplace1[2] = 0; in sInitChan()
2818 ChP->TxReplace1[3] = 0; in sInitChan()
2819 out32(ChP->IndexAddr, ChP->TxReplace1); in sInitChan()
2821 ChP->TxReplace2[0] = (Byte_t) (ChOff + _TXREP2); in sInitChan()
2822 ChP->TxReplace2[1] = (Byte_t) ((ChOff + _TXREP2) >> 8); in sInitChan()
2823 ChP->TxReplace2[2] = 0; in sInitChan()
2824 ChP->TxReplace2[3] = 0; in sInitChan()
2825 out32(ChP->IndexAddr, ChP->TxReplace2); in sInitChan()
2827 ChP->TxFIFOPtrs = ChOff + _TXF_OUTP; in sInitChan()
2828 ChP->TxFIFO = ChOff + _TX_FIFO; in sInitChan()
2830 sOutB(ChP->Cmd, (Byte_t) ChanNum | RESTXFCNT); /* apply reset Tx FIFO count */ in sInitChan()
2831 sOutB(ChP->Cmd, (Byte_t) ChanNum); /* remove reset Tx FIFO count */ in sInitChan()
2832 sOutW((WordIO_t) ChP->IndexAddr, ChP->TxFIFOPtrs); /* clear Tx in/out ptrs */ in sInitChan()
2833 sOutW(ChP->IndexData, 0); in sInitChan()
2834 ChP->RxFIFOPtrs = ChOff + _RXF_OUTP; in sInitChan()
2835 ChP->RxFIFO = ChOff + _RX_FIFO; in sInitChan()
2837 sOutB(ChP->Cmd, (Byte_t) ChanNum | RESRXFCNT); /* apply reset Rx FIFO count */ in sInitChan()
2838 sOutB(ChP->Cmd, (Byte_t) ChanNum); /* remove reset Rx FIFO count */ in sInitChan()
2839 sOutW((WordIO_t) ChP->IndexAddr, ChP->RxFIFOPtrs); /* clear Rx out ptr */ in sInitChan()
2840 sOutW(ChP->IndexData, 0); in sInitChan()
2841 sOutW((WordIO_t) ChP->IndexAddr, ChP->RxFIFOPtrs + 2); /* clear Rx in ptr */ in sInitChan()
2842 sOutW(ChP->IndexData, 0); in sInitChan()
2843 ChP->TxPrioCnt = ChOff + _TXP_CNT; in sInitChan()
2844 sOutW((WordIO_t) ChP->IndexAddr, ChP->TxPrioCnt); in sInitChan()
2845 sOutB(ChP->IndexData, 0); in sInitChan()
2846 ChP->TxPrioPtr = ChOff + _TXP_PNTR; in sInitChan()
2847 sOutW((WordIO_t) ChP->IndexAddr, ChP->TxPrioPtr); in sInitChan()
2848 sOutB(ChP->IndexData, 0); in sInitChan()
2849 ChP->TxPrioBuf = ChOff + _TXP_BUF; in sInitChan()
2850 sEnRxProcessor(ChP); /* start the Rx processor */ in sInitChan()
2873 static void sStopRxProcessor(CHANNEL_T * ChP) in sStopRxProcessor() argument
2877 R[0] = ChP->R[0]; in sStopRxProcessor()
2878 R[1] = ChP->R[1]; in sStopRxProcessor()
2880 R[3] = ChP->R[3]; in sStopRxProcessor()
2881 out32(ChP->IndexAddr, R); in sStopRxProcessor()
2898 static void sFlushRxFIFO(CHANNEL_T * ChP) in sFlushRxFIFO() argument
2904 if (sGetRxCnt(ChP) == 0) /* Rx FIFO empty */ in sFlushRxFIFO()
2908 if (ChP->R[0x32] == 0x08) { /* Rx FIFO is enabled */ in sFlushRxFIFO()
2910 sDisRxFIFO(ChP); /* disable it */ in sFlushRxFIFO()
2912 sInB(ChP->IntChan); /* depends on bus i/o timing */ in sFlushRxFIFO()
2914 sGetChanStatus(ChP); /* clear any pending Rx errors in chan stat */ in sFlushRxFIFO()
2915 Ch = (Byte_t) sGetChanNum(ChP); in sFlushRxFIFO()
2916 sOutB(ChP->Cmd, Ch | RESRXFCNT); /* apply reset Rx FIFO count */ in sFlushRxFIFO()
2917 sOutB(ChP->Cmd, Ch); /* remove reset Rx FIFO count */ in sFlushRxFIFO()
2918 sOutW((WordIO_t) ChP->IndexAddr, ChP->RxFIFOPtrs); /* clear Rx out ptr */ in sFlushRxFIFO()
2919 sOutW(ChP->IndexData, 0); in sFlushRxFIFO()
2920 sOutW((WordIO_t) ChP->IndexAddr, ChP->RxFIFOPtrs + 2); /* clear Rx in ptr */ in sFlushRxFIFO()
2921 sOutW(ChP->IndexData, 0); in sFlushRxFIFO()
2923 sEnRxFIFO(ChP); /* enable Rx FIFO */ in sFlushRxFIFO()
2940 static void sFlushTxFIFO(CHANNEL_T * ChP) in sFlushTxFIFO() argument
2946 if (sGetTxCnt(ChP) == 0) /* Tx FIFO empty */ in sFlushTxFIFO()
2950 if (ChP->TxControl[3] & TX_ENABLE) { in sFlushTxFIFO()
2952 sDisTransmit(ChP); /* disable transmitter */ in sFlushTxFIFO()
2954 sStopRxProcessor(ChP); /* stop Rx processor */ in sFlushTxFIFO()
2956 sInB(ChP->IntChan); /* depends on bus i/o timing */ in sFlushTxFIFO()
2957 Ch = (Byte_t) sGetChanNum(ChP); in sFlushTxFIFO()
2958 sOutB(ChP->Cmd, Ch | RESTXFCNT); /* apply reset Tx FIFO count */ in sFlushTxFIFO()
2959 sOutB(ChP->Cmd, Ch); /* remove reset Tx FIFO count */ in sFlushTxFIFO()
2960 sOutW((WordIO_t) ChP->IndexAddr, ChP->TxFIFOPtrs); /* clear Tx in/out ptrs */ in sFlushTxFIFO()
2961 sOutW(ChP->IndexData, 0); in sFlushTxFIFO()
2963 sEnTransmit(ChP); /* enable transmitter */ in sFlushTxFIFO()
2964 sStartRxProcessor(ChP); /* restart Rx processor */ in sFlushTxFIFO()
2980 static int sWriteTxPrioByte(CHANNEL_T * ChP, Byte_t Data) in sWriteTxPrioByte() argument
2986 if (sGetTxCnt(ChP) > 1) { /* write it to Tx priority buffer */ in sWriteTxPrioByte()
2987 IndexAddr = ChP->IndexAddr; in sWriteTxPrioByte()
2988 sOutW((WordIO_t) IndexAddr, ChP->TxPrioCnt); /* get priority buffer status */ in sWriteTxPrioByte()
2989 if (sInB((ByteIO_t) ChP->IndexData) & PRI_PEND) /* priority buffer busy */ in sWriteTxPrioByte()
2993 *WordPtr = ChP->TxPrioBuf; /* data byte address */ in sWriteTxPrioByte()
2998 *WordPtr = ChP->TxPrioCnt; /* Tx priority count address */ in sWriteTxPrioByte()
3005 sWriteTxByte(sGetTxRxDataIO(ChP), Data); in sWriteTxPrioByte()
3042 static void sEnInterrupts(CHANNEL_T * ChP, Word_t Flags) in sEnInterrupts() argument
3046 ChP->RxControl[2] |= in sEnInterrupts()
3049 out32(ChP->IndexAddr, ChP->RxControl); in sEnInterrupts()
3051 ChP->TxControl[2] |= ((Byte_t) Flags & TXINT_EN); in sEnInterrupts()
3053 out32(ChP->IndexAddr, ChP->TxControl); in sEnInterrupts()
3056 Mask = sInB(ChP->IntMask) | sBitMapSetTbl[ChP->ChanNum]; in sEnInterrupts()
3057 sOutB(ChP->IntMask, Mask); in sEnInterrupts()
3086 static void sDisInterrupts(CHANNEL_T * ChP, Word_t Flags) in sDisInterrupts() argument
3090 ChP->RxControl[2] &= in sDisInterrupts()
3092 out32(ChP->IndexAddr, ChP->RxControl); in sDisInterrupts()
3093 ChP->TxControl[2] &= ~((Byte_t) Flags & TXINT_EN); in sDisInterrupts()
3094 out32(ChP->IndexAddr, ChP->TxControl); in sDisInterrupts()
3097 Mask = sInB(ChP->IntMask) & sBitMapClrTbl[ChP->ChanNum]; in sDisInterrupts()
3098 sOutB(ChP->IntMask, Mask); in sDisInterrupts()
3102 static void sSetInterfaceMode(CHANNEL_T * ChP, Byte_t mode) in sSetInterfaceMode() argument
3104 sOutB(ChP->CtlP->AiopIO[2], (mode & 0x18) | ChP->ChanNum); in sSetInterfaceMode()