163 lines
5.3 KiB
C
163 lines
5.3 KiB
C
|
|
#if 0
|
|
VOID RtmpPCIDataLastTxIdx(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN UCHAR QueIdx,
|
|
IN USHORT LastTxIdx)
|
|
{
|
|
TXD_STRUC *pTxD;
|
|
#ifdef RT_BIG_ENDIAN
|
|
TXD_STRUC *pDestTxD;
|
|
TXD_STRUC TxD;
|
|
#endif
|
|
RTMP_TX_RING *pTxRing;
|
|
|
|
|
|
/* get Tx Ring Resource*/
|
|
pTxRing = &pAd->TxRing[QueIdx];
|
|
|
|
|
|
/* build Tx Descriptor*/
|
|
#ifndef RT_BIG_ENDIAN
|
|
pTxD = (TXD_STRUC *) pTxRing->Cell[LastTxIdx].AllocVa;
|
|
#else
|
|
pDestTxD = (TXD_STRUC *) pTxRing->Cell[LastTxIdx].AllocVa;
|
|
TxD = *pDestTxD;
|
|
pTxD = &TxD;
|
|
#endif
|
|
|
|
pTxD->LastSec1 = 1;
|
|
|
|
#ifdef RT_BIG_ENDIAN
|
|
RTMPDescriptorEndianChange((PUCHAR)pTxD, TYPE_TXD);
|
|
WriteBackToDescriptor((PUCHAR)pDestTxD, (PUCHAR)pTxD, FALSE, TYPE_TXD);
|
|
#endif /* RT_BIG_ENDIAN */
|
|
|
|
}
|
|
|
|
VOID DBGPRINT_TX_RING(
|
|
IN PRTMP_ADAPTER pAd,
|
|
IN UCHAR QueIdx)
|
|
{
|
|
UINT32 Ac0Base;
|
|
UINT32 Ac0HwIdx = 0, Ac0SwIdx = 0, AC0freeIdx;
|
|
int i;
|
|
/* PULONG pTxD;*/
|
|
PULONG ptemp;
|
|
|
|
DBGPRINT_RAW(RT_DEBUG_TRACE, ("=====================================================\n " ));
|
|
switch (QueIdx)
|
|
{
|
|
case QID_AC_BE:
|
|
RTMP_IO_READ32(pAd, TX_BASE_PTR0, &Ac0Base);
|
|
RTMP_IO_READ32(pAd, TX_CTX_IDX0, &Ac0SwIdx);
|
|
RTMP_IO_READ32(pAd, TX_DTX_IDX0, &Ac0HwIdx);
|
|
DBGPRINT_RAW(RT_DEBUG_TRACE, ("All QID_AC_BE DESCRIPTOR \n " ));
|
|
for (i=0;i<TX_RING_SIZE;i++)
|
|
{
|
|
ptemp= (PULONG)pAd->TxRing[QID_AC_BE].Cell[i].AllocVa;
|
|
DBGPRINT_RAW(RT_DEBUG_TRACE, ("[%02d] %08lx: %08lx: %08lx: %08lx\n " , i, *ptemp,*(ptemp+1),*(ptemp+2),*(ptemp+3)));
|
|
}
|
|
DBGPRINT_RAW(RT_DEBUG_TRACE, (" \n " ));
|
|
break;
|
|
case QID_AC_BK:
|
|
RTMP_IO_READ32(pAd, TX_BASE_PTR1, &Ac0Base);
|
|
RTMP_IO_READ32(pAd, TX_CTX_IDX1, &Ac0SwIdx);
|
|
RTMP_IO_READ32(pAd, TX_DTX_IDX1, &Ac0HwIdx);
|
|
DBGPRINT_RAW(RT_DEBUG_TRACE, ("All QID_AC_BK DESCRIPTOR \n " ));
|
|
for (i=0;i<TX_RING_SIZE;i++)
|
|
{
|
|
ptemp= (PULONG)pAd->TxRing[QID_AC_BK].Cell[i].AllocVa;
|
|
DBGPRINT_RAW(RT_DEBUG_TRACE, ("[%02d] %08lx: %08lx: %08lx: %08lx\n " , i, *ptemp,*(ptemp+1),*(ptemp+2),*(ptemp+3)));
|
|
}
|
|
DBGPRINT_RAW(RT_DEBUG_TRACE, (" \n " ));
|
|
break;
|
|
case QID_AC_VI:
|
|
RTMP_IO_READ32(pAd, TX_BASE_PTR2, &Ac0Base);
|
|
RTMP_IO_READ32(pAd, TX_CTX_IDX2, &Ac0SwIdx);
|
|
RTMP_IO_READ32(pAd, TX_DTX_IDX2, &Ac0HwIdx);
|
|
DBGPRINT_RAW(RT_DEBUG_TRACE, ("All QID_AC_VI DESCRIPTOR \n " ));
|
|
for (i=0;i<TX_RING_SIZE;i++)
|
|
{
|
|
ptemp= (PULONG)pAd->TxRing[QID_AC_VI].Cell[i].AllocVa;
|
|
DBGPRINT_RAW(RT_DEBUG_TRACE, ("[%02d] %08lx: %08lx: %08lx: %08lx\n " , i, *ptemp,*(ptemp+1),*(ptemp+2),*(ptemp+3)));
|
|
}
|
|
DBGPRINT_RAW(RT_DEBUG_TRACE, (" \n " ));
|
|
break;
|
|
case QID_AC_VO:
|
|
RTMP_IO_READ32(pAd, TX_BASE_PTR3, &Ac0Base);
|
|
RTMP_IO_READ32(pAd, TX_CTX_IDX3, &Ac0SwIdx);
|
|
RTMP_IO_READ32(pAd, TX_DTX_IDX3, &Ac0HwIdx);
|
|
DBGPRINT_RAW(RT_DEBUG_TRACE, ("All QID_AC_VO DESCRIPTOR \n " ));
|
|
for (i=0;i<TX_RING_SIZE;i++)
|
|
{
|
|
ptemp= (PULONG)pAd->TxRing[QID_AC_VO].Cell[i].AllocVa;
|
|
DBGPRINT_RAW(RT_DEBUG_TRACE, ("[%02d] %08lx: %08lx: %08lx: %08lx\n " , i, *ptemp,*(ptemp+1),*(ptemp+2),*(ptemp+3)));
|
|
}
|
|
DBGPRINT_RAW(RT_DEBUG_TRACE, (" \n " ));
|
|
break;
|
|
case QID_MGMT:
|
|
RTMP_IO_READ32(pAd, TX_BASE_PTR5, &Ac0Base);
|
|
RTMP_IO_READ32(pAd, TX_CTX_IDX5, &Ac0SwIdx);
|
|
RTMP_IO_READ32(pAd, TX_DTX_IDX5, &Ac0HwIdx);
|
|
DBGPRINT_RAW(RT_DEBUG_TRACE, (" All QID_MGMT DESCRIPTOR \n " ));
|
|
for (i=0;i<MGMT_RING_SIZE;i++)
|
|
{
|
|
ptemp= (PULONG)pAd->MgmtRing.Cell[i].AllocVa;
|
|
DBGPRINT_RAW(RT_DEBUG_TRACE, ("[%02d] %08lx: %08lx: %08lx: %08lx\n " , i, *ptemp,*(ptemp+1),*(ptemp+2),*(ptemp+3)));
|
|
}
|
|
DBGPRINT_RAW(RT_DEBUG_TRACE, (" \n " ));
|
|
break;
|
|
|
|
default:
|
|
DBGPRINT_ERR(("DBGPRINT_TX_RING(Ring %d) not supported\n", QueIdx));
|
|
break;
|
|
}
|
|
|
|
if (QueIdx < NUM_OF_TX_RING) {
|
|
AC0freeIdx = pAd->TxRing[QueIdx].TxSwFreeIdx;
|
|
|
|
DBGPRINT(RT_DEBUG_TRACE,("TxRing%d, TX_DTX_IDX=%d, TX_CTX_IDX=%d\n", QueIdx, Ac0HwIdx, Ac0SwIdx));
|
|
DBGPRINT_RAW(RT_DEBUG_TRACE,(" TxSwFreeIdx[%d]", AC0freeIdx));
|
|
DBGPRINT_RAW(RT_DEBUG_TRACE,(" pending-NDIS=%ld\n", pAd->RalinkCounters.PendingNdisPacketCount));
|
|
} else if (QueIdx == QID_MGMT) {
|
|
AC0freeIdx = pAd->MgmtRing.TxSwFreeIdx;
|
|
|
|
DBGPRINT(RT_DEBUG_TRACE,("TxRing%d, TX_DTX_IDX=%d, TX_CTX_IDX=%d\n", QueIdx, Ac0HwIdx, Ac0SwIdx));
|
|
DBGPRINT_RAW(RT_DEBUG_TRACE,(" TxSwFreeIdx[%d]", AC0freeIdx));
|
|
DBGPRINT_RAW(RT_DEBUG_TRACE,(" pending-NDIS=%ld\n", pAd->RalinkCounters.PendingNdisPacketCount));
|
|
}
|
|
|
|
}
|
|
|
|
VOID DBGPRINT_RX_RING(
|
|
IN PRTMP_ADAPTER pAd)
|
|
{
|
|
UINT32 Ac0Base;
|
|
UINT32 Ac0HwIdx = 0, Ac0SwIdx = 0, AC0freeIdx;
|
|
/* PULONG pTxD;*/
|
|
int i;
|
|
UINT32 *ptemp;
|
|
/* PRXD_STRUC pRxD;*/
|
|
|
|
DBGPRINT_RAW(RT_DEBUG_TRACE, ("=====================================================\n " ));
|
|
RTMP_IO_READ32(pAd, RX_BASE_PTR, &Ac0Base);
|
|
RTMP_IO_READ32(pAd, RX_CRX_IDX, &Ac0SwIdx);
|
|
RTMP_IO_READ32(pAd, RX_DRX_IDX, &Ac0HwIdx);
|
|
AC0freeIdx = pAd->RxRing[0].RxSwReadIdx;
|
|
|
|
DBGPRINT_RAW(RT_DEBUG_TRACE, ("All RX DSP \n " ));
|
|
for (i=0;i<RX_RING_SIZE;i++)
|
|
{
|
|
ptemp = (UINT32 *)pAd->RxRing[0].Cell[i].AllocVa;
|
|
DBGPRINT_RAW(RT_DEBUG_TRACE, ("[%02d] %08x: %08x: %08x: %08x\n " , i, *ptemp,*(ptemp+1),*(ptemp+2),*(ptemp+3)));
|
|
}
|
|
DBGPRINT(RT_DEBUG_TRACE,("RxRing[0], RX_DRX_IDX=%d, RX_CRX_IDX=%d \n", Ac0HwIdx, Ac0SwIdx));
|
|
DBGPRINT_RAW(RT_DEBUG_TRACE,(" RxSwReadIdx [%d]=", AC0freeIdx));
|
|
DBGPRINT_RAW(RT_DEBUG_TRACE,(" pending-NDIS=%ld\n", pAd->RalinkCounters.PendingNdisPacketCount));
|
|
}
|
|
|
|
#endif /* Unused */
|
|
|
|
|