u8 HalQueryTxBufferStatus8723BSdio(struct adapter *adapter) { struct hal_com_data *hal; u32 numof_free_page; /* _irql irql; */ hal = GET_HAL_DATA(adapter); numof_free_page = SdioLocalCmd53Read4Byte(adapter, SDIO_REG_FREE_TXPG); /* spin_lock_bh(&phal->SdioTxFIFOFreePageLock); */ memcpy(hal->SdioTxFIFOFreePage, &numof_free_page, 4); RT_TRACE(_module_hci_ops_c_, _drv_notice_, ("%s: Free page for HIQ(%#x), MIDQ(%#x), LOWQ(%#x), PUBQ(%#x)\n", __func__, hal->SdioTxFIFOFreePage[HI_QUEUE_IDX], hal->SdioTxFIFOFreePage[MID_QUEUE_IDX], hal->SdioTxFIFOFreePage[LOW_QUEUE_IDX], hal->SdioTxFIFOFreePage[PUBLIC_QUEUE_IDX])); /* spin_unlock_bh(&hal->SdioTxFIFOFreePageLock); */ return true; }
// // Description: // Query SDIO Local register to query current the number of Free TxPacketBuffer page. // // Assumption: // 1. Running at PASSIVE_LEVEL // 2. RT_TX_SPINLOCK is NOT acquired. // // Created by Roger, 2011.01.28. // u8 HalQueryTxBufferStatus8723BSdio(PADAPTER padapter) { PHAL_DATA_TYPE phal; u32 NumOfFreePage; //_irqL irql; phal = GET_HAL_DATA(padapter); NumOfFreePage = SdioLocalCmd53Read4Byte(padapter, SDIO_REG_FREE_TXPG); //_enter_critical_bh(&phal->SdioTxFIFOFreePageLock, &irql); _rtw_memcpy(phal->SdioTxFIFOFreePage, &NumOfFreePage, 4); RT_TRACE(_module_hci_ops_c_, _drv_notice_, ("%s: Free page for HIQ(%#x),MIDQ(%#x),LOWQ(%#x),PUBQ(%#x)\n", __FUNCTION__, phal->SdioTxFIFOFreePage[HI_QUEUE_IDX], phal->SdioTxFIFOFreePage[MID_QUEUE_IDX], phal->SdioTxFIFOFreePage[LOW_QUEUE_IDX], phal->SdioTxFIFOFreePage[PUBLIC_QUEUE_IDX])); //_exit_critical_bh(&phal->SdioTxFIFOFreePageLock, &irql); return _TRUE; }