GNU Linux-libre 4.14.266-gnu1
[releases.git] / drivers / staging / rtl8188eu / include / Hal8188ERateAdaptive.h
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 void ODM_RASupport_Init(struct odm_dm_struct *dm_odm);
53
54 int ODM_RAInfo_Init_all(struct odm_dm_struct *dm_odm);
55
56 int ODM_RAInfo_Init(struct odm_dm_struct *dm_odm, u8 MacID);
57
58 u8 ODM_RA_GetShortGI_8188E(struct odm_dm_struct *dm_odm, u8 MacID);
59
60 u8 ODM_RA_GetDecisionRate_8188E(struct odm_dm_struct *dm_odm, u8 MacID);
61
62 u8 ODM_RA_GetHwPwrStatus_8188E(struct odm_dm_struct *dm_odm, u8 MacID);
63 void ODM_RA_UpdateRateInfo_8188E(struct odm_dm_struct *dm_odm, u8 MacID,
64                                  u8 RateID, u32 RateMask,
65                                  u8 SGIEnable);
66
67 void ODM_RA_SetRSSI_8188E(struct odm_dm_struct *dm_odm, u8 macid,
68                           u8 rssi);
69
70 void ODM_RA_TxRPT2Handle_8188E(struct odm_dm_struct *dm_odm,
71                                u8 *txrpt_buf, u16 txrpt_len,
72                                u32 validentry0, u32 validentry1);
73
74 void ODM_RA_Set_TxRPT_Time(struct odm_dm_struct *dm_odm, u16 minRptTime);
75
76 #endif