1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #ifndef __INC_RA_H 3 #define __INC_RA_H 4 /* 5 * Copyright (c) Realtek Semiconductor Corp. All rights reserved. 6 * 7 * Module Name: 8 * RateAdaptive.h 9 * 10 * Abstract: 11 * Prototype of RA and related data structure. 12 * 13 * Major Change History: 14 * When Who What 15 * ---------- --------------- ------------------------------- 16 * 2011-08-12 Page Create. 17 */ 18 19 /* Rate adaptive define */ 20 #define PERENTRY 23 21 #define RETRYSIZE 5 22 #define RATESIZE 28 23 #define TX_RPT2_ITEM_SIZE 8 24 25 /* */ 26 /* TX report 2 format in Rx desc */ 27 /* */ 28 #define GET_TX_RPT2_DESC_PKT_LEN_88E(__pRxStatusDesc) \ 29 LE_BITS_TO_4BYTE(__pRxStatusDesc, 0, 9) 30 #define GET_TX_RPT2_DESC_MACID_VALID_1_88E(__pRxStatusDesc) \ 31 LE_BITS_TO_4BYTE(__pRxStatusDesc + 16, 0, 32) 32 #define GET_TX_RPT2_DESC_MACID_VALID_2_88E(__pRxStatusDesc) \ 33 LE_BITS_TO_4BYTE(__pRxStatusDesc + 20, 0, 32) 34 35 #define GET_TX_REPORT_TYPE1_RERTY_0(__pAddr) \ 36 LE_BITS_TO_4BYTE(__pAddr, 0, 16) 37 #define GET_TX_REPORT_TYPE1_RERTY_1(__pAddr) \ 38 LE_BITS_TO_1BYTE(__pAddr + 2, 0, 8) 39 #define GET_TX_REPORT_TYPE1_RERTY_2(__pAddr) \ 40 LE_BITS_TO_1BYTE(__pAddr + 3, 0, 8) 41 #define GET_TX_REPORT_TYPE1_RERTY_3(__pAddr) \ 42 LE_BITS_TO_1BYTE(__pAddr + 4, 0, 8) 43 #define GET_TX_REPORT_TYPE1_RERTY_4(__pAddr) \ 44 LE_BITS_TO_1BYTE(__pAddr + 4 + 1, 0, 8) 45 #define GET_TX_REPORT_TYPE1_DROP_0(__pAddr) \ 46 LE_BITS_TO_1BYTE(__pAddr + 4 + 2, 0, 8) 47 #define GET_TX_REPORT_TYPE1_DROP_1(__pAddr) \ 48 LE_BITS_TO_1BYTE(__pAddr + 4 + 3, 0, 8) 49 50 /* End rate adaptive define */ 51 52 int ODM_RAInfo_Init_all(struct odm_dm_struct *dm_odm); 53 54 int ODM_RAInfo_Init(struct odm_dm_struct *dm_odm, u8 MacID); 55 56 u8 ODM_RA_GetShortGI_8188E(struct odm_dm_struct *dm_odm, u8 MacID); 57 58 u8 ODM_RA_GetDecisionRate_8188E(struct odm_dm_struct *dm_odm, u8 MacID); 59 60 u8 ODM_RA_GetHwPwrStatus_8188E(struct odm_dm_struct *dm_odm, u8 MacID); 61 void ODM_RA_UpdateRateInfo_8188E(struct odm_dm_struct *dm_odm, u8 MacID, 62 u8 RateID, u32 RateMask, 63 u8 SGIEnable); 64 65 void ODM_RA_SetRSSI_8188E(struct odm_dm_struct *dm_odm, u8 macid, 66 u8 rssi); 67 68 void ODM_RA_TxRPT2Handle_8188E(struct odm_dm_struct *dm_odm, 69 u8 *txrpt_buf, u16 txrpt_len, 70 u32 validentry0, u32 validentry1); 71 72 void ODM_RA_Set_TxRPT_Time(struct odm_dm_struct *dm_odm, u16 minRptTime); 73 74 #endif 75