Ejemplo n.º 1
0
void odm_RefreshRateAdaptiveMask(struct _rtw_dm *pDM_Odm)
{
	u8	i;
	struct rtl_priv *rtlpriv	=  pDM_Odm->rtlpriv;
	struct rate_adaptive *p_ra = &(rtlpriv->ra);
	PODM_RATE_ADAPTIVE	pRA = &pDM_Odm->RateAdaptive;

	if (rtlpriv->bDriverStopped) {
		RT_TRACE(rtlpriv, COMP_RATE, DBG_TRACE, "<---- odm_RefreshRateAdaptiveMask(): driver is going to unload\n");
		return;
	}

	/* printk("==> %s \n",__FUNCTION__); */

	for (i = 0; i < ODM_ASSOCIATE_ENTRY_NUM; i++) {
		struct sta_info *pstat = pDM_Odm->pODM_StaInfo[i];
		if (IS_STA_VALID(pstat)) {
			if (pstat->rssi_stat.UndecoratedSmoothedPWDB < p_ra->ldpc_thres) {
				p_ra->use_ldpc = TRUE;
				pRA->bLowerRtsRate = TRUE;
				Set_RA_LDPC_8812(pstat, TRUE);
				/* DbgPrint("RSSI=%d, bUseLdpc = TRUE\n", pHalData->UndecoratedSmoothedPWDB); */
			} else if (pstat->rssi_stat.UndecoratedSmoothedPWDB > (p_ra->ldpc_thres-5)) {
				p_ra->use_ldpc = FALSE;
				pRA->bLowerRtsRate = FALSE;
				Set_RA_LDPC_8812(pstat, FALSE);
				/* DbgPrint("RSSI=%d, bUseLdpc = FALSE\n", pHalData->UndecoratedSmoothedPWDB); */
			}

			if (TRUE == ODM_RAStateCheck(rtlpriv, pstat->rssi_stat.UndecoratedSmoothedPWDB, FALSE , &pstat->rssi_level)) {
				RT_TRACE(rtlpriv, COMP_RATE, DBG_LOUD, "RSSI:%d, RSSI_LEVEL:%d\n", pstat->rssi_stat.UndecoratedSmoothedPWDB, pstat->rssi_level);
				/* printk("RSSI:%d, RSSI_LEVEL:%d\n", pstat->rssi_stat.UndecoratedSmoothedPWDB, pstat->rssi_level); */
				rtw_hal_update_ra_mask(pstat->rtlpriv, pstat, pstat->rssi_level);
			}
		}
	}

}
Ejemplo n.º 2
0
void odm_RefreshRateAdaptiveMask(struct rtl_priv *rtlpriv)
{
	struct rate_adaptive *p_ra = &(rtlpriv->ra);
	struct rtl_dm *rtldm = rtl_dm(rtlpriv);
	u8	i;
	struct _rtw_hal *pHalData = GET_HAL_DATA(rtlpriv);
	struct _rtw_dm *	pDM_Odm = &(pHalData->odmpriv);

	if (rtlpriv->bDriverStopped) {
		RT_TRACE(rtlpriv, COMP_RATE, DBG_TRACE, "<---- odm_RefreshRateAdaptiveMask(): driver is going to unload\n");
		return;
	}

	/* printk("==> %s \n",__FUNCTION__); */

	for (i = 0; i < ODM_ASSOCIATE_ENTRY_NUM; i++) {
		struct sta_info *pstat = rtldm->pODM_StaInfo[i];
		if (IS_STA_VALID(pstat)) {
			if (pstat->rssi_stat.UndecoratedSmoothedPWDB < p_ra->ldpc_thres) {
				p_ra->use_ldpc = true;
				Set_RA_LDPC_8812(pstat, true);
				/* DbgPrint("RSSI=%d, bUseLdpc = true\n", pHalData->UndecoratedSmoothedPWDB); */
			} else if (pstat->rssi_stat.UndecoratedSmoothedPWDB > (p_ra->ldpc_thres-5)) {
				p_ra->use_ldpc = false;
				Set_RA_LDPC_8812(pstat, false);
				/* DbgPrint("RSSI=%d, bUseLdpc = false\n", pHalData->UndecoratedSmoothedPWDB); */
			}

			if (true == ODM_RAStateCheck(rtlpriv, pstat->rssi_stat.UndecoratedSmoothedPWDB, false , &pstat->rssi_level)) {
				RT_TRACE(rtlpriv, COMP_RATE, DBG_LOUD, "RSSI:%d, RSSI_LEVEL:%d\n", pstat->rssi_stat.UndecoratedSmoothedPWDB, pstat->rssi_level);
				/* printk("RSSI:%d, RSSI_LEVEL:%d\n", pstat->rssi_stat.UndecoratedSmoothedPWDB, pstat->rssi_level); */
				rtw_hal_update_ra_mask(pstat->rtlpriv, pstat, pstat->rssi_level);
			}
		}
	}

}