hc
2023-12-09 b22da3d8526a935aa31e086e63f60ff3246cb61c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
/* Copyright(c) 2018-2019  Realtek Corporation
 */
 
#ifndef __RTW_RX_H_
#define __RTW_RX_H_
 
enum rtw_rx_desc_enc {
   RX_DESC_ENC_NONE    = 0,
   RX_DESC_ENC_WEP40    = 1,
   RX_DESC_ENC_TKIP_WO_MIC    = 2,
   RX_DESC_ENC_TKIP_MIC    = 3,
   RX_DESC_ENC_AES        = 4,
   RX_DESC_ENC_WEP104    = 5,
};
 
#define GET_RX_DESC_PHYST(rxdesc)                                              \
   le32_get_bits(*((__le32 *)(rxdesc) + 0x00), BIT(26))
#define GET_RX_DESC_ICV_ERR(rxdesc)                                            \
   le32_get_bits(*((__le32 *)(rxdesc) + 0x00), BIT(15))
#define GET_RX_DESC_CRC32(rxdesc)                                              \
   le32_get_bits(*((__le32 *)(rxdesc) + 0x00), BIT(14))
#define GET_RX_DESC_SWDEC(rxdesc)                                              \
   le32_get_bits(*((__le32 *)(rxdesc) + 0x00), BIT(27))
#define GET_RX_DESC_C2H(rxdesc)                                                \
   le32_get_bits(*((__le32 *)(rxdesc) + 0x02), BIT(28))
#define GET_RX_DESC_PKT_LEN(rxdesc)                                            \
   le32_get_bits(*((__le32 *)(rxdesc) + 0x00), GENMASK(13, 0))
#define GET_RX_DESC_DRV_INFO_SIZE(rxdesc)                                      \
   le32_get_bits(*((__le32 *)(rxdesc) + 0x00), GENMASK(19, 16))
#define GET_RX_DESC_SHIFT(rxdesc)                                              \
   le32_get_bits(*((__le32 *)(rxdesc) + 0x00), GENMASK(25, 24))
#define GET_RX_DESC_ENC_TYPE(rxdesc)                                           \
   le32_get_bits(*((__le32 *)(rxdesc) + 0x00), GENMASK(22, 20))
#define GET_RX_DESC_RX_RATE(rxdesc)                                            \
   le32_get_bits(*((__le32 *)(rxdesc) + 0x03), GENMASK(6, 0))
#define GET_RX_DESC_MACID(rxdesc)                                              \
   le32_get_bits(*((__le32 *)(rxdesc) + 0x01), GENMASK(6, 0))
#define GET_RX_DESC_PPDU_CNT(rxdesc)                                           \
   le32_get_bits(*((__le32 *)(rxdesc) + 0x02), GENMASK(30, 29))
#define GET_RX_DESC_TSFL(rxdesc)                                               \
   le32_get_bits(*((__le32 *)(rxdesc) + 0x05), GENMASK(31, 0))
 
void rtw_rx_stats(struct rtw_dev *rtwdev, struct ieee80211_vif *vif,
         struct sk_buff *skb);
void rtw_rx_fill_rx_status(struct rtw_dev *rtwdev,
              struct rtw_rx_pkt_stat *pkt_stat,
              struct ieee80211_hdr *hdr,
              struct ieee80211_rx_status *rx_status,
              u8 *phy_status);
 
#endif