1
2
3
4
5#ifndef __RTW_RX_H_
6#define __RTW_RX_H_
7
8#define GET_RX_DESC_PHYST(rxdesc) \
9 le32_get_bits(*((__le32 *)(rxdesc) + 0x00), BIT(26))
10#define GET_RX_DESC_ICV_ERR(rxdesc) \
11 le32_get_bits(*((__le32 *)(rxdesc) + 0x00), BIT(15))
12#define GET_RX_DESC_CRC32(rxdesc) \
13 le32_get_bits(*((__le32 *)(rxdesc) + 0x00), BIT(14))
14#define GET_RX_DESC_SWDEC(rxdesc) \
15 le32_get_bits(*((__le32 *)(rxdesc) + 0x00), BIT(27))
16#define GET_RX_DESC_C2H(rxdesc) \
17 le32_get_bits(*((__le32 *)(rxdesc) + 0x02), BIT(28))
18#define GET_RX_DESC_PKT_LEN(rxdesc) \
19 le32_get_bits(*((__le32 *)(rxdesc) + 0x00), GENMASK(13, 0))
20#define GET_RX_DESC_DRV_INFO_SIZE(rxdesc) \
21 le32_get_bits(*((__le32 *)(rxdesc) + 0x00), GENMASK(19, 16))
22#define GET_RX_DESC_SHIFT(rxdesc) \
23 le32_get_bits(*((__le32 *)(rxdesc) + 0x00), GENMASK(25, 24))
24#define GET_RX_DESC_RX_RATE(rxdesc) \
25 le32_get_bits(*((__le32 *)(rxdesc) + 0x03), GENMASK(6, 0))
26#define GET_RX_DESC_MACID(rxdesc) \
27 le32_get_bits(*((__le32 *)(rxdesc) + 0x01), GENMASK(6, 0))
28#define GET_RX_DESC_PPDU_CNT(rxdesc) \
29 le32_get_bits(*((__le32 *)(rxdesc) + 0x02), GENMASK(30, 29))
30#define GET_RX_DESC_TSFL(rxdesc) \
31 le32_get_bits(*((__le32 *)(rxdesc) + 0x05), GENMASK(31, 0))
32
33void rtw_rx_stats(struct rtw_dev *rtwdev, struct ieee80211_vif *vif,
34 struct sk_buff *skb);
35void rtw_rx_fill_rx_status(struct rtw_dev *rtwdev,
36 struct rtw_rx_pkt_stat *pkt_stat,
37 struct ieee80211_hdr *hdr,
38 struct ieee80211_rx_status *rx_status,
39 u8 *phy_status);
40
41#endif
42