mirror of https://gitee.com/openkylin/linux.git
rtlwifi: Add QoS-NULL and BT-QoS-NULL to reserved page.
Two additional preset responses are added to the reserved page on the wifi device. Signed-off-by: Ping-Ke Shih <pkshih@realtek.com> Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
This commit is contained in:
parent
f70e4df2b3
commit
74a7dfbcc6
|
@ -468,8 +468,10 @@ void rtl92ee_set_fw_media_status_rpt_cmd(struct ieee80211_hw *hw, u8 mstatus)
|
||||||
#define PSPOLL_PG 2
|
#define PSPOLL_PG 2
|
||||||
#define NULL_PG 3
|
#define NULL_PG 3
|
||||||
#define PROBERSP_PG 4 /* ->5 */
|
#define PROBERSP_PG 4 /* ->5 */
|
||||||
|
#define QOS_NULL_PG 6
|
||||||
|
#define BT_QOS_NULL_PG 7
|
||||||
|
|
||||||
#define TOTAL_RESERVED_PKT_LEN 768
|
#define TOTAL_RESERVED_PKT_LEN 1024
|
||||||
|
|
||||||
static u8 reserved_page_packet[TOTAL_RESERVED_PKT_LEN] = {
|
static u8 reserved_page_packet[TOTAL_RESERVED_PKT_LEN] = {
|
||||||
/* page 0 beacon */
|
/* page 0 beacon */
|
||||||
|
@ -570,6 +572,42 @@ static u8 reserved_page_packet[TOTAL_RESERVED_PKT_LEN] = {
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x1A, 0x00, 0x28, 0x8C, 0x00, 0x12, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
|
||||||
|
/* page 6 qos null data */
|
||||||
|
0xC8, 0x01, 0x00, 0x00, 0x84, 0xC9, 0xB2, 0xA7,
|
||||||
|
0xB3, 0x6E, 0x00, 0xE0, 0x4C, 0x02, 0x51, 0x02,
|
||||||
|
0x84, 0xC9, 0xB2, 0xA7, 0xB3, 0x6E, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x1A, 0x00, 0x28, 0x8C, 0x00, 0x12, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x80, 0x00, 0x00, 0x01, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
|
||||||
|
/* page 7 BT-qos null data */
|
||||||
|
0xC8, 0x01, 0x00, 0x00, 0x84, 0xC9, 0xB2, 0xA7,
|
||||||
|
0xB3, 0x6E, 0x00, 0xE0, 0x4C, 0x02, 0x51, 0x02,
|
||||||
|
0x84, 0xC9, 0xB2, 0xA7, 0xB3, 0x6E, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
@ -595,6 +633,8 @@ void rtl92ee_set_fw_rsvdpagepkt(struct ieee80211_hw *hw, bool b_dl_finished)
|
||||||
u8 *p_pspoll;
|
u8 *p_pspoll;
|
||||||
u8 *nullfunc;
|
u8 *nullfunc;
|
||||||
u8 *p_probersp;
|
u8 *p_probersp;
|
||||||
|
u8 *qosnull;
|
||||||
|
u8 *btqosnull;
|
||||||
/*---------------------------------------------------------
|
/*---------------------------------------------------------
|
||||||
* (1) beacon
|
* (1) beacon
|
||||||
*---------------------------------------------------------
|
*---------------------------------------------------------
|
||||||
|
@ -636,6 +676,28 @@ void rtl92ee_set_fw_rsvdpagepkt(struct ieee80211_hw *hw, bool b_dl_finished)
|
||||||
|
|
||||||
SET_H2CCMD_RSVDPAGE_LOC_PROBE_RSP(u1rsvdpageloc, PROBERSP_PG);
|
SET_H2CCMD_RSVDPAGE_LOC_PROBE_RSP(u1rsvdpageloc, PROBERSP_PG);
|
||||||
|
|
||||||
|
/*---------------------------------------------------------
|
||||||
|
* (5) QoS null data
|
||||||
|
*----------------------------------------------------------
|
||||||
|
*/
|
||||||
|
qosnull = &reserved_page_packet[QOS_NULL_PG * 128];
|
||||||
|
SET_80211_HDR_ADDRESS1(qosnull, mac->bssid);
|
||||||
|
SET_80211_HDR_ADDRESS2(qosnull, mac->mac_addr);
|
||||||
|
SET_80211_HDR_ADDRESS3(qosnull, mac->bssid);
|
||||||
|
|
||||||
|
SET_H2CCMD_RSVDPAGE_LOC_QOS_NULL_DATA(u1rsvdpageloc, QOS_NULL_PG);
|
||||||
|
|
||||||
|
/*---------------------------------------------------------
|
||||||
|
* (6) BT QoS null data
|
||||||
|
*----------------------------------------------------------
|
||||||
|
*/
|
||||||
|
btqosnull = &reserved_page_packet[BT_QOS_NULL_PG * 128];
|
||||||
|
SET_80211_HDR_ADDRESS1(btqosnull, mac->bssid);
|
||||||
|
SET_80211_HDR_ADDRESS2(btqosnull, mac->mac_addr);
|
||||||
|
SET_80211_HDR_ADDRESS3(btqosnull, mac->bssid);
|
||||||
|
|
||||||
|
SET_H2CCMD_RSVDPAGE_LOC_BT_QOS_NULL_DATA(u1rsvdpageloc, BT_QOS_NULL_PG);
|
||||||
|
|
||||||
totalpacketlen = TOTAL_RESERVED_PKT_LEN;
|
totalpacketlen = TOTAL_RESERVED_PKT_LEN;
|
||||||
|
|
||||||
RT_PRINT_DATA(rtlpriv, COMP_CMD, DBG_LOUD ,
|
RT_PRINT_DATA(rtlpriv, COMP_CMD, DBG_LOUD ,
|
||||||
|
|
|
@ -165,6 +165,10 @@ enum rtl8192e_c2h_evt {
|
||||||
SET_BITS_TO_LE_1BYTE((__ph2ccmd)+1, 0, 8, __val)
|
SET_BITS_TO_LE_1BYTE((__ph2ccmd)+1, 0, 8, __val)
|
||||||
#define SET_H2CCMD_RSVDPAGE_LOC_NULL_DATA(__ph2ccmd, __val) \
|
#define SET_H2CCMD_RSVDPAGE_LOC_NULL_DATA(__ph2ccmd, __val) \
|
||||||
SET_BITS_TO_LE_1BYTE((__ph2ccmd)+2, 0, 8, __val)
|
SET_BITS_TO_LE_1BYTE((__ph2ccmd)+2, 0, 8, __val)
|
||||||
|
#define SET_H2CCMD_RSVDPAGE_LOC_QOS_NULL_DATA(__ph2ccmd, __val) \
|
||||||
|
SET_BITS_TO_LE_1BYTE((__ph2ccmd) + 3, 0, 8, __val)
|
||||||
|
#define SET_H2CCMD_RSVDPAGE_LOC_BT_QOS_NULL_DATA(__ph2ccmd, __val) \
|
||||||
|
SET_BITS_TO_LE_1BYTE((__ph2ccmd) + 4, 0, 8, __val)
|
||||||
|
|
||||||
/* _MEDIA_STATUS_RPT_PARM_CMD1 */
|
/* _MEDIA_STATUS_RPT_PARM_CMD1 */
|
||||||
#define SET_H2CCMD_MSRRPT_PARM_OPMODE(__cmd, __val) \
|
#define SET_H2CCMD_MSRRPT_PARM_OPMODE(__cmd, __val) \
|
||||||
|
|
|
@ -699,9 +699,9 @@ static bool _rtl92ee_llt_table_init(struct ieee80211_hw *hw)
|
||||||
u8 txpktbuf_bndy;
|
u8 txpktbuf_bndy;
|
||||||
u8 u8tmp, testcnt = 0;
|
u8 u8tmp, testcnt = 0;
|
||||||
|
|
||||||
txpktbuf_bndy = 0xFA;
|
txpktbuf_bndy = 0xF7;
|
||||||
|
|
||||||
rtl_write_dword(rtlpriv, REG_RQPN, 0x80E90808);
|
rtl_write_dword(rtlpriv, REG_RQPN, 0x80E60808);
|
||||||
|
|
||||||
rtl_write_byte(rtlpriv, REG_TRXFF_BNDY, txpktbuf_bndy);
|
rtl_write_byte(rtlpriv, REG_TRXFF_BNDY, txpktbuf_bndy);
|
||||||
rtl_write_word(rtlpriv, REG_TRXFF_BNDY + 2, 0x3d00 - 1);
|
rtl_write_word(rtlpriv, REG_TRXFF_BNDY + 2, 0x3d00 - 1);
|
||||||
|
|
|
@ -284,8 +284,10 @@ void rtl8723be_set_fw_media_status_rpt_cmd(struct ieee80211_hw *hw, u8 mstatus)
|
||||||
#define PSPOLL_PG 2
|
#define PSPOLL_PG 2
|
||||||
#define NULL_PG 3
|
#define NULL_PG 3
|
||||||
#define PROBERSP_PG 4 /* ->5 */
|
#define PROBERSP_PG 4 /* ->5 */
|
||||||
|
#define QOS_NULL_PG 6
|
||||||
|
#define BT_QOS_NULL_PG 7
|
||||||
|
|
||||||
#define TOTAL_RESERVED_PKT_LEN 768
|
#define TOTAL_RESERVED_PKT_LEN 1024 /* can be up to 1280 (tx_bndy=245) */
|
||||||
|
|
||||||
static u8 reserved_page_packet[TOTAL_RESERVED_PKT_LEN] = {
|
static u8 reserved_page_packet[TOTAL_RESERVED_PKT_LEN] = {
|
||||||
/* page 0 beacon */
|
/* page 0 beacon */
|
||||||
|
@ -390,11 +392,48 @@ static u8 reserved_page_packet[TOTAL_RESERVED_PKT_LEN] = {
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x1A, 0x00, 0x28, 0x8C, 0x00, 0x12, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
|
||||||
|
/* page 6 qos null data */
|
||||||
|
0xC8, 0x01, 0x00, 0x00, 0x84, 0xC9, 0xB2, 0xA7,
|
||||||
|
0xB3, 0x6E, 0x00, 0xE0, 0x4C, 0x02, 0x51, 0x02,
|
||||||
|
0x84, 0xC9, 0xB2, 0xA7, 0xB3, 0x6E, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x1A, 0x00, 0x28, 0x8C, 0x00, 0x12, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x80, 0x00, 0x00, 0x01, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
|
||||||
|
/* page 7 BT-qos null data */
|
||||||
|
0xC8, 0x01, 0x00, 0x00, 0x84, 0xC9, 0xB2, 0xA7,
|
||||||
|
0xB3, 0x6E, 0x00, 0xE0, 0x4C, 0x02, 0x51, 0x02,
|
||||||
|
0x84, 0xC9, 0xB2, 0xA7, 0xB3, 0x6E, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
void rtl8723be_set_fw_rsvdpagepkt(struct ieee80211_hw *hw,
|
void rtl8723be_set_fw_rsvdpagepkt(struct ieee80211_hw *hw,
|
||||||
|
@ -413,6 +452,8 @@ void rtl8723be_set_fw_rsvdpagepkt(struct ieee80211_hw *hw,
|
||||||
u8 *p_pspoll;
|
u8 *p_pspoll;
|
||||||
u8 *nullfunc;
|
u8 *nullfunc;
|
||||||
u8 *p_probersp;
|
u8 *p_probersp;
|
||||||
|
u8 *qosnull;
|
||||||
|
u8 *btqosnull;
|
||||||
/*---------------------------------------------------------
|
/*---------------------------------------------------------
|
||||||
* (1) beacon
|
* (1) beacon
|
||||||
*---------------------------------------------------------
|
*---------------------------------------------------------
|
||||||
|
@ -454,6 +495,28 @@ void rtl8723be_set_fw_rsvdpagepkt(struct ieee80211_hw *hw,
|
||||||
|
|
||||||
SET_H2CCMD_RSVDPAGE_LOC_PROBE_RSP(u1rsvdpageloc, PROBERSP_PG);
|
SET_H2CCMD_RSVDPAGE_LOC_PROBE_RSP(u1rsvdpageloc, PROBERSP_PG);
|
||||||
|
|
||||||
|
/*---------------------------------------------------------
|
||||||
|
* (5) QoS Null
|
||||||
|
*---------------------------------------------------------
|
||||||
|
*/
|
||||||
|
qosnull = &reserved_page_packet[QOS_NULL_PG * 128];
|
||||||
|
SET_80211_HDR_ADDRESS1(qosnull, mac->bssid);
|
||||||
|
SET_80211_HDR_ADDRESS2(qosnull, mac->mac_addr);
|
||||||
|
SET_80211_HDR_ADDRESS3(qosnull, mac->bssid);
|
||||||
|
|
||||||
|
SET_H2CCMD_RSVDPAGE_LOC_QOS_NULL_DATA(u1rsvdpageloc, QOS_NULL_PG);
|
||||||
|
|
||||||
|
/*---------------------------------------------------------
|
||||||
|
* (5) QoS Null
|
||||||
|
*---------------------------------------------------------
|
||||||
|
*/
|
||||||
|
btqosnull = &reserved_page_packet[BT_QOS_NULL_PG * 128];
|
||||||
|
SET_80211_HDR_ADDRESS1(btqosnull, mac->bssid);
|
||||||
|
SET_80211_HDR_ADDRESS2(btqosnull, mac->mac_addr);
|
||||||
|
SET_80211_HDR_ADDRESS3(btqosnull, mac->bssid);
|
||||||
|
|
||||||
|
SET_H2CCMD_RSVDPAGE_LOC_BT_QOS_NULL_DATA(u1rsvdpageloc, BT_QOS_NULL_PG);
|
||||||
|
|
||||||
totalpacketlen = TOTAL_RESERVED_PKT_LEN;
|
totalpacketlen = TOTAL_RESERVED_PKT_LEN;
|
||||||
|
|
||||||
RT_PRINT_DATA(rtlpriv, COMP_CMD, DBG_LOUD,
|
RT_PRINT_DATA(rtlpriv, COMP_CMD, DBG_LOUD,
|
||||||
|
@ -461,7 +524,7 @@ void rtl8723be_set_fw_rsvdpagepkt(struct ieee80211_hw *hw,
|
||||||
&reserved_page_packet[0], totalpacketlen);
|
&reserved_page_packet[0], totalpacketlen);
|
||||||
RT_PRINT_DATA(rtlpriv, COMP_CMD, DBG_DMESG,
|
RT_PRINT_DATA(rtlpriv, COMP_CMD, DBG_DMESG,
|
||||||
"rtl8723be_set_fw_rsvdpagepkt(): HW_VAR_SET_TX_CMD: ALL\n",
|
"rtl8723be_set_fw_rsvdpagepkt(): HW_VAR_SET_TX_CMD: ALL\n",
|
||||||
u1rsvdpageloc, 3);
|
u1rsvdpageloc, sizeof(u1rsvdpageloc));
|
||||||
|
|
||||||
skb = dev_alloc_skb(totalpacketlen);
|
skb = dev_alloc_skb(totalpacketlen);
|
||||||
memcpy((u8 *)skb_put(skb, totalpacketlen),
|
memcpy((u8 *)skb_put(skb, totalpacketlen),
|
||||||
|
@ -476,7 +539,7 @@ void rtl8723be_set_fw_rsvdpagepkt(struct ieee80211_hw *hw,
|
||||||
RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
|
RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
|
||||||
"Set RSVD page location to Fw.\n");
|
"Set RSVD page location to Fw.\n");
|
||||||
RT_PRINT_DATA(rtlpriv, COMP_CMD, DBG_DMESG, "H2C_RSVDPAGE:\n",
|
RT_PRINT_DATA(rtlpriv, COMP_CMD, DBG_DMESG, "H2C_RSVDPAGE:\n",
|
||||||
u1rsvdpageloc, 3);
|
u1rsvdpageloc, sizeof(u1rsvdpageloc));
|
||||||
rtl8723be_fill_h2c_cmd(hw, H2C_8723B_RSVDPAGE,
|
rtl8723be_fill_h2c_cmd(hw, H2C_8723B_RSVDPAGE,
|
||||||
sizeof(u1rsvdpageloc), u1rsvdpageloc);
|
sizeof(u1rsvdpageloc), u1rsvdpageloc);
|
||||||
} else
|
} else
|
||||||
|
|
|
@ -139,6 +139,10 @@ enum rtl8723b_c2h_evt {
|
||||||
SET_BITS_TO_LE_1BYTE((__ph2ccmd)+1, 0, 8, __val)
|
SET_BITS_TO_LE_1BYTE((__ph2ccmd)+1, 0, 8, __val)
|
||||||
#define SET_H2CCMD_RSVDPAGE_LOC_NULL_DATA(__ph2ccmd, __val) \
|
#define SET_H2CCMD_RSVDPAGE_LOC_NULL_DATA(__ph2ccmd, __val) \
|
||||||
SET_BITS_TO_LE_1BYTE((__ph2ccmd)+2, 0, 8, __val)
|
SET_BITS_TO_LE_1BYTE((__ph2ccmd)+2, 0, 8, __val)
|
||||||
|
#define SET_H2CCMD_RSVDPAGE_LOC_QOS_NULL_DATA(__ph2ccmd, __val) \
|
||||||
|
SET_BITS_TO_LE_1BYTE((__ph2ccmd) + 3, 0, 8, __val)
|
||||||
|
#define SET_H2CCMD_RSVDPAGE_LOC_BT_QOS_NULL_DATA(__ph2ccmd, __val) \
|
||||||
|
SET_BITS_TO_LE_1BYTE((__ph2ccmd) + 4, 0, 8, __val)
|
||||||
|
|
||||||
|
|
||||||
void rtl8723be_fill_h2c_cmd(struct ieee80211_hw *hw, u8 element_id,
|
void rtl8723be_fill_h2c_cmd(struct ieee80211_hw *hw, u8 element_id,
|
||||||
|
|
|
@ -678,12 +678,13 @@ void rtl8821ae_set_fw_global_info_cmd(struct ieee80211_hw *hw)
|
||||||
#define PSPOLL_PG 1
|
#define PSPOLL_PG 1
|
||||||
#define NULL_PG 2
|
#define NULL_PG 2
|
||||||
#define QOSNULL_PG 3
|
#define QOSNULL_PG 3
|
||||||
#define ARPRESP_PG 4
|
#define BT_QOSNULL_PG 4
|
||||||
#define REMOTE_PG 5
|
#define ARPRESP_PG 5
|
||||||
#define GTKEXT_PG 6
|
#define REMOTE_PG 6
|
||||||
|
#define GTKEXT_PG 7
|
||||||
|
|
||||||
#define TOTAL_RESERVED_PKT_LEN_8812 3584
|
#define TOTAL_RESERVED_PKT_LEN_8812 4096
|
||||||
#define TOTAL_RESERVED_PKT_LEN_8821 1792
|
#define TOTAL_RESERVED_PKT_LEN_8821 2048
|
||||||
|
|
||||||
static u8 reserved_page_packet_8821[TOTAL_RESERVED_PKT_LEN_8821] = {
|
static u8 reserved_page_packet_8821[TOTAL_RESERVED_PKT_LEN_8821] = {
|
||||||
/* page 0: beacon */
|
/* page 0: beacon */
|
||||||
|
@ -813,13 +814,46 @@ static u8 reserved_page_packet_8821[TOTAL_RESERVED_PKT_LEN_8821] = {
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x1A, 0x00, 0x28, 0x8C, 0x00, 0x12, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x80, 0x00, 0x00, 0x01, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
/* page 4: BT qos null data */
|
||||||
|
0xC8, 0x01, 0x00, 0x00, 0x84, 0xC9, 0xB2, 0xA7,
|
||||||
|
0xB3, 0x6E, 0x00, 0xE0, 0x4C, 0x02, 0x51, 0x02,
|
||||||
|
0x84, 0xC9, 0xB2, 0xA7, 0xB3, 0x6E, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x3C, 0x00, 0x28, 0x8C, 0x00, 0x12, 0x00, 0x00,
|
0x3C, 0x00, 0x28, 0x8C, 0x00, 0x12, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
/* page 4~6 is for wowlan */
|
/* page 5~7 is for wowlan */
|
||||||
/* page 4: ARP resp */
|
/* page 5: ARP resp */
|
||||||
0x08, 0x01, 0x00, 0x00, 0x84, 0xC9, 0xB2, 0xA7,
|
0x08, 0x01, 0x00, 0x00, 0x84, 0xC9, 0xB2, 0xA7,
|
||||||
0xB3, 0x6E, 0x00, 0xE0, 0x4C, 0x02, 0x51, 0x02,
|
0xB3, 0x6E, 0x00, 0xE0, 0x4C, 0x02, 0x51, 0x02,
|
||||||
0x84, 0xC9, 0xB2, 0xA7, 0xB3, 0x6E, 0x00, 0x00,
|
0x84, 0xC9, 0xB2, 0xA7, 0xB3, 0x6E, 0x00, 0x00,
|
||||||
|
@ -852,7 +886,7 @@ static u8 reserved_page_packet_8821[TOTAL_RESERVED_PKT_LEN_8821] = {
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
/* page 5: H2C_REMOTE_WAKE_CTRL_INFO */
|
/* page 6: H2C_REMOTE_WAKE_CTRL_INFO */
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
@ -885,7 +919,7 @@ static u8 reserved_page_packet_8821[TOTAL_RESERVED_PKT_LEN_8821] = {
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
/* page 6: Rsvd GTK extend memory (zero memory) */
|
/* page 7: Rsvd GTK extend memory (zero memory) */
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
@ -1176,13 +1210,78 @@ static u8 reserved_page_packet_8812[TOTAL_RESERVED_PKT_LEN_8812] = {
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x1A, 0x00, 0x28, 0x8C, 0x00, 0x12, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x80, 0x00, 0x00, 0x01, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
/* page 4: BT Qos null data */
|
||||||
|
0xC8, 0x01, 0x00, 0x00, 0x84, 0xC9, 0xB2, 0xA7,
|
||||||
|
0xB3, 0x6E, 0x00, 0xE0, 0x4C, 0x02, 0x51, 0x02,
|
||||||
|
0x84, 0xC9, 0xB2, 0xA7, 0xB3, 0x6E, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x3C, 0x00, 0x28, 0x8C, 0x00, 0x12, 0x00, 0x00,
|
0x3C, 0x00, 0x28, 0x8C, 0x00, 0x12, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
/* page 4~6 is for wowlan */
|
/* page 5~7 is for wowlan */
|
||||||
/* page 4: ARP resp */
|
/* page 5: ARP resp */
|
||||||
0x08, 0x01, 0x00, 0x00, 0x84, 0xC9, 0xB2, 0xA7,
|
0x08, 0x01, 0x00, 0x00, 0x84, 0xC9, 0xB2, 0xA7,
|
||||||
0xB3, 0x6E, 0x00, 0xE0, 0x4C, 0x02, 0x51, 0x02,
|
0xB3, 0x6E, 0x00, 0xE0, 0x4C, 0x02, 0x51, 0x02,
|
||||||
0x84, 0xC9, 0xB2, 0xA7, 0xB3, 0x6E, 0x00, 0x00,
|
0x84, 0xC9, 0xB2, 0xA7, 0xB3, 0x6E, 0x00, 0x00,
|
||||||
|
@ -1247,7 +1346,7 @@ static u8 reserved_page_packet_8812[TOTAL_RESERVED_PKT_LEN_8812] = {
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
/* page 5: H2C_REMOTE_WAKE_CTRL_INFO */
|
/* page 6: H2C_REMOTE_WAKE_CTRL_INFO */
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
@ -1312,7 +1411,7 @@ static u8 reserved_page_packet_8812[TOTAL_RESERVED_PKT_LEN_8812] = {
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
/* page 6: Rsvd GTK extend memory (zero memory) */
|
/* page 7: Rsvd GTK extend memory (zero memory) */
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
@ -1394,6 +1493,7 @@ void rtl8812ae_set_fw_rsvdpagepkt(struct ieee80211_hw *hw,
|
||||||
u8 *p_pspoll;
|
u8 *p_pspoll;
|
||||||
u8 *nullfunc;
|
u8 *nullfunc;
|
||||||
u8 *qosnull;
|
u8 *qosnull;
|
||||||
|
u8 *btqosnull;
|
||||||
u8 *arpresp;
|
u8 *arpresp;
|
||||||
|
|
||||||
/*---------------------------------------------------------
|
/*---------------------------------------------------------
|
||||||
|
@ -1441,12 +1541,23 @@ void rtl8812ae_set_fw_rsvdpagepkt(struct ieee80211_hw *hw,
|
||||||
|
|
||||||
SET_H2CCMD_RSVDPAGE_LOC_QOS_NULL_DATA(u1RsvdPageLoc, QOSNULL_PG);
|
SET_H2CCMD_RSVDPAGE_LOC_QOS_NULL_DATA(u1RsvdPageLoc, QOSNULL_PG);
|
||||||
|
|
||||||
|
/*---------------------------------------------------------
|
||||||
|
* (5) BT Qos null data
|
||||||
|
*----------------------------------------------------------
|
||||||
|
*/
|
||||||
|
btqosnull = &reserved_page_packet_8812[BT_QOSNULL_PG * 512];
|
||||||
|
SET_80211_HDR_ADDRESS1(btqosnull, mac->bssid);
|
||||||
|
SET_80211_HDR_ADDRESS2(btqosnull, mac->mac_addr);
|
||||||
|
SET_80211_HDR_ADDRESS3(btqosnull, mac->bssid);
|
||||||
|
|
||||||
|
SET_H2CCMD_RSVDPAGE_LOC_BT_QOS_NULL_DATA(u1RsvdPageLoc, BT_QOSNULL_PG);
|
||||||
|
|
||||||
if (!dl_whole_packets) {
|
if (!dl_whole_packets) {
|
||||||
totalpacketlen = 512 * (QOSNULL_PG + 1) - 40;
|
totalpacketlen = 512 * (BT_QOSNULL_PG + 1) - 40;
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
/*---------------------------------------------------------
|
/*---------------------------------------------------------
|
||||||
* (5) ARP Resp
|
* (6) ARP Resp
|
||||||
*----------------------------------------------------------
|
*----------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
arpresp = &reserved_page_packet_8812[ARPRESP_PG * 512];
|
arpresp = &reserved_page_packet_8812[ARPRESP_PG * 512];
|
||||||
|
@ -1457,14 +1568,14 @@ void rtl8812ae_set_fw_rsvdpagepkt(struct ieee80211_hw *hw,
|
||||||
SET_8821AE_H2CCMD_AOAC_RSVDPAGE_LOC_ARP_RSP(u1RsvdPageLoc2, ARPRESP_PG);
|
SET_8821AE_H2CCMD_AOAC_RSVDPAGE_LOC_ARP_RSP(u1RsvdPageLoc2, ARPRESP_PG);
|
||||||
|
|
||||||
/*---------------------------------------------------------
|
/*---------------------------------------------------------
|
||||||
* (6) Remote Wake Ctrl
|
* (7) Remote Wake Ctrl
|
||||||
*----------------------------------------------------------
|
*----------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
SET_8821AE_H2CCMD_AOAC_RSVDPAGE_LOC_REMOTE_WAKE_CTRL_INFO(u1RsvdPageLoc2,
|
SET_8821AE_H2CCMD_AOAC_RSVDPAGE_LOC_REMOTE_WAKE_CTRL_INFO(u1RsvdPageLoc2,
|
||||||
REMOTE_PG);
|
REMOTE_PG);
|
||||||
|
|
||||||
/*---------------------------------------------------------
|
/*---------------------------------------------------------
|
||||||
* (7) GTK Ext Memory
|
* (8) GTK Ext Memory
|
||||||
*----------------------------------------------------------
|
*----------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
SET_8821AE_H2CCMD_AOAC_RSVDPAGE_LOC_GTK_EXT_MEM(u1RsvdPageLoc2, GTKEXT_PG);
|
SET_8821AE_H2CCMD_AOAC_RSVDPAGE_LOC_GTK_EXT_MEM(u1RsvdPageLoc2, GTKEXT_PG);
|
||||||
|
@ -1518,6 +1629,7 @@ void rtl8821ae_set_fw_rsvdpagepkt(struct ieee80211_hw *hw,
|
||||||
u8 *p_pspoll;
|
u8 *p_pspoll;
|
||||||
u8 *nullfunc;
|
u8 *nullfunc;
|
||||||
u8 *qosnull;
|
u8 *qosnull;
|
||||||
|
u8 *btqosnull;
|
||||||
u8 *arpresp;
|
u8 *arpresp;
|
||||||
|
|
||||||
/*---------------------------------------------------------
|
/*---------------------------------------------------------
|
||||||
|
@ -1565,12 +1677,23 @@ void rtl8821ae_set_fw_rsvdpagepkt(struct ieee80211_hw *hw,
|
||||||
|
|
||||||
SET_H2CCMD_RSVDPAGE_LOC_QOS_NULL_DATA(u1RsvdPageLoc, QOSNULL_PG);
|
SET_H2CCMD_RSVDPAGE_LOC_QOS_NULL_DATA(u1RsvdPageLoc, QOSNULL_PG);
|
||||||
|
|
||||||
|
/*---------------------------------------------------------
|
||||||
|
* (5) Qos null data
|
||||||
|
*----------------------------------------------------------
|
||||||
|
*/
|
||||||
|
btqosnull = &reserved_page_packet_8821[BT_QOSNULL_PG * 256];
|
||||||
|
SET_80211_HDR_ADDRESS1(btqosnull, mac->bssid);
|
||||||
|
SET_80211_HDR_ADDRESS2(btqosnull, mac->mac_addr);
|
||||||
|
SET_80211_HDR_ADDRESS3(btqosnull, mac->bssid);
|
||||||
|
|
||||||
|
SET_H2CCMD_RSVDPAGE_LOC_BT_QOS_NULL_DATA(u1RsvdPageLoc, BT_QOSNULL_PG);
|
||||||
|
|
||||||
if (!dl_whole_packets) {
|
if (!dl_whole_packets) {
|
||||||
totalpacketlen = 256 * (QOSNULL_PG + 1) - 40;
|
totalpacketlen = 256 * (BT_QOSNULL_PG + 1) - 40;
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
/*---------------------------------------------------------
|
/*---------------------------------------------------------
|
||||||
* (5) ARP Resp
|
* (6) ARP Resp
|
||||||
*----------------------------------------------------------
|
*----------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
arpresp = &reserved_page_packet_8821[ARPRESP_PG * 256];
|
arpresp = &reserved_page_packet_8821[ARPRESP_PG * 256];
|
||||||
|
@ -1581,14 +1704,14 @@ void rtl8821ae_set_fw_rsvdpagepkt(struct ieee80211_hw *hw,
|
||||||
SET_8821AE_H2CCMD_AOAC_RSVDPAGE_LOC_ARP_RSP(u1RsvdPageLoc2, ARPRESP_PG);
|
SET_8821AE_H2CCMD_AOAC_RSVDPAGE_LOC_ARP_RSP(u1RsvdPageLoc2, ARPRESP_PG);
|
||||||
|
|
||||||
/*---------------------------------------------------------
|
/*---------------------------------------------------------
|
||||||
* (6) Remote Wake Ctrl
|
* (7) Remote Wake Ctrl
|
||||||
*----------------------------------------------------------
|
*----------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
SET_8821AE_H2CCMD_AOAC_RSVDPAGE_LOC_REMOTE_WAKE_CTRL_INFO(u1RsvdPageLoc2,
|
SET_8821AE_H2CCMD_AOAC_RSVDPAGE_LOC_REMOTE_WAKE_CTRL_INFO(u1RsvdPageLoc2,
|
||||||
REMOTE_PG);
|
REMOTE_PG);
|
||||||
|
|
||||||
/*---------------------------------------------------------
|
/*---------------------------------------------------------
|
||||||
* (7) GTK Ext Memory
|
* (8) GTK Ext Memory
|
||||||
*----------------------------------------------------------
|
*----------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
SET_8821AE_H2CCMD_AOAC_RSVDPAGE_LOC_GTK_EXT_MEM(u1RsvdPageLoc2, GTKEXT_PG);
|
SET_8821AE_H2CCMD_AOAC_RSVDPAGE_LOC_GTK_EXT_MEM(u1RsvdPageLoc2, GTKEXT_PG);
|
||||||
|
|
|
@ -229,6 +229,8 @@ enum rtl8821a_h2c_cmd {
|
||||||
SET_BITS_TO_LE_1BYTE((__ph2ccmd)+2, 0, 8, __val)
|
SET_BITS_TO_LE_1BYTE((__ph2ccmd)+2, 0, 8, __val)
|
||||||
#define SET_H2CCMD_RSVDPAGE_LOC_QOS_NULL_DATA(__ph2ccmd, __val) \
|
#define SET_H2CCMD_RSVDPAGE_LOC_QOS_NULL_DATA(__ph2ccmd, __val) \
|
||||||
SET_BITS_TO_LE_1BYTE((__ph2ccmd)+3, 0, 8, __val)
|
SET_BITS_TO_LE_1BYTE((__ph2ccmd)+3, 0, 8, __val)
|
||||||
|
#define SET_H2CCMD_RSVDPAGE_LOC_BT_QOS_NULL_DATA(__ph2ccmd, __val) \
|
||||||
|
SET_BITS_TO_LE_1BYTE((__ph2ccmd) + 4, 0, 8, __val)
|
||||||
|
|
||||||
/* _MEDIA_STATUS_RPT_PARM_CMD1 */
|
/* _MEDIA_STATUS_RPT_PARM_CMD1 */
|
||||||
#define SET_H2CCMD_MSRRPT_PARM_OPMODE(__cmd, __value) \
|
#define SET_H2CCMD_MSRRPT_PARM_OPMODE(__cmd, __value) \
|
||||||
|
|
|
@ -842,12 +842,8 @@ static bool _rtl8821ae_llt_table_init(struct ieee80211_hw *hw)
|
||||||
bool status;
|
bool status;
|
||||||
|
|
||||||
maxpage = 255;
|
maxpage = 255;
|
||||||
txpktbuf_bndy = 0xF8;
|
txpktbuf_bndy = 0xF7;
|
||||||
rqpn = 0x80e70808;
|
rqpn = 0x80e60808;
|
||||||
if (rtlpriv->rtlhal.hw_type == HARDWARE_TYPE_RTL8812AE) {
|
|
||||||
txpktbuf_bndy = 0xFA;
|
|
||||||
rqpn = 0x80e90808;
|
|
||||||
}
|
|
||||||
|
|
||||||
rtl_write_byte(rtlpriv, REG_TRXFF_BNDY, txpktbuf_bndy);
|
rtl_write_byte(rtlpriv, REG_TRXFF_BNDY, txpktbuf_bndy);
|
||||||
rtl_write_word(rtlpriv, REG_TRXFF_BNDY + 2, MAX_RX_DMA_BUFFER_SIZE - 1);
|
rtl_write_word(rtlpriv, REG_TRXFF_BNDY + 2, MAX_RX_DMA_BUFFER_SIZE - 1);
|
||||||
|
|
Loading…
Reference in New Issue