struct hal_data_8723a *pHalData = GET_HAL_DATA(Adapter);
        struct pwrctrl_priv *pwrctrlpriv = &Adapter->pwrctrlpriv;
        struct registry_priv *pregistrypriv = &Adapter->registrypriv;
-       u32 NavUpper = WiFiNavUpperUs;
 
        unsigned long init_start_time = jiffies;
 
        rtl8723a_InitHalDm(Adapter);
 
        HAL_INIT_PROFILE_TAG(HAL_INIT_STAGES_MISC31);
-       rtw_hal_set_hwreg23a(Adapter, HW_VAR_NAV_UPPER, (u8 *)&NavUpper);
+       rtl8723a_set_nav_upper(Adapter, WiFiNavUpperUs);
 
        /*  2011/03/09 MH debug only, UMC-B cut pass 2500 S5 test, but we need to fin root cause. */
        if (((rtw_read32(Adapter, rFPGA0_RFMOD) & 0xFF000000) != 0x83000000)) {
 
        HW_VAR_APFM_ON_MAC, /* Auto FSM to Turn On, include clock, isolation, power control for MAC only */
        /*  The valid upper nav range for the HW updating, if the true value is larger than the upper range, the HW won't update it. */
        /*  Unit in microsecond. 0 means disable this function. */
-       HW_VAR_NAV_UPPER,
        HW_VAR_RPT_TIMER_SETTING,
        HW_VAR_TX_RPT_MAX_MACID,
        HW_VAR_H2C_MEDIA_STATUS_RPT,