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);
1127 static int sGetChanRI(CHANNEL_T * ChP) in sGetChanRI() argument
1129 CONTROLLER_t *CtlP = ChP->CtlP; in sGetChanRI()
1130 int ChanNum = ChP->ChanNum; in sGetChanRI()
1136 RingInd = sInB((ByteIO_t) (ChP->ChanStat + 8)) & DSR_ACT; in sGetChanRI()
2712 static int sInitChan(CONTROLLER_T * CtlP, CHANNEL_T * ChP, int AiopNum, in sInitChan() argument
2727 ChP->CtlP = CtlP; in sInitChan()
2728 ChP->ChanID = CtlP->AiopID[AiopNum]; in sInitChan()
2729 ChP->AiopNum = AiopNum; in sInitChan()
2730 ChP->ChanNum = ChanNum; in sInitChan()
2734 ChP->Cmd = (ByteIO_t) AiopIO + _CMD_REG; in sInitChan()
2735 ChP->IntChan = (ByteIO_t) AiopIO + _INT_CHAN; in sInitChan()
2736 ChP->IntMask = (ByteIO_t) AiopIO + _INT_MASK; in sInitChan()
2737 ChP->IndexAddr = (DWordIO_t) AiopIO + _INDX_ADDR; in sInitChan()
2738 ChP->IndexData = AiopIO + _INDX_DATA; in sInitChan()
2741 ChIOOff = AiopIO + ChP->ChanNum * 2; in sInitChan()
2742 ChP->TxRxData = ChIOOff + _TD0; in sInitChan()
2743 ChP->ChanStat = ChIOOff + _CHN_STAT0; in sInitChan()
2744 ChP->TxRxCount = ChIOOff + _FIFO_CNT0; in sInitChan()
2745 ChP->IntID = (ByteIO_t) AiopIO + ChP->ChanNum + _INT_ID0; in sInitChan()
2753 out32(ChP->IndexAddr, R); in sInitChan()
2756 ChR = ChP->R; in sInitChan()
2772 ChP->BaudDiv[0] = (Byte_t) (ChOff + _BAUD); in sInitChan()
2773 ChP->BaudDiv[1] = (Byte_t) ((ChOff + _BAUD) >> 8); in sInitChan()
2774 ChP->BaudDiv[2] = (Byte_t) brd9600; in sInitChan()
2775 ChP->BaudDiv[3] = (Byte_t) (brd9600 >> 8); in sInitChan()
2776 out32(ChP->IndexAddr, ChP->BaudDiv); in sInitChan()
2778 ChP->TxControl[0] = (Byte_t) (ChOff + _TX_CTRL); in sInitChan()
2779 ChP->TxControl[1] = (Byte_t) ((ChOff + _TX_CTRL) >> 8); in sInitChan()
2780 ChP->TxControl[2] = 0; in sInitChan()
2781 ChP->TxControl[3] = 0; in sInitChan()
2782 out32(ChP->IndexAddr, ChP->TxControl); in sInitChan()
2784 ChP->RxControl[0] = (Byte_t) (ChOff + _RX_CTRL); in sInitChan()
2785 ChP->RxControl[1] = (Byte_t) ((ChOff + _RX_CTRL) >> 8); in sInitChan()
2786 ChP->RxControl[2] = 0; in sInitChan()
2787 ChP->RxControl[3] = 0; in sInitChan()
2788 out32(ChP->IndexAddr, ChP->RxControl); in sInitChan()
2790 ChP->TxEnables[0] = (Byte_t) (ChOff + _TX_ENBLS); in sInitChan()
2791 ChP->TxEnables[1] = (Byte_t) ((ChOff + _TX_ENBLS) >> 8); in sInitChan()
2792 ChP->TxEnables[2] = 0; in sInitChan()
2793 ChP->TxEnables[3] = 0; in sInitChan()
2794 out32(ChP->IndexAddr, ChP->TxEnables); in sInitChan()
2796 ChP->TxCompare[0] = (Byte_t) (ChOff + _TXCMP1); in sInitChan()
2797 ChP->TxCompare[1] = (Byte_t) ((ChOff + _TXCMP1) >> 8); in sInitChan()
2798 ChP->TxCompare[2] = 0; in sInitChan()
2799 ChP->TxCompare[3] = 0; in sInitChan()
2800 out32(ChP->IndexAddr, ChP->TxCompare); in sInitChan()
2802 ChP->TxReplace1[0] = (Byte_t) (ChOff + _TXREP1B1); in sInitChan()
2803 ChP->TxReplace1[1] = (Byte_t) ((ChOff + _TXREP1B1) >> 8); in sInitChan()
2804 ChP->TxReplace1[2] = 0; in sInitChan()
2805 ChP->TxReplace1[3] = 0; in sInitChan()
2806 out32(ChP->IndexAddr, ChP->TxReplace1); in sInitChan()
2808 ChP->TxReplace2[0] = (Byte_t) (ChOff + _TXREP2); in sInitChan()
2809 ChP->TxReplace2[1] = (Byte_t) ((ChOff + _TXREP2) >> 8); in sInitChan()
2810 ChP->TxReplace2[2] = 0; in sInitChan()
2811 ChP->TxReplace2[3] = 0; in sInitChan()
2812 out32(ChP->IndexAddr, ChP->TxReplace2); in sInitChan()
2814 ChP->TxFIFOPtrs = ChOff + _TXF_OUTP; in sInitChan()
2815 ChP->TxFIFO = ChOff + _TX_FIFO; in sInitChan()
2817 sOutB(ChP->Cmd, (Byte_t) ChanNum | RESTXFCNT); /* apply reset Tx FIFO count */ in sInitChan()
2818 sOutB(ChP->Cmd, (Byte_t) ChanNum); /* remove reset Tx FIFO count */ in sInitChan()
2819 sOutW((WordIO_t) ChP->IndexAddr, ChP->TxFIFOPtrs); /* clear Tx in/out ptrs */ in sInitChan()
2820 sOutW(ChP->IndexData, 0); in sInitChan()
2821 ChP->RxFIFOPtrs = ChOff + _RXF_OUTP; in sInitChan()
2822 ChP->RxFIFO = ChOff + _RX_FIFO; in sInitChan()
2824 sOutB(ChP->Cmd, (Byte_t) ChanNum | RESRXFCNT); /* apply reset Rx FIFO count */ in sInitChan()
2825 sOutB(ChP->Cmd, (Byte_t) ChanNum); /* remove reset Rx FIFO count */ in sInitChan()
2826 sOutW((WordIO_t) ChP->IndexAddr, ChP->RxFIFOPtrs); /* clear Rx out ptr */ in sInitChan()
2827 sOutW(ChP->IndexData, 0); in sInitChan()
2828 sOutW((WordIO_t) ChP->IndexAddr, ChP->RxFIFOPtrs + 2); /* clear Rx in ptr */ in sInitChan()
2829 sOutW(ChP->IndexData, 0); in sInitChan()
2830 ChP->TxPrioCnt = ChOff + _TXP_CNT; in sInitChan()
2831 sOutW((WordIO_t) ChP->IndexAddr, ChP->TxPrioCnt); in sInitChan()
2832 sOutB(ChP->IndexData, 0); in sInitChan()
2833 ChP->TxPrioPtr = ChOff + _TXP_PNTR; in sInitChan()
2834 sOutW((WordIO_t) ChP->IndexAddr, ChP->TxPrioPtr); in sInitChan()
2835 sOutB(ChP->IndexData, 0); in sInitChan()
2836 ChP->TxPrioBuf = ChOff + _TXP_BUF; in sInitChan()
2837 sEnRxProcessor(ChP); /* start the Rx processor */ in sInitChan()
2860 static void sStopRxProcessor(CHANNEL_T * ChP) in sStopRxProcessor() argument
2864 R[0] = ChP->R[0]; in sStopRxProcessor()
2865 R[1] = ChP->R[1]; in sStopRxProcessor()
2867 R[3] = ChP->R[3]; in sStopRxProcessor()
2868 out32(ChP->IndexAddr, R); in sStopRxProcessor()
2885 static void sFlushRxFIFO(CHANNEL_T * ChP) in sFlushRxFIFO() argument
2891 if (sGetRxCnt(ChP) == 0) /* Rx FIFO empty */ in sFlushRxFIFO()
2895 if (ChP->R[0x32] == 0x08) { /* Rx FIFO is enabled */ in sFlushRxFIFO()
2897 sDisRxFIFO(ChP); /* disable it */ in sFlushRxFIFO()
2899 sInB(ChP->IntChan); /* depends on bus i/o timing */ in sFlushRxFIFO()
2901 sGetChanStatus(ChP); /* clear any pending Rx errors in chan stat */ in sFlushRxFIFO()
2902 Ch = (Byte_t) sGetChanNum(ChP); in sFlushRxFIFO()
2903 sOutB(ChP->Cmd, Ch | RESRXFCNT); /* apply reset Rx FIFO count */ in sFlushRxFIFO()
2904 sOutB(ChP->Cmd, Ch); /* remove reset Rx FIFO count */ in sFlushRxFIFO()
2905 sOutW((WordIO_t) ChP->IndexAddr, ChP->RxFIFOPtrs); /* clear Rx out ptr */ in sFlushRxFIFO()
2906 sOutW(ChP->IndexData, 0); in sFlushRxFIFO()
2907 sOutW((WordIO_t) ChP->IndexAddr, ChP->RxFIFOPtrs + 2); /* clear Rx in ptr */ in sFlushRxFIFO()
2908 sOutW(ChP->IndexData, 0); in sFlushRxFIFO()
2910 sEnRxFIFO(ChP); /* enable Rx FIFO */ in sFlushRxFIFO()
2927 static void sFlushTxFIFO(CHANNEL_T * ChP) in sFlushTxFIFO() argument
2933 if (sGetTxCnt(ChP) == 0) /* Tx FIFO empty */ in sFlushTxFIFO()
2937 if (ChP->TxControl[3] & TX_ENABLE) { in sFlushTxFIFO()
2939 sDisTransmit(ChP); /* disable transmitter */ in sFlushTxFIFO()
2941 sStopRxProcessor(ChP); /* stop Rx processor */ in sFlushTxFIFO()
2943 sInB(ChP->IntChan); /* depends on bus i/o timing */ in sFlushTxFIFO()
2944 Ch = (Byte_t) sGetChanNum(ChP); in sFlushTxFIFO()
2945 sOutB(ChP->Cmd, Ch | RESTXFCNT); /* apply reset Tx FIFO count */ in sFlushTxFIFO()
2946 sOutB(ChP->Cmd, Ch); /* remove reset Tx FIFO count */ in sFlushTxFIFO()
2947 sOutW((WordIO_t) ChP->IndexAddr, ChP->TxFIFOPtrs); /* clear Tx in/out ptrs */ in sFlushTxFIFO()
2948 sOutW(ChP->IndexData, 0); in sFlushTxFIFO()
2950 sEnTransmit(ChP); /* enable transmitter */ in sFlushTxFIFO()
2951 sStartRxProcessor(ChP); /* restart Rx processor */ in sFlushTxFIFO()
2967 static int sWriteTxPrioByte(CHANNEL_T * ChP, Byte_t Data) in sWriteTxPrioByte() argument
2973 if (sGetTxCnt(ChP) > 1) { /* write it to Tx priority buffer */ in sWriteTxPrioByte()
2974 IndexAddr = ChP->IndexAddr; in sWriteTxPrioByte()
2975 sOutW((WordIO_t) IndexAddr, ChP->TxPrioCnt); /* get priority buffer status */ in sWriteTxPrioByte()
2976 if (sInB((ByteIO_t) ChP->IndexData) & PRI_PEND) /* priority buffer busy */ in sWriteTxPrioByte()
2980 *WordPtr = ChP->TxPrioBuf; /* data byte address */ in sWriteTxPrioByte()
2985 *WordPtr = ChP->TxPrioCnt; /* Tx priority count address */ in sWriteTxPrioByte()
2992 sWriteTxByte(sGetTxRxDataIO(ChP), Data); in sWriteTxPrioByte()
3029 static void sEnInterrupts(CHANNEL_T * ChP, Word_t Flags) in sEnInterrupts() argument
3033 ChP->RxControl[2] |= in sEnInterrupts()
3036 out32(ChP->IndexAddr, ChP->RxControl); in sEnInterrupts()
3038 ChP->TxControl[2] |= ((Byte_t) Flags & TXINT_EN); in sEnInterrupts()
3040 out32(ChP->IndexAddr, ChP->TxControl); in sEnInterrupts()
3043 Mask = sInB(ChP->IntMask) | sBitMapSetTbl[ChP->ChanNum]; in sEnInterrupts()
3044 sOutB(ChP->IntMask, Mask); in sEnInterrupts()
3073 static void sDisInterrupts(CHANNEL_T * ChP, Word_t Flags) in sDisInterrupts() argument
3077 ChP->RxControl[2] &= in sDisInterrupts()
3079 out32(ChP->IndexAddr, ChP->RxControl); in sDisInterrupts()
3080 ChP->TxControl[2] &= ~((Byte_t) Flags & TXINT_EN); in sDisInterrupts()
3081 out32(ChP->IndexAddr, ChP->TxControl); in sDisInterrupts()
3084 Mask = sInB(ChP->IntMask) & sBitMapClrTbl[ChP->ChanNum]; in sDisInterrupts()
3085 sOutB(ChP->IntMask, Mask); in sDisInterrupts()
3089 static void sSetInterfaceMode(CHANNEL_T * ChP, Byte_t mode) in sSetInterfaceMode() argument
3091 sOutB(ChP->CtlP->AiopIO[2], (mode & 0x18) | ChP->ChanNum); in sSetInterfaceMode()