void zfCoreCwmBusy(zdev_t* dev, u16_t busy) { zmw_get_wlan_dev(dev); zm_msg1_mm(ZM_LV_0, "CwmBusy=", busy); if(wd->cwm.cw_mode == CWM_MODE20) { wd->cwm.cw_width = CWM_WIDTH20; return; } if(wd->cwm.cw_mode == CWM_MODE40) { wd->cwm.cw_width = CWM_WIDTH40; return; } if (busy) { wd->cwm.cw_width = CWM_WIDTH20; return; } if((wd->wlanMode == ZM_MODE_INFRASTRUCTURE || wd->wlanMode == ZM_MODE_PSEUDO || wd->wlanMode == ZM_MODE_IBSS)) { if (wd->sta.ie.HtCap.HtCapInfo && HTCAP_SupChannelWidthSet != 0 && wd->sta.ie.HtInfo.ChannelInfo && ExtHtCap_RecomTxWidthSet != 0 && (wd->sta.ie.HtInfo.ChannelInfo && ExtHtCap_ExtChannelOffsetAbove) == 1) { wd->cwm.cw_width = CWM_WIDTH40; } else { wd->cwm.cw_width = CWM_WIDTH20; } return; } if(wd->wlanMode == ZM_MODE_AP) { wd->cwm.cw_width = CWM_WIDTH40; } }
void zfCollectHWTally(zdev_t*dev, u32_t* rsp, u8_t id) { zmw_get_wlan_dev(dev); zmw_declare_for_critical_section(); zmw_enter_critical_section(dev); if (id == 0) { wd->commTally.Hw_UnderrunCnt += (0xFFFF & rsp[1]); wd->commTally.Hw_TotalRxFrm += rsp[2]; wd->commTally.Hw_CRC32Cnt += rsp[3]; wd->commTally.Hw_CRC16Cnt += rsp[4]; #ifdef ZM_ENABLE_NATIVE_WIFI /* These code are here to satisfy Vista DTM */ wd->commTally.Hw_DecrypErr_UNI += ((rsp[5]>50) && (rsp[5]<60))?50:rsp[5]; #else wd->commTally.Hw_DecrypErr_UNI += rsp[5]; #endif wd->commTally.Hw_RxFIFOOverrun += rsp[6]; wd->commTally.Hw_DecrypErr_Mul += rsp[7]; wd->commTally.Hw_RetryCnt += rsp[8]; wd->commTally.Hw_TotalTxFrm += rsp[9]; wd->commTally.Hw_RxTimeOut +=rsp[10]; wd->commTally.Tx_MPDU += rsp[11]; wd->commTally.BA_Fail += rsp[12]; wd->commTally.Hw_Tx_AMPDU += rsp[13]; wd->commTally.Hw_Tx_MPDU += rsp[14]; wd->commTally.RateCtrlTxMPDU += rsp[11]; wd->commTally.RateCtrlBAFail += rsp[12]; } else { wd->commTally.Hw_RxMPDU += rsp[1]; wd->commTally.Hw_RxDropMPDU += rsp[2]; wd->commTally.Hw_RxDelMPDU += rsp[3]; wd->commTally.Hw_RxPhyMiscError += rsp[4]; wd->commTally.Hw_RxPhyXRError += rsp[5]; wd->commTally.Hw_RxPhyOFDMError += rsp[6]; wd->commTally.Hw_RxPhyCCKError += rsp[7]; wd->commTally.Hw_RxPhyHTError += rsp[8]; wd->commTally.Hw_RxPhyTotalCount += rsp[9]; } zmw_leave_critical_section(dev); if (id == 0) { zm_msg1_mm(ZM_LV_1, "rsplen =", rsp[0]); zm_msg1_mm(ZM_LV_1, "Hw_UnderrunCnt = ", (0xFFFF & rsp[1])); zm_msg1_mm(ZM_LV_1, "Hw_TotalRxFrm = ", rsp[2]); zm_msg1_mm(ZM_LV_1, "Hw_CRC32Cnt = ", rsp[3]); zm_msg1_mm(ZM_LV_1, "Hw_CRC16Cnt = ", rsp[4]); zm_msg1_mm(ZM_LV_1, "Hw_DecrypErr_UNI = ", rsp[5]); zm_msg1_mm(ZM_LV_1, "Hw_RxFIFOOverrun = ", rsp[6]); zm_msg1_mm(ZM_LV_1, "Hw_DecrypErr_Mul = ", rsp[7]); zm_msg1_mm(ZM_LV_1, "Hw_RetryCnt = ", rsp[8]); zm_msg1_mm(ZM_LV_1, "Hw_TotalTxFrm = ", rsp[9]); zm_msg1_mm(ZM_LV_1, "Hw_RxTimeOut = ", rsp[10]); zm_msg1_mm(ZM_LV_1, "Tx_MPDU = ", rsp[11]); zm_msg1_mm(ZM_LV_1, "BA_Fail = ", rsp[12]); zm_msg1_mm(ZM_LV_1, "Hw_Tx_AMPDU = ", rsp[13]); zm_msg1_mm(ZM_LV_1, "Hw_Tx_MPDU = ", rsp[14]); } else { zm_msg1_mm(ZM_LV_1, "rsplen = ", rsp[0]); zm_msg1_mm(ZM_LV_1, "Hw_RxMPDU = ", (0xFFFF & rsp[1])); zm_msg1_mm(ZM_LV_1, "Hw_RxDropMPDU = ", rsp[2]); zm_msg1_mm(ZM_LV_1, "Hw_RxDelMPDU = ", rsp[3]); zm_msg1_mm(ZM_LV_1, "Hw_RxPhyMiscError = ", rsp[4]); zm_msg1_mm(ZM_LV_1, "Hw_RxPhyXRError = ", rsp[5]); zm_msg1_mm(ZM_LV_1, "Hw_RxPhyOFDMError = ", rsp[6]); zm_msg1_mm(ZM_LV_1, "Hw_RxPhyCCKError = ", rsp[7]); zm_msg1_mm(ZM_LV_1, "Hw_RxPhyHTError = ", rsp[8]); zm_msg1_mm(ZM_LV_1, "Hw_RxPhyTotalCount = ", rsp[9]); } }