.. | .. |
---|
1 | | -/* SPDX-License-Identifier: GPL-2.0 */ |
---|
2 | 1 | /* |
---|
3 | | - * Copyright (C) 1999-2019, Broadcom Corporation |
---|
4 | | - * |
---|
| 2 | + * Portions of this code are copyright (c) 2022 Cypress Semiconductor Corporation |
---|
| 3 | + * |
---|
| 4 | + * Copyright (C) 1999-2017, Broadcom Corporation |
---|
| 5 | + * |
---|
5 | 6 | * Unless you and Broadcom execute a separate written software license |
---|
6 | 7 | * agreement governing use of this software, this software is licensed to you |
---|
7 | 8 | * under the terms of the GNU General Public License version 2 (the "GPL"), |
---|
8 | 9 | * available at http://www.broadcom.com/licenses/GPLv2.php, with the |
---|
9 | 10 | * following added to such license: |
---|
10 | | - * |
---|
| 11 | + * |
---|
11 | 12 | * As a special exception, the copyright holders of this software give you |
---|
12 | 13 | * permission to link this software with independent modules, and to copy and |
---|
13 | 14 | * distribute the resulting executable under terms of your choice, provided that |
---|
.. | .. |
---|
15 | 16 | * the license of that module. An independent module is a module which is not |
---|
16 | 17 | * derived from this software. The special exception does not apply to any |
---|
17 | 18 | * modifications of the software. |
---|
18 | | - * |
---|
| 19 | + * |
---|
19 | 20 | * Notwithstanding the above, under no circumstances may you combine this |
---|
20 | 21 | * software in any way with any other Broadcom software provided under a license |
---|
21 | 22 | * other than the GPL, without Broadcom's express prior written consent. |
---|
.. | .. |
---|
23 | 24 | * |
---|
24 | 25 | * <<Broadcom-WL-IPTag/Open:>> |
---|
25 | 26 | * |
---|
26 | | - * $Id: wlfc_proto.h 542895 2015-03-22 14:13:12Z $ |
---|
| 27 | + * $Id: wlfc_proto.h 692466 2017-03-28 07:48:19Z $ |
---|
27 | 28 | * |
---|
28 | 29 | */ |
---|
29 | 30 | |
---|
30 | 31 | /** WL flow control for PROP_TXSTATUS. Related to host AMPDU reordering. */ |
---|
31 | | - |
---|
32 | 32 | |
---|
33 | 33 | #ifndef __wlfc_proto_definitions_h__ |
---|
34 | 34 | #define __wlfc_proto_definitions_h__ |
---|
.. | .. |
---|
82 | 82 | --------------------------------------------------------------------------- |
---|
83 | 83 | */ |
---|
84 | 84 | |
---|
85 | | -#define WLFC_CTL_TYPE_MAC_OPEN 1 |
---|
86 | | -#define WLFC_CTL_TYPE_MAC_CLOSE 2 |
---|
87 | | -#define WLFC_CTL_TYPE_MAC_REQUEST_CREDIT 3 |
---|
88 | | -#define WLFC_CTL_TYPE_TXSTATUS 4 |
---|
89 | | -#define WLFC_CTL_TYPE_PKTTAG 5 /** host<->dongle */ |
---|
| 85 | +typedef enum { |
---|
| 86 | + WLFC_CTL_TYPE_MAC_OPEN = 1, |
---|
| 87 | + WLFC_CTL_TYPE_MAC_CLOSE = 2, |
---|
| 88 | + WLFC_CTL_TYPE_MAC_REQUEST_CREDIT = 3, |
---|
| 89 | + WLFC_CTL_TYPE_TXSTATUS = 4, |
---|
| 90 | + WLFC_CTL_TYPE_PKTTAG = 5, /** host<->dongle */ |
---|
90 | 91 | |
---|
91 | | -#define WLFC_CTL_TYPE_MACDESC_ADD 6 |
---|
92 | | -#define WLFC_CTL_TYPE_MACDESC_DEL 7 |
---|
93 | | -#define WLFC_CTL_TYPE_RSSI 8 |
---|
| 92 | + WLFC_CTL_TYPE_MACDESC_ADD = 6, |
---|
| 93 | + WLFC_CTL_TYPE_MACDESC_DEL = 7, |
---|
| 94 | + WLFC_CTL_TYPE_RSSI = 8, |
---|
94 | 95 | |
---|
95 | | -#define WLFC_CTL_TYPE_INTERFACE_OPEN 9 |
---|
96 | | -#define WLFC_CTL_TYPE_INTERFACE_CLOSE 10 |
---|
| 96 | + WLFC_CTL_TYPE_INTERFACE_OPEN = 9, |
---|
| 97 | + WLFC_CTL_TYPE_INTERFACE_CLOSE = 10, |
---|
97 | 98 | |
---|
98 | | -#define WLFC_CTL_TYPE_FIFO_CREDITBACK 11 |
---|
| 99 | + WLFC_CTL_TYPE_FIFO_CREDITBACK = 11, |
---|
99 | 100 | |
---|
100 | | -#define WLFC_CTL_TYPE_PENDING_TRAFFIC_BMP 12 /** host->dongle */ |
---|
101 | | -#define WLFC_CTL_TYPE_MAC_REQUEST_PACKET 13 |
---|
102 | | -#define WLFC_CTL_TYPE_HOST_REORDER_RXPKTS 14 |
---|
| 101 | + WLFC_CTL_TYPE_PENDING_TRAFFIC_BMP = 12, /** host->dongle */ |
---|
| 102 | + WLFC_CTL_TYPE_MAC_REQUEST_PACKET = 13, |
---|
| 103 | + WLFC_CTL_TYPE_HOST_REORDER_RXPKTS = 14, |
---|
103 | 104 | |
---|
104 | | -#define WLFC_CTL_TYPE_TX_ENTRY_STAMP 15 |
---|
105 | | -#define WLFC_CTL_TYPE_RX_STAMP 16 |
---|
106 | | -#define WLFC_CTL_TYPE_TX_STATUS_STAMP 17 /** obsolete */ |
---|
| 105 | + WLFC_CTL_TYPE_TX_ENTRY_STAMP = 15, |
---|
| 106 | + WLFC_CTL_TYPE_RX_STAMP = 16, |
---|
| 107 | + WLFC_CTL_TYPE_TX_STATUS_STAMP = 17, /** obsolete */ |
---|
107 | 108 | |
---|
108 | | -#define WLFC_CTL_TYPE_TRANS_ID 18 |
---|
109 | | -#define WLFC_CTL_TYPE_COMP_TXSTATUS 19 |
---|
| 109 | + WLFC_CTL_TYPE_TRANS_ID = 18, |
---|
| 110 | + WLFC_CTL_TYPE_COMP_TXSTATUS = 19, |
---|
110 | 111 | |
---|
111 | | -#define WLFC_CTL_TYPE_TID_OPEN 20 |
---|
112 | | -#define WLFC_CTL_TYPE_TID_CLOSE 21 |
---|
| 112 | + WLFC_CTL_TYPE_TID_OPEN = 20, |
---|
| 113 | + WLFC_CTL_TYPE_TID_CLOSE = 21, |
---|
| 114 | + WLFC_CTL_TYPE_UPD_FLR_WEIGHT = 22, |
---|
| 115 | + WLFC_CTL_TYPE_ENAB_FFSCH = 23, |
---|
| 116 | + WLFC_CTL_TYPE_UPDATE_FLAGS = 24, /* clear the flags set in flowring */ |
---|
| 117 | + WLFC_CTL_TYPE_CLEAR_SUPPR = 25, /* free the supression info in the flowring */ |
---|
113 | 118 | |
---|
| 119 | + WLFC_CTL_TYPE_FLOWID_OPEN = 26, |
---|
| 120 | + WLFC_CTL_TYPE_FLOWID_CLOSE = 27, |
---|
114 | 121 | |
---|
115 | | -#define WLFC_CTL_TYPE_FILLER 255 |
---|
| 122 | + WLFC_CTL_TYPE_FILLER = 255 |
---|
| 123 | +} wlfc_ctl_type_t; |
---|
| 124 | + |
---|
| 125 | +#define WLFC_CTL_VALUE_LEN_FLOWID 2 |
---|
116 | 126 | |
---|
117 | 127 | #define WLFC_CTL_VALUE_LEN_MACDESC 8 /** handle, interface, MAC */ |
---|
118 | 128 | |
---|
.. | .. |
---|
128 | 138 | |
---|
129 | 139 | #define WLFC_CTL_VALUE_LEN_SEQ 2 |
---|
130 | 140 | |
---|
| 141 | +/* Reset the flags set for the corresponding flowring of the SCB which is de-inited */ |
---|
| 142 | +/* FLOW_RING_FLAG_LAST_TIM | FLOW_RING_FLAG_INFORM_PKTPEND | FLOW_RING_FLAG_PKT_REQ */ |
---|
| 143 | +#define WLFC_RESET_ALL_FLAGS 0 |
---|
| 144 | +#define WLFC_CTL_VALUE_LEN_FLAGS 7 /** flags, MAC */ |
---|
| 145 | + |
---|
| 146 | +/* free the data stored to be used for suppressed packets in future */ |
---|
| 147 | +#define WLFC_CTL_VALUE_LEN_SUPR 7 /** tid, MAC */ |
---|
| 148 | + |
---|
131 | 149 | /* The high bits of ratespec report in timestamp are used for various status */ |
---|
132 | 150 | #define WLFC_TSFLAGS_RX_RETRY (1 << 31) |
---|
133 | 151 | #define WLFC_TSFLAGS_PM_ENABLED (1 << 30) |
---|
.. | .. |
---|
139 | 157 | #define WLFC_CTL_VALUE_LEN_REQUEST_CREDIT 3 /* credit, MAC-handle, prec_bitmap */ |
---|
140 | 158 | #define WLFC_CTL_VALUE_LEN_REQUEST_PACKET 3 /* credit, MAC-handle, prec_bitmap */ |
---|
141 | 159 | |
---|
142 | | - |
---|
143 | 160 | #define WLFC_PKTFLAG_PKTFROMHOST 0x01 |
---|
144 | 161 | #define WLFC_PKTFLAG_PKT_REQUESTED 0x02 |
---|
| 162 | +#define WLFC_PKTFLAG_PKT_SENDTOHOST 0x04 |
---|
145 | 163 | |
---|
146 | 164 | #define WL_TXSTATUS_STATUS_MASK 0xff /* allow 8 bits */ |
---|
147 | 165 | #define WL_TXSTATUS_STATUS_SHIFT 24 |
---|
.. | .. |
---|
206 | 224 | ((ctr) & WL_TXSTATUS_FREERUNCTR_MASK)) |
---|
207 | 225 | #define WL_TXSTATUS_GET_FREERUNCTR(x) ((x)& WL_TXSTATUS_FREERUNCTR_MASK) |
---|
208 | 226 | |
---|
209 | | -/* Seq number part of AMSDU */ |
---|
| 227 | +/* AMSDU part of d11 seq number */ |
---|
210 | 228 | #define WL_SEQ_AMSDU_MASK 0x1 /* allow 1 bit */ |
---|
211 | 229 | #define WL_SEQ_AMSDU_SHIFT 14 |
---|
212 | 230 | #define WL_SEQ_SET_AMSDU(x, val) ((x) = \ |
---|
213 | 231 | ((x) & ~(WL_SEQ_AMSDU_MASK << WL_SEQ_AMSDU_SHIFT)) | \ |
---|
214 | | - (((val) & WL_SEQ_AMSDU_MASK) << WL_SEQ_AMSDU_SHIFT)) |
---|
215 | | -#define WL_SEQ_GET_AMSDU(x) (((x) >> WL_SEQ_AMSDU_SHIFT) & \ |
---|
216 | | - WL_SEQ_AMSDU_MASK) |
---|
| 232 | + (((val) & WL_SEQ_AMSDU_MASK) << WL_SEQ_AMSDU_SHIFT)) /**< sets a single AMSDU bit */ |
---|
| 233 | +/** returns TRUE if ring item is AMSDU (seq = d11 seq nr) */ |
---|
| 234 | +#define WL_SEQ_IS_AMSDU(x) (((x) >> WL_SEQ_AMSDU_SHIFT) & \ |
---|
| 235 | + WL_SEQ_AMSDU_MASK) |
---|
217 | 236 | |
---|
218 | | -/* Seq number is valid coming from FW */ |
---|
| 237 | +/* indicates last_suppr_seq is valid */ |
---|
| 238 | +#define WL_SEQ_VALIDSUPPR_MASK 0x1 /* allow 1 bit */ |
---|
| 239 | +#define WL_SEQ_VALIDSUPPR_SHIFT 12 |
---|
| 240 | +#define WL_SEQ_SET_VALIDSUPPR(x, val) ((x) = \ |
---|
| 241 | + ((x) & ~(WL_SEQ_VALIDSUPPR_MASK << WL_SEQ_VALIDSUPPR_SHIFT)) | \ |
---|
| 242 | + (((val) & WL_SEQ_VALIDSUPPR_MASK) << WL_SEQ_VALIDSUPPR_SHIFT)) |
---|
| 243 | +#define WL_SEQ_GET_VALIDSUPPR(x) (((x) >> WL_SEQ_VALIDSUPPR_SHIFT) & \ |
---|
| 244 | + WL_SEQ_VALIDSUPPR_MASK) |
---|
| 245 | + |
---|
219 | 246 | #define WL_SEQ_FROMFW_MASK 0x1 /* allow 1 bit */ |
---|
220 | 247 | #define WL_SEQ_FROMFW_SHIFT 13 |
---|
221 | 248 | #define WL_SEQ_SET_FROMFW(x, val) ((x) = \ |
---|
222 | 249 | ((x) & ~(WL_SEQ_FROMFW_MASK << WL_SEQ_FROMFW_SHIFT)) | \ |
---|
223 | 250 | (((val) & WL_SEQ_FROMFW_MASK) << WL_SEQ_FROMFW_SHIFT)) |
---|
224 | | -#define WL_SEQ_GET_FROMFW(x) (((x) >> WL_SEQ_FROMFW_SHIFT) & \ |
---|
225 | | - WL_SEQ_FROMFW_MASK) |
---|
| 251 | +/** Set when firmware assigns D11 sequence number to packet */ |
---|
| 252 | +#define SET_WL_HAS_ASSIGNED_SEQ(x) WL_SEQ_SET_FROMFW((x), 1) |
---|
| 253 | + |
---|
| 254 | +/** returns TRUE if packet has been assigned a d11 seq number by the WL firmware layer */ |
---|
| 255 | +#define GET_WL_HAS_ASSIGNED_SEQ(x) (((x) >> WL_SEQ_FROMFW_SHIFT) & WL_SEQ_FROMFW_MASK) |
---|
226 | 256 | |
---|
227 | 257 | /** |
---|
228 | 258 | * Proptxstatus related. |
---|
229 | 259 | * |
---|
230 | | - * Pkt from bus layer (DHD for SDIO and pciedev for PCIE) |
---|
231 | | - * is re-using seq number previously suppressed |
---|
232 | | - * so FW should not assign new one |
---|
| 260 | + * When a packet is suppressed by WL or the D11 core, the packet has to be retried. Assigning |
---|
| 261 | + * a new d11 sequence number for the packet when retrying would cause the peer to be unable to |
---|
| 262 | + * reorder the packets within an AMPDU. So, suppressed packet from bus layer (DHD for SDIO and |
---|
| 263 | + * pciedev for PCIE) is re-using d11 seq number, so FW should not assign a new one. |
---|
233 | 264 | */ |
---|
234 | 265 | #define WL_SEQ_FROMDRV_MASK 0x1 /* allow 1 bit */ |
---|
235 | 266 | #define WL_SEQ_FROMDRV_SHIFT 12 |
---|
236 | | -#define WL_SEQ_SET_FROMDRV(x, val) ((x) = \ |
---|
| 267 | + |
---|
| 268 | +/** |
---|
| 269 | + * Proptxstatus, host or fw PCIe layer requests WL layer to reuse d11 seq no. Bit is reset by WL |
---|
| 270 | + * subsystem when it reuses the seq number. |
---|
| 271 | + */ |
---|
| 272 | +#define WL_SEQ_SET_REUSE(x, val) ((x) = \ |
---|
237 | 273 | ((x) & ~(WL_SEQ_FROMDRV_MASK << WL_SEQ_FROMDRV_SHIFT)) | \ |
---|
238 | 274 | (((val) & WL_SEQ_FROMDRV_MASK) << WL_SEQ_FROMDRV_SHIFT)) |
---|
239 | | -#define WL_SEQ_GET_FROMDRV(x) (((x) >> WL_SEQ_FROMDRV_SHIFT) & \ |
---|
| 275 | +#define SET_WL_TO_REUSE_SEQ(x) WL_SEQ_SET_REUSE((x), 1) |
---|
| 276 | +#define RESET_WL_TO_REUSE_SEQ(x) WL_SEQ_SET_REUSE((x), 0) |
---|
| 277 | + |
---|
| 278 | +/** Proptxstatus, related to reuse of d11 seq numbers when retransmitting */ |
---|
| 279 | +#define IS_WL_TO_REUSE_SEQ(x) (((x) >> WL_SEQ_FROMDRV_SHIFT) & \ |
---|
240 | 280 | WL_SEQ_FROMDRV_MASK) |
---|
241 | 281 | |
---|
242 | 282 | #define WL_SEQ_NUM_MASK 0xfff /* allow 12 bit */ |
---|
243 | 283 | #define WL_SEQ_NUM_SHIFT 0 |
---|
| 284 | +/** Proptxstatus, sets d11seq no in pkt tag, related to reuse of d11seq no when retransmitting */ |
---|
244 | 285 | #define WL_SEQ_SET_NUM(x, val) ((x) = \ |
---|
245 | 286 | ((x) & ~(WL_SEQ_NUM_MASK << WL_SEQ_NUM_SHIFT)) | \ |
---|
246 | 287 | (((val) & WL_SEQ_NUM_MASK) << WL_SEQ_NUM_SHIFT)) |
---|
| 288 | +/** Proptxstatus, gets d11seq no from pkt tag, related to reuse of d11seq no when retransmitting */ |
---|
247 | 289 | #define WL_SEQ_GET_NUM(x) (((x) >> WL_SEQ_NUM_SHIFT) & \ |
---|
248 | 290 | WL_SEQ_NUM_MASK) |
---|
249 | 291 | |
---|
.. | .. |
---|
265 | 307 | #define WLFC_PKTFLAG_CLR_PKTREQUESTED(x) (x) &= \ |
---|
266 | 308 | ~(WLFC_PKTFLAG_PKT_REQUESTED << WL_TXSTATUS_FLAGS_SHIFT) |
---|
267 | 309 | |
---|
268 | | - |
---|
269 | 310 | #define WLFC_MAX_PENDING_DATALEN 120 |
---|
270 | 311 | |
---|
271 | 312 | /* host is free to discard the packet */ |
---|
.. | .. |
---|
282 | 323 | #define WLFC_CTL_PKTFLAG_DISCARD_NOACK 4 |
---|
283 | 324 | /* Firmware wrongly reported suppressed previously,now fixing to acked */ |
---|
284 | 325 | #define WLFC_CTL_PKTFLAG_SUPPRESS_ACKED 5 |
---|
285 | | - |
---|
286 | | -#define WLFC_D11_STATUS_INTERPRET(txs) \ |
---|
287 | | - ((txs)->status.was_acked ? WLFC_CTL_PKTFLAG_DISCARD : \ |
---|
288 | | - (TXS_SUPR_MAGG_DONE((txs)->status.suppr_ind) ? \ |
---|
289 | | - WLFC_CTL_PKTFLAG_DISCARD_NOACK : WLFC_CTL_PKTFLAG_D11SUPPRESS)) |
---|
290 | | - |
---|
| 326 | +/* Firmware send this packet expired, lifetime expiration */ |
---|
| 327 | +#define WLFC_CTL_PKTFLAG_EXPIRED 6 |
---|
| 328 | +/* Firmware drop this packet for any other reason */ |
---|
| 329 | +#define WLFC_CTL_PKTFLAG_DROPPED 7 |
---|
| 330 | +/* Firmware free this packet */ |
---|
| 331 | +#define WLFC_CTL_PKTFLAG_MKTFREE 8 |
---|
| 332 | +#define WLFC_CTL_PKTFLAG_MASK (0x0f) /* For 4-bit mask with one extra bit */ |
---|
291 | 333 | |
---|
292 | 334 | #ifdef PROP_TXSTATUS_DEBUG |
---|
293 | 335 | #define WLFC_DBGMESG(x) printf x |
---|
294 | 336 | /* wlfc-breadcrumb */ |
---|
295 | 337 | #define WLFC_BREADCRUMB(x) do {if ((x) == NULL) \ |
---|
296 | 338 | {printf("WLFC: %s():%d:caller:%p\n", \ |
---|
297 | | - __FUNCTION__, __LINE__, __builtin_return_address(0));}} while (0) |
---|
298 | | -#define WLFC_PRINTMAC(banner, ea) do {printf("%s MAC: [%02x:%02x:%02x:%02x:%02x:%02x]\n", \ |
---|
299 | | - banner, ea[0], ea[1], ea[2], ea[3], ea[4], ea[5]); } while (0) |
---|
| 339 | + __FUNCTION__, __LINE__, CALL_SITE);}} while (0) |
---|
300 | 340 | #define WLFC_WHEREIS(s) printf("WLFC: at %s():%d, %s\n", __FUNCTION__, __LINE__, (s)) |
---|
301 | 341 | #else |
---|
302 | 342 | #define WLFC_DBGMESG(x) |
---|
303 | 343 | #define WLFC_BREADCRUMB(x) |
---|
304 | | -#define WLFC_PRINTMAC(banner, ea) |
---|
305 | 344 | #define WLFC_WHEREIS(s) |
---|
306 | | -#endif |
---|
| 345 | +#endif /* PROP_TXSTATUS_DEBUG */ |
---|
307 | 346 | |
---|
308 | 347 | /* AMPDU host reorder packet flags */ |
---|
309 | 348 | #define WLHOST_REORDERDATA_MAXFLOWS 256 |
---|
.. | .. |
---|
334 | 373 | #define WLFC_SET_AFQ(x, val) ((x) = \ |
---|
335 | 374 | ((x) & ~(1 << WLFC_MODE_AFQ_SHIFT)) | \ |
---|
336 | 375 | (((val) & 1) << WLFC_MODE_AFQ_SHIFT)) |
---|
| 376 | +/** returns TRUE if firmware supports 'at firmware queue' feature */ |
---|
337 | 377 | #define WLFC_GET_AFQ(x) (((x) >> WLFC_MODE_AFQ_SHIFT) & 1) |
---|
338 | 378 | |
---|
339 | 379 | #define WLFC_MODE_REUSESEQ_SHIFT 3 /* seq reuse bit */ |
---|
340 | 380 | #define WLFC_SET_REUSESEQ(x, val) ((x) = \ |
---|
341 | 381 | ((x) & ~(1 << WLFC_MODE_REUSESEQ_SHIFT)) | \ |
---|
342 | 382 | (((val) & 1) << WLFC_MODE_REUSESEQ_SHIFT)) |
---|
| 383 | + |
---|
| 384 | +/** returns TRUE if 'd11 sequence reuse' has been agreed upon between host and dongle */ |
---|
| 385 | +#if defined(BCMPCIEDEV_ENABLED) && !defined(ROM_ENAB_RUNTIME_CHECK) |
---|
| 386 | +/* GET_REUSESEQ is always TRUE in pciedev */ |
---|
| 387 | +#define WLFC_GET_REUSESEQ(x) (TRUE) |
---|
| 388 | +#else |
---|
343 | 389 | #define WLFC_GET_REUSESEQ(x) (((x) >> WLFC_MODE_REUSESEQ_SHIFT) & 1) |
---|
| 390 | +#endif /* defined(BCMPCIEDEV_ENABLED) && !defined(ROM_ENAB_RUNTIME_CHECK) */ |
---|
344 | 391 | |
---|
345 | 392 | #define WLFC_MODE_REORDERSUPP_SHIFT 4 /* host reorder suppress pkt bit */ |
---|
346 | 393 | #define WLFC_SET_REORDERSUPP(x, val) ((x) = \ |
---|
347 | 394 | ((x) & ~(1 << WLFC_MODE_REORDERSUPP_SHIFT)) | \ |
---|
348 | 395 | (((val) & 1) << WLFC_MODE_REORDERSUPP_SHIFT)) |
---|
| 396 | +/** returns TRUE if 'reorder suppress' has been agreed upon between host and dongle */ |
---|
349 | 397 | #define WLFC_GET_REORDERSUPP(x) (((x) >> WLFC_MODE_REORDERSUPP_SHIFT) & 1) |
---|
350 | 398 | |
---|
| 399 | +#define FLOW_RING_CREATE 1 |
---|
| 400 | +#define FLOW_RING_DELETE 2 |
---|
| 401 | +#define FLOW_RING_FLUSH 3 |
---|
| 402 | +#define FLOW_RING_OPEN 4 |
---|
| 403 | +#define FLOW_RING_CLOSED 5 |
---|
| 404 | +#define FLOW_RING_FLUSHED 6 |
---|
| 405 | +#define FLOW_RING_TIM_SET 7 |
---|
| 406 | +#define FLOW_RING_TIM_RESET 8 |
---|
| 407 | +#define FLOW_RING_FLUSH_TXFIFO 9 |
---|
| 408 | +#define FLOW_RING_GET_PKT_MAX 10 |
---|
| 409 | +#define FLOW_RING_RESET_WEIGHT 11 |
---|
| 410 | +#define FLOW_RING_UPD_PRIOMAP 12 |
---|
| 411 | + |
---|
| 412 | +/* bit 7, indicating if is TID(1) or AC(0) mapped info in tid field) */ |
---|
| 413 | +#define PCIEDEV_IS_AC_TID_MAP_MASK 0x80 |
---|
| 414 | + |
---|
351 | 415 | #endif /* __wlfc_proto_definitions_h__ */ |
---|