diff --git a/drivers/staging/rtl8723bs/hal/rtl8723b_hal_init.c b/drivers/staging/rtl8723bs/hal/rtl8723b_hal_init.c index 58c9b5de4ae2..9fcff26ddd85 100644 --- a/drivers/staging/rtl8723bs/hal/rtl8723b_hal_init.c +++ b/drivers/staging/rtl8723bs/hal/rtl8723b_hal_init.c @@ -859,8 +859,7 @@ void rtl8723b_InitBeaconParameters(struct adapter *padapter) rtw_write16(padapter, REG_BCN_CTRL, val16); - /* TODO: Remove these magic number */ - rtw_write16(padapter, REG_TBTT_PROHIBIT, 0x6404);/* ms */ + rtw_write16(padapter, REG_TBTT_PROHIBIT, TBTT_PROHIBIT_TIME_8723B); /* Firmware will control REG_DRVERLYINT when power saving is enable, */ /* so don't set this register on STA mode. */ if (!check_fwstate(&padapter->mlmepriv, WIFI_STATION_STATE)) @@ -869,7 +868,7 @@ void rtl8723b_InitBeaconParameters(struct adapter *padapter) /* Suggested by designer timchen. Change beacon AIFS to the largest number */ /* because test chip does not contension before sending beacon. by tynli. 2009.11.03 */ - rtw_write16(padapter, REG_BCNTCFG, 0x660F); + rtw_write16(padapter, REG_BCNTCFG, BCNTCFG_8723B); pHalData->RegBcnCtrlVal = rtw_read8(padapter, REG_BCN_CTRL); pHalData->RegTxPause = rtw_read8(padapter, REG_TXPAUSE); diff --git a/drivers/staging/rtl8723bs/include/rtl8723b_hal.h b/drivers/staging/rtl8723bs/include/rtl8723b_hal.h index b6006110ad6b..aa7676828371 100644 --- a/drivers/staging/rtl8723bs/include/rtl8723b_hal.h +++ b/drivers/staging/rtl8723bs/include/rtl8723b_hal.h @@ -72,6 +72,19 @@ struct rt_firmware_hdr { #define DRIVER_EARLY_INT_TIME_8723B 0x05 #define BCN_DMA_ATIME_INT_TIME_8723B 0x02 +/* REG_TBTT_PROHIBIT (0x0540) - TBTT prohibit hold/setup in 32us units */ +#define TBTT_PROHIBIT_SETUP_8723B 0x04 +#define TBTT_PROHIBIT_HOLD_8723B 0x64 +#define TBTT_PROHIBIT_TIME_8723B \ + ((TBTT_PROHIBIT_HOLD_8723B << 8) | TBTT_PROHIBIT_SETUP_8723B) + +/* REG_BCNTCFG (0x0510) - beacon AIFS, CWmin, CWmax (EDCA-like layout) */ +#define BCN_AIFS_8723B 0x0F +#define BCN_CW_MIN_8723B 0x06 +#define BCN_CW_MAX_8723B 0x06 +#define BCNTCFG_8723B \ + ((BCN_CW_MAX_8723B << 12) | (BCN_CW_MIN_8723B << 8) | BCN_AIFS_8723B) + /* for 8723B */ /* TX 32K, RX 16K, Page size 128B for TX, 8B for RX */ #define PAGE_SIZE_TX_8723B 128