INT32 wmt_ctrl_rx_flush(P_WMT_CTRL_DATA pWmtCtrlData) { UINT32 type = pWmtCtrlData->au4CtrlData[0]; WMT_INFO_FUNC("flush rx %d queue\n", type); mtk_wcn_stp_flush_rx_queue(type); return 0; }
INT32 wmt_ctrl_tx_ex ( const UINT8 *pData, const UINT32 size, UINT32 *writtenSize, const MTK_WCN_BOOL bRawFlag ) { P_DEV_WMT pDev = &gDevWmt; /* single instance */ INT32 iRet; if (NULL != writtenSize) { *writtenSize = 0; } /* sanity check */ if (0 == size) { WMT_WARN_FUNC("size to tx is 0\n"); osal_assert(size); return -1; } /* if STP is not enabled yet, can't use this function. Use tx_raw instead */ if ( !osal_test_bit(WMT_STAT_STP_OPEN, &pDev->state) || !osal_test_bit(WMT_STAT_STP_EN, &pDev->state) ) { WMT_ERR_FUNC("wmt state(0x%lx) \n", pDev->state); osal_assert(osal_test_bit(WMT_STAT_STP_EN, &pDev->state)); osal_assert(osal_test_bit(WMT_STAT_STP_OPEN, &pDev->state)); return -2; } /* sanity ok, proceeding tx operation */ /*retval = mtk_wcn_stp_send_data(data, size, WMTDRV_TYPE_WMT);*/ mtk_wcn_stp_flush_rx_queue(WMT_TASK_INDX); if (bRawFlag) { iRet = mtk_wcn_stp_send_data_raw(pData, size, WMT_TASK_INDX); } else { iRet = mtk_wcn_stp_send_data(pData, size, WMT_TASK_INDX); } if (iRet != size){ WMT_WARN_FUNC("write(%d) written(%d)\n", size, iRet); osal_assert(iRet == size); } if (writtenSize) { *writtenSize = iRet; } return 0; }
INT32 mtk_wcn_stp_register_event_cb(INT32 type, MTK_WCN_STP_EVENT_CB func) { if (type < MTKSTP_MAX_TASK_NUM) { event_callback_tbl[type] = func; /*clear rx queue*/ osal_dbg_print("Flush type = %d Rx Queue\n", type); mtk_wcn_stp_flush_rx_queue(type); } return 0; }