1 /* SPDX-License-Identifier: GPL-2.0 */
2 #include "halmac_88xx_cfg.h"
3
4 /**
5 * halmac_init_usb_cfg_88xx() - init USB related register
6 * @pHalmac_adapter
7 * Author : KaiYuan Chang
8 * Return : HALMAC_RET_STATUS
9 */
10 HALMAC_RET_STATUS
halmac_init_usb_cfg_88xx(IN PHALMAC_ADAPTER pHalmac_adapter)11 halmac_init_usb_cfg_88xx(
12 IN PHALMAC_ADAPTER pHalmac_adapter
13 )
14 {
15 VOID *pDriver_adapter = NULL;
16 u8 value8 = 0;
17
18 if (HALMAC_RET_SUCCESS != halmac_adapter_validate(pHalmac_adapter))
19 return HALMAC_RET_ADAPTER_INVALID;
20
21 if (HALMAC_RET_SUCCESS != halmac_api_validate(pHalmac_adapter))
22 return HALMAC_RET_API_INVALID;
23
24 halmac_api_record_id_88xx(pHalmac_adapter, HALMAC_API_INIT_USB_CFG);
25
26 pDriver_adapter = pHalmac_adapter->pDriver_adapter;
27
28 PLATFORM_MSG_PRINT(pDriver_adapter, HALMAC_MSG_INIT, HALMAC_DBG_TRACE, "halmac_init_usb_cfg_88xx ==========>\n");
29
30 value8 |= (BIT_DMA_MODE | (0x3 << BIT_SHIFT_BURST_CNT)); /* burst number = 4 */
31
32 if (PLATFORM_REG_READ_8(pDriver_adapter, REG_SYS_CFG2 + 3) == 0x20) { /* usb3.0 */
33 value8 |= (HALMAC_USB_BURST_SIZE_3_0 << BIT_SHIFT_BURST_SIZE);
34 } else {
35 if ((PLATFORM_REG_READ_8(pDriver_adapter, REG_USB_USBSTAT) & 0x3) == 0x1) /* usb2.0 */
36 value8 |= HALMAC_USB_BURST_SIZE_2_0_HSPEED << BIT_SHIFT_BURST_SIZE;
37 else /* usb1.1 */
38 value8 |= HALMAC_USB_BURST_SIZE_2_0_FSPEED << BIT_SHIFT_BURST_SIZE;
39 }
40
41 PLATFORM_REG_WRITE_8(pDriver_adapter, REG_RXDMA_MODE, value8);
42 PLATFORM_REG_WRITE_16(pDriver_adapter, REG_TXDMA_OFFSET_CHK, PLATFORM_REG_READ_16(pDriver_adapter, REG_TXDMA_OFFSET_CHK) | BIT_DROP_DATA_EN);
43
44 PLATFORM_MSG_PRINT(pDriver_adapter, HALMAC_MSG_INIT, HALMAC_DBG_TRACE, "halmac_init_usb_cfg_88xx <==========\n");
45
46 return HALMAC_RET_SUCCESS;
47 }
48
49 /**
50 * halmac_deinit_usb_cfg_88xx() - init USB related register
51 * @pHalmac_adapter
52 * Author : KaiYuan Chang
53 * Return : HALMAC_RET_STATUS
54 */
55 HALMAC_RET_STATUS
halmac_deinit_usb_cfg_88xx(IN PHALMAC_ADAPTER pHalmac_adapter)56 halmac_deinit_usb_cfg_88xx(
57 IN PHALMAC_ADAPTER pHalmac_adapter
58 )
59 {
60 VOID *pDriver_adapter = NULL;
61
62 if (HALMAC_RET_SUCCESS != halmac_adapter_validate(pHalmac_adapter))
63 return HALMAC_RET_ADAPTER_INVALID;
64
65 if (HALMAC_RET_SUCCESS != halmac_api_validate(pHalmac_adapter))
66 return HALMAC_RET_API_INVALID;
67
68 halmac_api_record_id_88xx(pHalmac_adapter, HALMAC_API_DEINIT_USB_CFG);
69
70 pDriver_adapter = pHalmac_adapter->pDriver_adapter;
71
72 PLATFORM_MSG_PRINT(pDriver_adapter, HALMAC_MSG_INIT, HALMAC_DBG_TRACE, "halmac_deinit_usb_cfg_88xx ==========>\n");
73
74 PLATFORM_MSG_PRINT(pDriver_adapter, HALMAC_MSG_INIT, HALMAC_DBG_TRACE, "halmac_deinit_usb_cfg_88xx <==========\n");
75
76 return HALMAC_RET_SUCCESS;
77 }
78
79 /**
80 * halmac_cfg_rx_aggregation_88xx_usb() - config rx aggregation
81 * @pHalmac_adapter
82 * @halmac_rx_agg_mode
83 * Author : KaiYuan Chang
84 * Return : HALMAC_RET_STATUS
85 */
86 HALMAC_RET_STATUS
halmac_cfg_rx_aggregation_88xx_usb(IN PHALMAC_ADAPTER pHalmac_adapter,IN PHALMAC_RXAGG_CFG phalmac_rxagg_cfg)87 halmac_cfg_rx_aggregation_88xx_usb(
88 IN PHALMAC_ADAPTER pHalmac_adapter,
89 IN PHALMAC_RXAGG_CFG phalmac_rxagg_cfg
90 )
91 {
92 u8 dma_usb_agg;
93 u8 size = 0, timeout = 0, agg_enable = 0;
94 VOID *pDriver_adapter = NULL;
95 PHALMAC_API pHalmac_api;
96
97 if (HALMAC_RET_SUCCESS != halmac_adapter_validate(pHalmac_adapter))
98 return HALMAC_RET_ADAPTER_INVALID;
99
100 if (HALMAC_RET_SUCCESS != halmac_api_validate(pHalmac_adapter))
101 return HALMAC_RET_API_INVALID;
102
103 halmac_api_record_id_88xx(pHalmac_adapter, HALMAC_API_CFG_RX_AGGREGATION);
104
105 pDriver_adapter = pHalmac_adapter->pDriver_adapter;
106 pHalmac_api = (PHALMAC_API)pHalmac_adapter->pHalmac_api;
107
108 PLATFORM_MSG_PRINT(pDriver_adapter, HALMAC_MSG_INIT, HALMAC_DBG_TRACE, "halmac_cfg_rx_aggregation_88xx_usb ==========>\n");
109
110 dma_usb_agg = HALMAC_REG_READ_8(pHalmac_adapter, REG_RXDMA_AGG_PG_TH + 3);
111 agg_enable = HALMAC_REG_READ_8(pHalmac_adapter, REG_TXDMA_PQ_MAP);
112
113 switch (phalmac_rxagg_cfg->mode) {
114 case HALMAC_RX_AGG_MODE_NONE:
115 agg_enable &= ~BIT_RXDMA_AGG_EN;
116 break;
117 case HALMAC_RX_AGG_MODE_DMA:
118 agg_enable |= BIT_RXDMA_AGG_EN;
119 dma_usb_agg |= BIT(7);
120 break;
121
122 case HALMAC_RX_AGG_MODE_USB:
123 agg_enable |= BIT_RXDMA_AGG_EN;
124 dma_usb_agg &= ~BIT(7);
125 break;
126 default:
127 PLATFORM_MSG_PRINT(pDriver_adapter, HALMAC_MSG_INIT, HALMAC_DBG_ERR, "halmac_cfg_rx_aggregation_88xx_usb switch case not support\n");
128 agg_enable &= ~BIT_RXDMA_AGG_EN;
129 break;
130 }
131
132 if (_FALSE == phalmac_rxagg_cfg->threshold.drv_define) {
133 if (PLATFORM_REG_READ_8(pDriver_adapter, REG_SYS_CFG2 + 3) == 0x20) {
134 /* usb3.0 */
135 size = 0x5;
136 timeout = 0xA;
137 } else {
138 /* usb2.0 */
139 size = 0x5;
140 timeout = 0x20;
141 }
142 } else {
143 size = phalmac_rxagg_cfg->threshold.size;
144 timeout = phalmac_rxagg_cfg->threshold.timeout;
145 }
146
147 HALMAC_REG_WRITE_8(pHalmac_adapter, REG_TXDMA_PQ_MAP, agg_enable);
148 HALMAC_REG_WRITE_8(pHalmac_adapter, REG_RXDMA_AGG_PG_TH + 3, dma_usb_agg);
149 HALMAC_REG_WRITE_16(pHalmac_adapter, REG_RXDMA_AGG_PG_TH, (u16)(size | (timeout << BIT_SHIFT_DMA_AGG_TO)));
150
151 PLATFORM_MSG_PRINT(pDriver_adapter, HALMAC_MSG_INIT, HALMAC_DBG_TRACE, "halmac_cfg_rx_aggregation_88xx_usb <==========\n");
152
153 return HALMAC_RET_SUCCESS;
154 }
155
156 /**
157 * halmac_reg_read_8_usb_88xx() - read 1byte register
158 * @pHalmac_adapter
159 * @halmac_offset
160 * Author : KaiYuan Chang
161 * Return : HALMAC_RET_STATUS
162 */
163 u8
halmac_reg_read_8_usb_88xx(IN PHALMAC_ADAPTER pHalmac_adapter,IN u32 halmac_offset)164 halmac_reg_read_8_usb_88xx(
165 IN PHALMAC_ADAPTER pHalmac_adapter,
166 IN u32 halmac_offset
167 )
168 {
169 u8 value8;
170 VOID *pDriver_adapter = NULL;
171 PHALMAC_API pHalmac_api;
172
173 if (HALMAC_RET_SUCCESS != halmac_adapter_validate(pHalmac_adapter))
174 return HALMAC_RET_ADAPTER_INVALID;
175
176 if (HALMAC_RET_SUCCESS != halmac_api_validate(pHalmac_adapter))
177 return HALMAC_RET_API_INVALID;
178
179 pDriver_adapter = pHalmac_adapter->pDriver_adapter;
180 pHalmac_api = (PHALMAC_API)pHalmac_adapter->pHalmac_api;
181
182 /* PLATFORM_MSG_PRINT(pDriver_adapter, HALMAC_MSG_INIT, HALMAC_DBG_TRACE, "halmac_reg_read_8_usb_88xx ==========>\n"); */
183
184 value8 = PLATFORM_REG_READ_8(pDriver_adapter, halmac_offset);
185
186 /* PLATFORM_MSG_PRINT(pDriver_adapter, HALMAC_MSG_INIT, HALMAC_DBG_TRACE, "halmac_reg_read_8_usb_88xx <==========\n"); */
187
188 return value8;
189 }
190
191 /**
192 * halmac_reg_write_8_usb_88xx() - write 1byte register
193 * @pHalmac_adapter
194 * @halmac_offset
195 * @halmac_data
196 * Author : KaiYuan Chang
197 * Return : HALMAC_RET_STATUS
198 */
199 HALMAC_RET_STATUS
halmac_reg_write_8_usb_88xx(IN PHALMAC_ADAPTER pHalmac_adapter,IN u32 halmac_offset,IN u8 halmac_data)200 halmac_reg_write_8_usb_88xx(
201 IN PHALMAC_ADAPTER pHalmac_adapter,
202 IN u32 halmac_offset,
203 IN u8 halmac_data
204 )
205 {
206 VOID *pDriver_adapter = NULL;
207 PHALMAC_API pHalmac_api;
208
209 if (HALMAC_RET_SUCCESS != halmac_adapter_validate(pHalmac_adapter))
210 return HALMAC_RET_ADAPTER_INVALID;
211
212 if (HALMAC_RET_SUCCESS != halmac_api_validate(pHalmac_adapter))
213 return HALMAC_RET_API_INVALID;
214
215 pDriver_adapter = pHalmac_adapter->pDriver_adapter;
216 pHalmac_api = (PHALMAC_API)pHalmac_adapter->pHalmac_api;
217
218
219 /* PLATFORM_MSG_PRINT(pDriver_adapter, HALMAC_MSG_INIT, HALMAC_DBG_TRACE, "halmac_reg_write_8_usb_88xx ==========>\n"); */
220
221 PLATFORM_REG_WRITE_8(pDriver_adapter, halmac_offset, halmac_data);
222
223 /* PLATFORM_MSG_PRINT(pDriver_adapter, HALMAC_MSG_INIT, HALMAC_DBG_TRACE, "halmac_reg_write_8_usb_88xx <==========\n"); */
224
225 return HALMAC_RET_SUCCESS;
226 }
227
228 /**
229 * halmac_reg_read_16_usb_88xx() - read 2byte register
230 * @pHalmac_adapter
231 * @halmac_offset
232 * Author : KaiYuan Chang
233 * Return : HALMAC_RET_STATUS
234 */
235 u16
halmac_reg_read_16_usb_88xx(IN PHALMAC_ADAPTER pHalmac_adapter,IN u32 halmac_offset)236 halmac_reg_read_16_usb_88xx(
237 IN PHALMAC_ADAPTER pHalmac_adapter,
238 IN u32 halmac_offset
239 )
240 {
241 VOID *pDriver_adapter = NULL;
242 PHALMAC_API pHalmac_api;
243
244 union {
245 u16 word;
246 u8 byte[2];
247 } value16 = { 0x0000 };
248
249 if (HALMAC_RET_SUCCESS != halmac_adapter_validate(pHalmac_adapter))
250 return HALMAC_RET_ADAPTER_INVALID;
251
252 if (HALMAC_RET_SUCCESS != halmac_api_validate(pHalmac_adapter))
253 return HALMAC_RET_API_INVALID;
254
255 pDriver_adapter = pHalmac_adapter->pDriver_adapter;
256 pHalmac_api = (PHALMAC_API)pHalmac_adapter->pHalmac_api;
257
258 /* PLATFORM_MSG_PRINT(pDriver_adapter, HALMAC_MSG_INIT, HALMAC_DBG_TRACE, "halmac_reg_read_16_usb_88xx ==========>\n"); */
259
260 value16.word = PLATFORM_REG_READ_16(pDriver_adapter, halmac_offset);
261
262 /* PLATFORM_MSG_PRINT(pDriver_adapter, HALMAC_MSG_INIT, HALMAC_DBG_TRACE, "halmac_reg_read_16_usb_88xx <==========\n"); */
263
264 return value16.word;
265 }
266
267 /**
268 * halmac_reg_write_16_usb_88xx() - write 2byte register
269 * @pHalmac_adapter
270 * @halmac_offset
271 * @halmac_data
272 * Author : KaiYuan Chang
273 * Return : HALMAC_RET_STATUS
274 */
275 HALMAC_RET_STATUS
halmac_reg_write_16_usb_88xx(IN PHALMAC_ADAPTER pHalmac_adapter,IN u32 halmac_offset,IN u16 halmac_data)276 halmac_reg_write_16_usb_88xx(
277 IN PHALMAC_ADAPTER pHalmac_adapter,
278 IN u32 halmac_offset,
279 IN u16 halmac_data
280 )
281 {
282 VOID *pDriver_adapter = NULL;
283 PHALMAC_API pHalmac_api;
284
285 if (HALMAC_RET_SUCCESS != halmac_adapter_validate(pHalmac_adapter))
286 return HALMAC_RET_ADAPTER_INVALID;
287
288 if (HALMAC_RET_SUCCESS != halmac_api_validate(pHalmac_adapter))
289 return HALMAC_RET_API_INVALID;
290
291 pDriver_adapter = pHalmac_adapter->pDriver_adapter;
292 pHalmac_api = (PHALMAC_API)pHalmac_adapter->pHalmac_api;
293
294 /* PLATFORM_MSG_PRINT(pDriver_adapter, HALMAC_MSG_INIT, HALMAC_DBG_TRACE, "halmac_reg_write_16_usb_88xx ==========>\n"); */
295
296 PLATFORM_REG_WRITE_16(pDriver_adapter, halmac_offset, halmac_data);
297
298 /* PLATFORM_MSG_PRINT(pDriver_adapter, HALMAC_MSG_INIT, HALMAC_DBG_TRACE, "halmac_reg_write_16_usb_88xx <==========\n"); */
299
300 return HALMAC_RET_SUCCESS;
301 }
302
303 /**
304 * halmac_reg_read_32_usb_88xx() - read 4byte register
305 * @pHalmac_adapter
306 * @halmac_offset
307 * Author : KaiYuan Chang
308 * Return : HALMAC_RET_STATUS
309 */
310 u32
halmac_reg_read_32_usb_88xx(IN PHALMAC_ADAPTER pHalmac_adapter,IN u32 halmac_offset)311 halmac_reg_read_32_usb_88xx(
312 IN PHALMAC_ADAPTER pHalmac_adapter,
313 IN u32 halmac_offset
314 )
315 {
316 VOID *pDriver_adapter = NULL;
317 PHALMAC_API pHalmac_api;
318
319 union {
320 u32 dword;
321 u8 byte[4];
322 } value32 = { 0x00000000 };
323
324 if (HALMAC_RET_SUCCESS != halmac_adapter_validate(pHalmac_adapter))
325 return HALMAC_RET_ADAPTER_INVALID;
326
327 if (HALMAC_RET_SUCCESS != halmac_api_validate(pHalmac_adapter))
328 return HALMAC_RET_API_INVALID;
329
330 pDriver_adapter = pHalmac_adapter->pDriver_adapter;
331 pHalmac_api = (PHALMAC_API)pHalmac_adapter->pHalmac_api;
332
333 /* PLATFORM_MSG_PRINT(pDriver_adapter, HALMAC_MSG_INIT, HALMAC_DBG_TRACE, "halmac_reg_read_32_usb_88xx ==========>\n"); */
334
335 value32.dword = PLATFORM_REG_READ_32(pDriver_adapter, halmac_offset);
336
337 /* PLATFORM_MSG_PRINT(pDriver_adapter, HALMAC_MSG_INIT, HALMAC_DBG_TRACE, "halmac_reg_read_32_usb_88xx <==========\n"); */
338
339 return value32.dword;
340 }
341
342 /**
343 * halmac_reg_write_32_usb_88xx() - write 4byte register
344 * @pHalmac_adapter
345 * @halmac_offset
346 * @halmac_data
347 * Author : KaiYuan Chang
348 * Return : HALMAC_RET_STATUS
349 */
350 HALMAC_RET_STATUS
halmac_reg_write_32_usb_88xx(IN PHALMAC_ADAPTER pHalmac_adapter,IN u32 halmac_offset,IN u32 halmac_data)351 halmac_reg_write_32_usb_88xx(
352 IN PHALMAC_ADAPTER pHalmac_adapter,
353 IN u32 halmac_offset,
354 IN u32 halmac_data
355 )
356 {
357 VOID *pDriver_adapter = NULL;
358 PHALMAC_API pHalmac_api;
359
360 if (HALMAC_RET_SUCCESS != halmac_adapter_validate(pHalmac_adapter))
361 return HALMAC_RET_ADAPTER_INVALID;
362
363 if (HALMAC_RET_SUCCESS != halmac_api_validate(pHalmac_adapter))
364 return HALMAC_RET_API_INVALID;
365
366 pDriver_adapter = pHalmac_adapter->pDriver_adapter;
367 pHalmac_api = (PHALMAC_API)pHalmac_adapter->pHalmac_api;
368
369 /* PLATFORM_MSG_PRINT(pDriver_adapter, HALMAC_MSG_INIT, HALMAC_DBG_TRACE, "halmac_reg_write_32_usb_88xx ==========>\n"); */
370
371 PLATFORM_REG_WRITE_32(pDriver_adapter, halmac_offset, halmac_data);
372
373 /* PLATFORM_MSG_PRINT(pDriver_adapter, HALMAC_MSG_INIT, HALMAC_DBG_TRACE, "halmac_reg_write_32_usb_88xx <==========\n"); */
374
375 return HALMAC_RET_SUCCESS;
376 }
377
378 /**
379 * halmac_set_bulkout_num_88xx() - set bulk out endpoint number
380 * @pHalmac_adapter
381 * @bulkout_num
382 * Author : KaiYuan Chang
383 * Return : HALMAC_RET_STATUS
384 */
385 HALMAC_RET_STATUS
halmac_set_bulkout_num_88xx(IN PHALMAC_ADAPTER pHalmac_adapter,IN u8 bulkout_num)386 halmac_set_bulkout_num_88xx(
387 IN PHALMAC_ADAPTER pHalmac_adapter,
388 IN u8 bulkout_num
389 )
390 {
391 VOID *pDriver_adapter = NULL;
392 PHALMAC_API pHalmac_api;
393
394 if (HALMAC_RET_SUCCESS != halmac_adapter_validate(pHalmac_adapter))
395 return HALMAC_RET_ADAPTER_INVALID;
396
397 if (HALMAC_RET_SUCCESS != halmac_api_validate(pHalmac_adapter))
398 return HALMAC_RET_API_INVALID;
399
400 halmac_api_record_id_88xx(pHalmac_adapter, HALMAC_API_SET_BULKOUT_NUM);
401
402 pDriver_adapter = pHalmac_adapter->pDriver_adapter;
403 pHalmac_api = (PHALMAC_API)pHalmac_adapter->pHalmac_api;
404
405 /* PLATFORM_MSG_PRINT(pDriver_adapter, HALMAC_MSG_INIT, HALMAC_DBG_TRACE,"halmac_set_bulkout_num_88xx ==========>\n"); */
406 /* PLATFORM_MSG_PRINT(pDriver_adapter, HALMAC_MSG_INIT, HALMAC_DBG_TRACE,"bulkout_num = %d\n", bulkout_num); */
407
408 pHalmac_adapter->halmac_bulkout_num = bulkout_num;
409
410 /* PLATFORM_MSG_PRINT(pDriver_adapter, HALMAC_MSG_INIT, HALMAC_DBG_TRACE,"halmac_set_bulkout_num_88xx <==========\n"); */
411
412 return HALMAC_RET_SUCCESS;
413 }
414
415 /**
416 * halmac_get_usb_bulkout_id_88xx() - get bulk out id for the TX packet
417 * @pHalmac_adapter
418 * @halmac_buf
419 * @halmac_size
420 * @bulkout_id
421 * Author : KaiYuan Chang
422 * Return : HALMAC_RET_STATUS
423 */
424 HALMAC_RET_STATUS
halmac_get_usb_bulkout_id_88xx(IN PHALMAC_ADAPTER pHalmac_adapter,IN u8 * halmac_buf,IN u32 halmac_size,OUT u8 * bulkout_id)425 halmac_get_usb_bulkout_id_88xx(
426 IN PHALMAC_ADAPTER pHalmac_adapter,
427 IN u8 *halmac_buf,
428 IN u32 halmac_size,
429 OUT u8 *bulkout_id
430 )
431 {
432 VOID *pDriver_adapter = NULL;
433 PHALMAC_API pHalmac_api;
434 HALMAC_QUEUE_SELECT queue_sel;
435 HALMAC_DMA_MAPPING dma_mapping;
436
437 if (HALMAC_RET_SUCCESS != halmac_adapter_validate(pHalmac_adapter))
438 return HALMAC_RET_ADAPTER_INVALID;
439
440 if (HALMAC_RET_SUCCESS != halmac_api_validate(pHalmac_adapter))
441 return HALMAC_RET_API_INVALID;
442
443 halmac_api_record_id_88xx(pHalmac_adapter, HALMAC_API_GET_USB_BULKOUT_ID);
444
445 pDriver_adapter = pHalmac_adapter->pDriver_adapter;
446 pHalmac_api = (PHALMAC_API)pHalmac_adapter->pHalmac_api;
447
448 PLATFORM_MSG_PRINT(pDriver_adapter, HALMAC_MSG_INIT, HALMAC_DBG_TRACE, "halmac_get_usb_bulkout_id_88xx ==========>\n");
449
450 if (NULL == halmac_buf) {
451 PLATFORM_MSG_PRINT(pDriver_adapter, HALMAC_MSG_INIT, HALMAC_DBG_ERR, "halmac_buf is NULL!!\n");
452 return HALMAC_RET_DATA_BUF_NULL;
453 }
454
455 if (0 == halmac_size) {
456 PLATFORM_MSG_PRINT(pDriver_adapter, HALMAC_MSG_INIT, HALMAC_DBG_ERR, "halmac_size is 0!!\n");
457 return HALMAC_RET_DATA_SIZE_INCORRECT;
458 }
459
460 queue_sel = (HALMAC_QUEUE_SELECT)GET_TX_DESC_QSEL(halmac_buf);
461
462 switch (queue_sel) {
463 case HALMAC_QUEUE_SELECT_VO:
464 case HALMAC_QUEUE_SELECT_VO_V2:
465 dma_mapping = pHalmac_adapter->halmac_ptcl_queue[HALMAC_PTCL_QUEUE_VO];
466 break;
467 case HALMAC_QUEUE_SELECT_VI:
468 case HALMAC_QUEUE_SELECT_VI_V2:
469 dma_mapping = pHalmac_adapter->halmac_ptcl_queue[HALMAC_PTCL_QUEUE_VI];
470 break;
471 case HALMAC_QUEUE_SELECT_BE:
472 case HALMAC_QUEUE_SELECT_BE_V2:
473 dma_mapping = pHalmac_adapter->halmac_ptcl_queue[HALMAC_PTCL_QUEUE_BE];
474 break;
475 case HALMAC_QUEUE_SELECT_BK:
476 case HALMAC_QUEUE_SELECT_BK_V2:
477 dma_mapping = pHalmac_adapter->halmac_ptcl_queue[HALMAC_PTCL_QUEUE_BK];
478 break;
479 case HALMAC_QUEUE_SELECT_MGNT:
480 dma_mapping = pHalmac_adapter->halmac_ptcl_queue[HALMAC_PTCL_QUEUE_MG];
481 break;
482 case HALMAC_QUEUE_SELECT_HIGH:
483 case HALMAC_QUEUE_SELECT_BCN:
484 case HALMAC_QUEUE_SELECT_CMD:
485 dma_mapping = HALMAC_DMA_MAPPING_HIGH;
486 break;
487 default:
488 PLATFORM_MSG_PRINT(pDriver_adapter, HALMAC_MSG_INIT, HALMAC_DBG_ERR, "Qsel is out of range\n");
489 return HALMAC_RET_QSEL_INCORRECT;
490 }
491
492 switch (dma_mapping) {
493 case HALMAC_DMA_MAPPING_HIGH:
494 *bulkout_id = 0;
495 break;
496 case HALMAC_DMA_MAPPING_NORMAL:
497 *bulkout_id = 1;
498 break;
499 case HALMAC_DMA_MAPPING_LOW:
500 *bulkout_id = 2;
501 break;
502 case HALMAC_DMA_MAPPING_EXTRA:
503 *bulkout_id = 3;
504 break;
505 default:
506 PLATFORM_MSG_PRINT(pDriver_adapter, HALMAC_MSG_INIT, HALMAC_DBG_ERR, "DmaMapping is out of range\n");
507 return HALMAC_RET_DMA_MAP_INCORRECT;
508 }
509
510 PLATFORM_MSG_PRINT(pDriver_adapter, HALMAC_MSG_INIT, HALMAC_DBG_TRACE, "halmac_get_usb_bulkout_id_88xx <==========\n");
511
512 return HALMAC_RET_SUCCESS;
513 }
514
515 /**
516 * halmac_cfg_tx_agg_align_usb_not_support_88xx() -
517 * @pHalmac_adapter
518 * @enable
519 * @align_size
520 * Author : Soar Tu
521 * Return : HALMAC_RET_STATUS
522 */
523 HALMAC_RET_STATUS
halmac_cfg_tx_agg_align_usb_not_support_88xx(IN PHALMAC_ADAPTER pHalmac_adapter,IN u8 enable,IN u16 align_size)524 halmac_cfg_tx_agg_align_usb_not_support_88xx(
525 IN PHALMAC_ADAPTER pHalmac_adapter,
526 IN u8 enable,
527 IN u16 align_size
528 )
529 {
530 PHALMAC_API pHalmac_api;
531 VOID *pDriver_adapter = NULL;
532
533 if (HALMAC_RET_SUCCESS != halmac_adapter_validate(pHalmac_adapter))
534 return HALMAC_RET_ADAPTER_INVALID;
535
536 if (HALMAC_RET_SUCCESS != halmac_api_validate(pHalmac_adapter))
537 return HALMAC_RET_API_INVALID;
538
539 halmac_api_record_id_88xx(pHalmac_adapter, HALMAC_API_CFG_TX_AGG_ALIGN);
540
541 pDriver_adapter = pHalmac_adapter->pDriver_adapter;
542 pHalmac_api = (PHALMAC_API)pHalmac_adapter->pHalmac_api;
543
544
545 PLATFORM_MSG_PRINT(pDriver_adapter, HALMAC_MSG_INIT, HALMAC_DBG_TRACE, "halmac_cfg_tx_agg_align_usb_not_support_88xx ==========>\n");
546
547 PLATFORM_MSG_PRINT(pDriver_adapter, HALMAC_MSG_INIT, HALMAC_DBG_TRACE, "halmac_cfg_tx_agg_align_usb_not_support_88xx not support\n");
548 PLATFORM_MSG_PRINT(pDriver_adapter, HALMAC_MSG_INIT, HALMAC_DBG_TRACE, "halmac_cfg_tx_agg_align_usb_not_support_88xx <==========\n");
549
550 return HALMAC_RET_SUCCESS;
551 }
552
553