summaryrefslogtreecommitdiff
path: root/hw/wcn6450/v1/receive_user_info.h
blob: 9b2eb60e1410ceab4772678eac97af55b149452d (plain)
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107

/*
 * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
 *
 * Permission to use, copy, modify, and/or distribute this software for
 * any purpose with or without fee is hereby granted, provided that the
 * above copyright notice and this permission notice appear in all
 * copies.
 *
 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 * PERFORMANCE OF THIS SOFTWARE.
 */



#ifndef _RECEIVE_USER_INFO_H_
#define _RECEIVE_USER_INFO_H_
#if !defined(__ASSEMBLER__)
#endif

#define NUM_OF_DWORDS_RECEIVE_USER_INFO 3

struct receive_user_info {
             uint32_t phy_ppdu_id                     : 16,
                      user_rssi                       :  8,
                      pkt_type                        :  4,
                      stbc                            :  1,
                      reception_type                  :  3;
             uint32_t rate_mcs                        :  4,
                      sgi                             :  2,
                      receive_bandwidth               :  2,
                      mimo_ss_bitmap                  :  8,
                      ofdma_ru_allocation             :  8,
                      ofdma_user_index                :  7,
                      ofdma_content_channel           :  1;
             uint32_t ldpc                            :  1,
                      ru_width                        :  7,
                      reserved_2a                     : 24;
};

#define RECEIVE_USER_INFO_0_PHY_PPDU_ID_OFFSET                       0x00000000
#define RECEIVE_USER_INFO_0_PHY_PPDU_ID_LSB                          0
#define RECEIVE_USER_INFO_0_PHY_PPDU_ID_MASK                         0x0000ffff

#define RECEIVE_USER_INFO_0_USER_RSSI_OFFSET                         0x00000000
#define RECEIVE_USER_INFO_0_USER_RSSI_LSB                            16
#define RECEIVE_USER_INFO_0_USER_RSSI_MASK                           0x00ff0000

#define RECEIVE_USER_INFO_0_PKT_TYPE_OFFSET                          0x00000000
#define RECEIVE_USER_INFO_0_PKT_TYPE_LSB                             24
#define RECEIVE_USER_INFO_0_PKT_TYPE_MASK                            0x0f000000

#define RECEIVE_USER_INFO_0_STBC_OFFSET                              0x00000000
#define RECEIVE_USER_INFO_0_STBC_LSB                                 28
#define RECEIVE_USER_INFO_0_STBC_MASK                                0x10000000

#define RECEIVE_USER_INFO_0_RECEPTION_TYPE_OFFSET                    0x00000000
#define RECEIVE_USER_INFO_0_RECEPTION_TYPE_LSB                       29
#define RECEIVE_USER_INFO_0_RECEPTION_TYPE_MASK                      0xe0000000

#define RECEIVE_USER_INFO_1_RATE_MCS_OFFSET                          0x00000004
#define RECEIVE_USER_INFO_1_RATE_MCS_LSB                             0
#define RECEIVE_USER_INFO_1_RATE_MCS_MASK                            0x0000000f

#define RECEIVE_USER_INFO_1_SGI_OFFSET                               0x00000004
#define RECEIVE_USER_INFO_1_SGI_LSB                                  4
#define RECEIVE_USER_INFO_1_SGI_MASK                                 0x00000030

#define RECEIVE_USER_INFO_1_RECEIVE_BANDWIDTH_OFFSET                 0x00000004
#define RECEIVE_USER_INFO_1_RECEIVE_BANDWIDTH_LSB                    6
#define RECEIVE_USER_INFO_1_RECEIVE_BANDWIDTH_MASK                   0x000000c0

#define RECEIVE_USER_INFO_1_MIMO_SS_BITMAP_OFFSET                    0x00000004
#define RECEIVE_USER_INFO_1_MIMO_SS_BITMAP_LSB                       8
#define RECEIVE_USER_INFO_1_MIMO_SS_BITMAP_MASK                      0x0000ff00

#define RECEIVE_USER_INFO_1_OFDMA_RU_ALLOCATION_OFFSET               0x00000004
#define RECEIVE_USER_INFO_1_OFDMA_RU_ALLOCATION_LSB                  16
#define RECEIVE_USER_INFO_1_OFDMA_RU_ALLOCATION_MASK                 0x00ff0000

#define RECEIVE_USER_INFO_1_OFDMA_USER_INDEX_OFFSET                  0x00000004
#define RECEIVE_USER_INFO_1_OFDMA_USER_INDEX_LSB                     24
#define RECEIVE_USER_INFO_1_OFDMA_USER_INDEX_MASK                    0x7f000000

#define RECEIVE_USER_INFO_1_OFDMA_CONTENT_CHANNEL_OFFSET             0x00000004
#define RECEIVE_USER_INFO_1_OFDMA_CONTENT_CHANNEL_LSB                31
#define RECEIVE_USER_INFO_1_OFDMA_CONTENT_CHANNEL_MASK               0x80000000

#define RECEIVE_USER_INFO_2_LDPC_OFFSET                              0x00000008
#define RECEIVE_USER_INFO_2_LDPC_LSB                                 0
#define RECEIVE_USER_INFO_2_LDPC_MASK                                0x00000001

#define RECEIVE_USER_INFO_2_RU_WIDTH_OFFSET                          0x00000008
#define RECEIVE_USER_INFO_2_RU_WIDTH_LSB                             1
#define RECEIVE_USER_INFO_2_RU_WIDTH_MASK                            0x000000fe

#define RECEIVE_USER_INFO_2_RESERVED_2A_OFFSET                       0x00000008
#define RECEIVE_USER_INFO_2_RESERVED_2A_LSB                          8
#define RECEIVE_USER_INFO_2_RESERVED_2A_MASK                         0xffffff00

#endif