30bae79019e1cc95622b1578696be3635e74e55f
[firefly-linux-kernel-4.4.55.git] / drivers / net / wireless / rockchip_wlan / combo_mt66xx / mt6620 / wlan / include / nic / p2p.h
1 /*
2 ** $Id: //Department/DaVinci/TRUNK/WiFi_P2P_Driver/include/nic/p2p.h#3 $
3 */
4
5
6
7 /*
8 ** $Log: p2p.h $
9  *
10  * 07 17 2012 yuche.tsai
11  * NULL
12  * Compile no error before trial run.
13  *
14  * 10 20 2010 wh.su
15  * [WCXRP00000124] [MT6620 Wi-Fi] [Driver] Support the dissolve P2P Group
16  * Add the code to support disconnect p2p group
17  *
18  * 09 21 2010 kevin.huang
19  * [WCXRP00000054] [MT6620 Wi-Fi][Driver] Restructure driver for second Interface
20  * Isolate P2P related function for Hardware Software Bundle
21  *
22  * 08 03 2010 cp.wu
23  * NULL
24  * [Wi-Fi Direct] add framework for driver hooks
25  *
26  * 07 08 2010 cp.wu
27  *
28  * [WPD00003833] [MT6620 and MT5931] Driver migration - move to new repository.
29  *
30  * 06 23 2010 cp.wu
31  * [WPD00003833][MT6620 and MT5931] Driver migration
32  * p2p interface revised to be sync. with HAL
33  *
34  * 06 06 2010 kevin.huang
35  * [WPD00003832][MT6620 5931] Create driver base
36  * [MT6620 5931] Create driver base
37  *
38  * 05 18 2010 cp.wu
39  * [WPD00003831][MT6620 Wi-Fi] Add framework for Wi-Fi Direct support
40  * add parameter to control:
41  * 1) auto group owner
42  * 2) P2P-PS parameter (CTWindow, NoA descriptors)
43  *
44  * 05 18 2010 cp.wu
45  * [WPD00003831][MT6620 Wi-Fi] Add framework for Wi-Fi Direct support
46  * correct WPS Device Password ID definition.
47  *
48  * 05 17 2010 cp.wu
49  * [WPD00003831][MT6620 Wi-Fi] Add framework for Wi-Fi Direct support
50  * implement get scan result.
51  *
52  * 05 17 2010 cp.wu
53  * [WPD00003831][MT6620 Wi-Fi] Add framework for Wi-Fi Direct support
54  * add basic handling framework for wireless extension ioctls.
55  *
56  * 05 14 2010 cp.wu
57  * [WPD00003831][MT6620 Wi-Fi] Add framework for Wi-Fi Direct support
58  * add ioctl framework for Wi-Fi Direct by reusing wireless extension ioctls as well
59  *
60  * 05 11 2010 cp.wu
61  * [WPD00003831][MT6620 Wi-Fi] Add framework for Wi-Fi Direct support
62  * p2p ioctls revised.
63  *
64  * 05 10 2010 cp.wu
65  * [WPD00003831][MT6620 Wi-Fi] Add framework for Wi-Fi Direct support
66  * implement basic wi-fi direct framework
67  *
68  * 05 07 2010 cp.wu
69  * [WPD00003831][MT6620 Wi-Fi] Add framework for Wi-Fi Direct support
70  * add basic framework for implementating P2P driver hook.
71  *
72  *
73 */
74
75 #ifndef _P2P_H
76 #define _P2P_H
77
78 /*******************************************************************************
79 *                         C O M P I L E R   F L A G S
80 ********************************************************************************
81 */
82
83 /*******************************************************************************
84 *                    E X T E R N A L   R E F E R E N C E S
85 ********************************************************************************
86 */
87
88 /*******************************************************************************
89 *                              C O N S T A N T S
90 ********************************************************************************
91 */
92
93 // refer to 'Config Methods' in WPS
94 #define WPS_CONFIG_USBA                 0x0001
95 #define WPS_CONFIG_ETHERNET             0x0002
96 #define WPS_CONFIG_LABEL                0x0004
97 #define WPS_CONFIG_DISPLAY              0x0008
98 #define WPS_CONFIG_EXT_NFC              0x0010
99 #define WPS_CONFIG_INT_NFC              0x0020
100 #define WPS_CONFIG_NFC                  0x0040
101 #define WPS_CONFIG_PBC                  0x0080
102 #define WPS_CONFIG_KEYPAD               0x0100
103
104 // refer to 'Device Password ID' in WPS
105 #define WPS_DEV_PASSWORD_ID_PIN         0x0000
106 #define WPS_DEV_PASSWORD_ID_USER        0x0001
107 #define WPS_DEV_PASSWORD_ID_MACHINE     0x0002
108 #define WPS_DEV_PASSWORD_ID_REKEY       0x0003
109 #define WPS_DEV_PASSWORD_ID_PUSHBUTTON  0x0004
110 #define WPS_DEV_PASSWORD_ID_REGISTRAR   0x0005
111
112
113 #define P2P_DEVICE_TYPE_NUM         2
114 #define P2P_DEVICE_NAME_LENGTH      32
115 #define P2P_NETWORK_NUM             8
116 #define P2P_MEMBER_NUM              8
117
118 #define P2P_WILDCARD_SSID           "DIRECT-"
119
120 /*******************************************************************************
121 *                                 M A C R O S
122 ********************************************************************************
123 */
124
125 /*******************************************************************************
126 *                             D A T A   T Y P E S
127 ********************************************************************************
128 */
129
130 struct _P2P_INFO_T {
131     UINT_32 u4DeviceNum;
132     EVENT_P2P_DEV_DISCOVER_RESULT_T arP2pDiscoverResult[CFG_MAX_NUM_BSS_LIST];
133     PUINT_8 pucCurrIePtr;
134     UINT_8 aucCommIePool[CFG_MAX_COMMON_IE_BUF_LEN];   /* A common pool for IE of all scan results. */
135 };
136
137 typedef enum {
138     ENUM_P2P_PEER_GROUP,
139     ENUM_P2P_PEER_DEVICE,
140     ENUM_P2P_PEER_NUM
141 } ENUM_P2P_PEER_TYPE, *P_ENUM_P2P_PEER_TYPE;
142
143 typedef struct _P2P_DEVICE_INFO {
144     UINT_8              aucDevAddr[PARAM_MAC_ADDR_LEN];
145     UINT_8              aucIfAddr[PARAM_MAC_ADDR_LEN];
146     UINT_8              ucDevCapabilityBitmap;
147     INT_32              i4ConfigMethod;
148     UINT_8              aucPrimaryDeviceType[8];
149     UINT_8              aucSecondaryDeviceType[8];
150     UINT_8              aucDeviceName[P2P_DEVICE_NAME_LENGTH];
151 } P2P_DEVICE_INFO, *P_P2P_DEVICE_INFO;
152
153 typedef struct _P2P_GROUP_INFO {
154     PARAM_SSID_T        rGroupID;
155     P2P_DEVICE_INFO     rGroupOwnerInfo;
156     UINT_8              ucMemberNum;
157     P2P_DEVICE_INFO     arMemberInfo[P2P_MEMBER_NUM];
158 } P2P_GROUP_INFO, *P_P2P_GROUP_INFO;
159
160 typedef struct _P2P_NETWORK_INFO {
161     ENUM_P2P_PEER_TYPE      eNodeType;
162
163     union {
164         P2P_GROUP_INFO      rGroupInfo;
165         P2P_DEVICE_INFO     rDeviceInfo;
166     } node;
167
168 } P2P_NETWORK_INFO, *P_P2P_NETWORK_INFO;
169
170 typedef struct _P2P_NETWORK_LIST {
171     UINT_8                  ucNetworkNum;
172     P2P_NETWORK_INFO        rP2PNetworkInfo[P2P_NETWORK_NUM];
173 } P2P_NETWORK_LIST, *P_P2P_NETWORK_LIST;
174
175 typedef struct _P2P_DISCONNECT_INFO {
176     UINT_8                  ucRole;
177     UINT_8                  ucRsv[3];
178 } P2P_DISCONNECT_INFO, *P_P2P_DISCONNECT_INFO;
179
180 /*******************************************************************************
181 *                            P U B L I C   D A T A
182 ********************************************************************************
183 */
184
185 /*******************************************************************************
186 *                           P R I V A T E   D A T A
187 ********************************************************************************
188 */
189
190 /*******************************************************************************
191 *                  F U N C T I O N   D E C L A R A T I O N S
192 ********************************************************************************
193 */
194
195 #endif /*_P2P_H */