| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563 |
- #include "halmac_88xx_cfg.h"
- /**
- * halmac_init_usb_cfg_88xx() - init USB
- * @pHalmac_adapter : the adapter of halmac
- * Author : KaiYuan Chang/Ivan Lin
- * Return : HALMAC_RET_STATUS
- * More details of status code can be found in prototype document
- */
- HALMAC_RET_STATUS
- halmac_init_usb_cfg_88xx(
- IN PHALMAC_ADAPTER pHalmac_adapter
- )
- {
- VOID *pDriver_adapter = NULL;
- u8 value8 = 0;
- if (HALMAC_RET_SUCCESS != halmac_adapter_validate(pHalmac_adapter))
- return HALMAC_RET_ADAPTER_INVALID;
- if (HALMAC_RET_SUCCESS != halmac_api_validate(pHalmac_adapter))
- return HALMAC_RET_API_INVALID;
- halmac_api_record_id_88xx(pHalmac_adapter, HALMAC_API_INIT_USB_CFG);
- pDriver_adapter = pHalmac_adapter->pDriver_adapter;
- PLATFORM_MSG_PRINT(pDriver_adapter, HALMAC_MSG_INIT, HALMAC_DBG_TRACE, "halmac_init_usb_cfg_88xx ==========>\n");
- value8 |= (BIT_DMA_MODE | (0x3 << BIT_SHIFT_BURST_CNT)); /* burst number = 4 */
- if (PLATFORM_REG_READ_8(pDriver_adapter, REG_SYS_CFG2 + 3) == 0x20) { /* usb3.0 */
- value8 |= (HALMAC_USB_BURST_SIZE_3_0 << BIT_SHIFT_BURST_SIZE);
- } else {
- if ((PLATFORM_REG_READ_8(pDriver_adapter, REG_USB_USBSTAT) & 0x3) == 0x1) /* usb2.0 */
- value8 |= HALMAC_USB_BURST_SIZE_2_0_HSPEED << BIT_SHIFT_BURST_SIZE;
- else /* usb1.1 */
- value8 |= HALMAC_USB_BURST_SIZE_2_0_FSPEED << BIT_SHIFT_BURST_SIZE;
- }
- PLATFORM_REG_WRITE_8(pDriver_adapter, REG_RXDMA_MODE, value8);
- PLATFORM_REG_WRITE_16(pDriver_adapter, REG_TXDMA_OFFSET_CHK, PLATFORM_REG_READ_16(pDriver_adapter, REG_TXDMA_OFFSET_CHK) | BIT_DROP_DATA_EN);
- PLATFORM_MSG_PRINT(pDriver_adapter, HALMAC_MSG_INIT, HALMAC_DBG_TRACE, "halmac_init_usb_cfg_88xx <==========\n");
- return HALMAC_RET_SUCCESS;
- }
- /**
- * halmac_deinit_usb_cfg_88xx() - deinit USB
- * @pHalmac_adapter : the adapter of halmac
- * Author : KaiYuan Chang/Ivan Lin
- * Return : HALMAC_RET_STATUS
- * More details of status code can be found in prototype document
- */
- HALMAC_RET_STATUS
- halmac_deinit_usb_cfg_88xx(
- IN PHALMAC_ADAPTER pHalmac_adapter
- )
- {
- VOID *pDriver_adapter = NULL;
- if (HALMAC_RET_SUCCESS != halmac_adapter_validate(pHalmac_adapter))
- return HALMAC_RET_ADAPTER_INVALID;
- if (HALMAC_RET_SUCCESS != halmac_api_validate(pHalmac_adapter))
- return HALMAC_RET_API_INVALID;
- halmac_api_record_id_88xx(pHalmac_adapter, HALMAC_API_DEINIT_USB_CFG);
- pDriver_adapter = pHalmac_adapter->pDriver_adapter;
- PLATFORM_MSG_PRINT(pDriver_adapter, HALMAC_MSG_INIT, HALMAC_DBG_TRACE, "halmac_deinit_usb_cfg_88xx ==========>\n");
- PLATFORM_MSG_PRINT(pDriver_adapter, HALMAC_MSG_INIT, HALMAC_DBG_TRACE, "halmac_deinit_usb_cfg_88xx <==========\n");
- return HALMAC_RET_SUCCESS;
- }
- /**
- * halmac_cfg_rx_aggregation_88xx_usb() - config rx aggregation
- * @pHalmac_adapter : the adapter of halmac
- * @halmac_rx_agg_mode
- * Author : KaiYuan Chang/Ivan Lin
- * Return : HALMAC_RET_STATUS
- * More details of status code can be found in prototype document
- */
- HALMAC_RET_STATUS
- halmac_cfg_rx_aggregation_88xx_usb(
- IN PHALMAC_ADAPTER pHalmac_adapter,
- IN PHALMAC_RXAGG_CFG phalmac_rxagg_cfg
- )
- {
- u8 dma_usb_agg;
- u8 size = 0, timeout = 0, agg_enable = 0;
- VOID *pDriver_adapter = NULL;
- PHALMAC_API pHalmac_api;
- if (HALMAC_RET_SUCCESS != halmac_adapter_validate(pHalmac_adapter))
- return HALMAC_RET_ADAPTER_INVALID;
- if (HALMAC_RET_SUCCESS != halmac_api_validate(pHalmac_adapter))
- return HALMAC_RET_API_INVALID;
- halmac_api_record_id_88xx(pHalmac_adapter, HALMAC_API_CFG_RX_AGGREGATION);
- pDriver_adapter = pHalmac_adapter->pDriver_adapter;
- pHalmac_api = (PHALMAC_API)pHalmac_adapter->pHalmac_api;
- PLATFORM_MSG_PRINT(pDriver_adapter, HALMAC_MSG_INIT, HALMAC_DBG_TRACE, "halmac_cfg_rx_aggregation_88xx_usb ==========>\n");
- dma_usb_agg = HALMAC_REG_READ_8(pHalmac_adapter, REG_RXDMA_AGG_PG_TH + 3);
- agg_enable = HALMAC_REG_READ_8(pHalmac_adapter, REG_TXDMA_PQ_MAP);
- switch (phalmac_rxagg_cfg->mode) {
- case HALMAC_RX_AGG_MODE_NONE:
- agg_enable &= ~BIT_RXDMA_AGG_EN;
- break;
- case HALMAC_RX_AGG_MODE_DMA:
- agg_enable |= BIT_RXDMA_AGG_EN;
- dma_usb_agg |= BIT(7);
- break;
- case HALMAC_RX_AGG_MODE_USB:
- agg_enable |= BIT_RXDMA_AGG_EN;
- dma_usb_agg &= ~BIT(7);
- break;
- default:
- PLATFORM_MSG_PRINT(pDriver_adapter, HALMAC_MSG_INIT, HALMAC_DBG_ERR, "halmac_cfg_rx_aggregation_88xx_usb switch case not support\n");
- agg_enable &= ~BIT_RXDMA_AGG_EN;
- break;
- }
- if (_FALSE == phalmac_rxagg_cfg->threshold.drv_define) {
- if (PLATFORM_REG_READ_8(pDriver_adapter, REG_SYS_CFG2 + 3) == 0x20) {
- /* usb3.0 */
- size = 0x5;
- timeout = 0xA;
- } else {
- /* usb2.0 */
- size = 0x5;
- timeout = 0x20;
- }
- } else {
- size = phalmac_rxagg_cfg->threshold.size;
- timeout = phalmac_rxagg_cfg->threshold.timeout;
- }
- HALMAC_REG_WRITE_8(pHalmac_adapter, REG_TXDMA_PQ_MAP, agg_enable);
- HALMAC_REG_WRITE_8(pHalmac_adapter, REG_RXDMA_AGG_PG_TH + 3, dma_usb_agg);
- HALMAC_REG_WRITE_16(pHalmac_adapter, REG_RXDMA_AGG_PG_TH, (u16)(size | (timeout << BIT_SHIFT_DMA_AGG_TO_V1)));
- PLATFORM_MSG_PRINT(pDriver_adapter, HALMAC_MSG_INIT, HALMAC_DBG_TRACE, "halmac_cfg_rx_aggregation_88xx_usb <==========\n");
- return HALMAC_RET_SUCCESS;
- }
- /**
- * halmac_reg_read_8_usb_88xx() - read 1byte register
- * @pHalmac_adapter : the adapter of halmac
- * @halmac_offset : register offset
- * Author : KaiYuan Chang/Ivan Lin
- * Return : HALMAC_RET_STATUS
- * More details of status code can be found in prototype document
- */
- u8
- halmac_reg_read_8_usb_88xx(
- IN PHALMAC_ADAPTER pHalmac_adapter,
- IN u32 halmac_offset
- )
- {
- u8 value8;
- VOID *pDriver_adapter = NULL;
- PHALMAC_API pHalmac_api;
- if (HALMAC_RET_SUCCESS != halmac_adapter_validate(pHalmac_adapter))
- return HALMAC_RET_ADAPTER_INVALID;
- if (HALMAC_RET_SUCCESS != halmac_api_validate(pHalmac_adapter))
- return HALMAC_RET_API_INVALID;
- pDriver_adapter = pHalmac_adapter->pDriver_adapter;
- pHalmac_api = (PHALMAC_API)pHalmac_adapter->pHalmac_api;
- /* PLATFORM_MSG_PRINT(pDriver_adapter, HALMAC_MSG_INIT, HALMAC_DBG_TRACE, "halmac_reg_read_8_usb_88xx ==========>\n"); */
- value8 = PLATFORM_REG_READ_8(pDriver_adapter, halmac_offset);
- /* PLATFORM_MSG_PRINT(pDriver_adapter, HALMAC_MSG_INIT, HALMAC_DBG_TRACE, "halmac_reg_read_8_usb_88xx <==========\n"); */
- return value8;
- }
- /**
- * halmac_reg_write_8_usb_88xx() - write 1byte register
- * @pHalmac_adapter : the adapter of halmac
- * @halmac_offset : register offset
- * @halmac_data : register value
- * Author : KaiYuan Chang/Ivan Lin
- * Return : HALMAC_RET_STATUS
- * More details of status code can be found in prototype document
- */
- HALMAC_RET_STATUS
- halmac_reg_write_8_usb_88xx(
- IN PHALMAC_ADAPTER pHalmac_adapter,
- IN u32 halmac_offset,
- IN u8 halmac_data
- )
- {
- VOID *pDriver_adapter = NULL;
- PHALMAC_API pHalmac_api;
- if (HALMAC_RET_SUCCESS != halmac_adapter_validate(pHalmac_adapter))
- return HALMAC_RET_ADAPTER_INVALID;
- if (HALMAC_RET_SUCCESS != halmac_api_validate(pHalmac_adapter))
- return HALMAC_RET_API_INVALID;
- pDriver_adapter = pHalmac_adapter->pDriver_adapter;
- pHalmac_api = (PHALMAC_API)pHalmac_adapter->pHalmac_api;
- /* PLATFORM_MSG_PRINT(pDriver_adapter, HALMAC_MSG_INIT, HALMAC_DBG_TRACE, "halmac_reg_write_8_usb_88xx ==========>\n"); */
- PLATFORM_REG_WRITE_8(pDriver_adapter, halmac_offset, halmac_data);
- /* PLATFORM_MSG_PRINT(pDriver_adapter, HALMAC_MSG_INIT, HALMAC_DBG_TRACE, "halmac_reg_write_8_usb_88xx <==========\n"); */
- return HALMAC_RET_SUCCESS;
- }
- /**
- * halmac_reg_read_16_usb_88xx() - read 2byte register
- * @pHalmac_adapter : the adapter of halmac
- * @halmac_offset : register offset
- * Author : KaiYuan Chang/Ivan Lin
- * Return : HALMAC_RET_STATUS
- * More details of status code can be found in prototype document
- */
- u16
- halmac_reg_read_16_usb_88xx(
- IN PHALMAC_ADAPTER pHalmac_adapter,
- IN u32 halmac_offset
- )
- {
- VOID *pDriver_adapter = NULL;
- PHALMAC_API pHalmac_api;
- union {
- u16 word;
- u8 byte[2];
- } value16 = { 0x0000 };
- if (HALMAC_RET_SUCCESS != halmac_adapter_validate(pHalmac_adapter))
- return HALMAC_RET_ADAPTER_INVALID;
- if (HALMAC_RET_SUCCESS != halmac_api_validate(pHalmac_adapter))
- return HALMAC_RET_API_INVALID;
- pDriver_adapter = pHalmac_adapter->pDriver_adapter;
- pHalmac_api = (PHALMAC_API)pHalmac_adapter->pHalmac_api;
- /* PLATFORM_MSG_PRINT(pDriver_adapter, HALMAC_MSG_INIT, HALMAC_DBG_TRACE, "halmac_reg_read_16_usb_88xx ==========>\n"); */
- value16.word = PLATFORM_REG_READ_16(pDriver_adapter, halmac_offset);
- /* PLATFORM_MSG_PRINT(pDriver_adapter, HALMAC_MSG_INIT, HALMAC_DBG_TRACE, "halmac_reg_read_16_usb_88xx <==========\n"); */
- return value16.word;
- }
- /**
- * halmac_reg_write_16_usb_88xx() - write 2byte register
- * @pHalmac_adapter : the adapter of halmac
- * @halmac_offset : register offset
- * @halmac_data : register value
- * Author : KaiYuan Chang/Ivan Lin
- * Return : HALMAC_RET_STATUS
- * More details of status code can be found in prototype document
- */
- HALMAC_RET_STATUS
- halmac_reg_write_16_usb_88xx(
- IN PHALMAC_ADAPTER pHalmac_adapter,
- IN u32 halmac_offset,
- IN u16 halmac_data
- )
- {
- VOID *pDriver_adapter = NULL;
- PHALMAC_API pHalmac_api;
- if (HALMAC_RET_SUCCESS != halmac_adapter_validate(pHalmac_adapter))
- return HALMAC_RET_ADAPTER_INVALID;
- if (HALMAC_RET_SUCCESS != halmac_api_validate(pHalmac_adapter))
- return HALMAC_RET_API_INVALID;
- pDriver_adapter = pHalmac_adapter->pDriver_adapter;
- pHalmac_api = (PHALMAC_API)pHalmac_adapter->pHalmac_api;
- /* PLATFORM_MSG_PRINT(pDriver_adapter, HALMAC_MSG_INIT, HALMAC_DBG_TRACE, "halmac_reg_write_16_usb_88xx ==========>\n"); */
- PLATFORM_REG_WRITE_16(pDriver_adapter, halmac_offset, halmac_data);
- /* PLATFORM_MSG_PRINT(pDriver_adapter, HALMAC_MSG_INIT, HALMAC_DBG_TRACE, "halmac_reg_write_16_usb_88xx <==========\n"); */
- return HALMAC_RET_SUCCESS;
- }
- /**
- * halmac_reg_read_32_usb_88xx() - read 4byte register
- * @pHalmac_adapter : the adapter of halmac
- * @halmac_offset : register offset
- * Author : KaiYuan Chang/Ivan Lin
- * Return : HALMAC_RET_STATUS
- * More details of status code can be found in prototype document
- */
- u32
- halmac_reg_read_32_usb_88xx(
- IN PHALMAC_ADAPTER pHalmac_adapter,
- IN u32 halmac_offset
- )
- {
- VOID *pDriver_adapter = NULL;
- PHALMAC_API pHalmac_api;
- union {
- u32 dword;
- u8 byte[4];
- } value32 = { 0x00000000 };
- if (HALMAC_RET_SUCCESS != halmac_adapter_validate(pHalmac_adapter))
- return HALMAC_RET_ADAPTER_INVALID;
- if (HALMAC_RET_SUCCESS != halmac_api_validate(pHalmac_adapter))
- return HALMAC_RET_API_INVALID;
- pDriver_adapter = pHalmac_adapter->pDriver_adapter;
- pHalmac_api = (PHALMAC_API)pHalmac_adapter->pHalmac_api;
- /* PLATFORM_MSG_PRINT(pDriver_adapter, HALMAC_MSG_INIT, HALMAC_DBG_TRACE, "halmac_reg_read_32_usb_88xx ==========>\n"); */
- value32.dword = PLATFORM_REG_READ_32(pDriver_adapter, halmac_offset);
- /* PLATFORM_MSG_PRINT(pDriver_adapter, HALMAC_MSG_INIT, HALMAC_DBG_TRACE, "halmac_reg_read_32_usb_88xx <==========\n"); */
- return value32.dword;
- }
- /**
- * halmac_reg_write_32_usb_88xx() - write 4byte register
- * @pHalmac_adapter : the adapter of halmac
- * @halmac_offset : register offset
- * @halmac_data : register value
- * Author : KaiYuan Chang/Ivan Lin
- * Return : HALMAC_RET_STATUS
- * More details of status code can be found in prototype document
- */
- HALMAC_RET_STATUS
- halmac_reg_write_32_usb_88xx(
- IN PHALMAC_ADAPTER pHalmac_adapter,
- IN u32 halmac_offset,
- IN u32 halmac_data
- )
- {
- VOID *pDriver_adapter = NULL;
- PHALMAC_API pHalmac_api;
- if (HALMAC_RET_SUCCESS != halmac_adapter_validate(pHalmac_adapter))
- return HALMAC_RET_ADAPTER_INVALID;
- if (HALMAC_RET_SUCCESS != halmac_api_validate(pHalmac_adapter))
- return HALMAC_RET_API_INVALID;
- pDriver_adapter = pHalmac_adapter->pDriver_adapter;
- pHalmac_api = (PHALMAC_API)pHalmac_adapter->pHalmac_api;
- /* PLATFORM_MSG_PRINT(pDriver_adapter, HALMAC_MSG_INIT, HALMAC_DBG_TRACE, "halmac_reg_write_32_usb_88xx ==========>\n"); */
- PLATFORM_REG_WRITE_32(pDriver_adapter, halmac_offset, halmac_data);
- /* PLATFORM_MSG_PRINT(pDriver_adapter, HALMAC_MSG_INIT, HALMAC_DBG_TRACE, "halmac_reg_write_32_usb_88xx <==========\n"); */
- return HALMAC_RET_SUCCESS;
- }
- /**
- * halmac_set_bulkout_num_usb_88xx() - inform bulk-out num
- * @pHalmac_adapter : the adapter of halmac
- * @bulkout_num : usb bulk-out number
- * Author : KaiYuan Chang
- * Return : HALMAC_RET_STATUS
- * More details of status code can be found in prototype document
- */
- HALMAC_RET_STATUS
- halmac_set_bulkout_num_88xx(
- IN PHALMAC_ADAPTER pHalmac_adapter,
- IN u8 bulkout_num
- )
- {
- VOID *pDriver_adapter = NULL;
- PHALMAC_API pHalmac_api;
- if (HALMAC_RET_SUCCESS != halmac_adapter_validate(pHalmac_adapter))
- return HALMAC_RET_ADAPTER_INVALID;
- if (HALMAC_RET_SUCCESS != halmac_api_validate(pHalmac_adapter))
- return HALMAC_RET_API_INVALID;
- halmac_api_record_id_88xx(pHalmac_adapter, HALMAC_API_SET_BULKOUT_NUM);
- pDriver_adapter = pHalmac_adapter->pDriver_adapter;
- pHalmac_api = (PHALMAC_API)pHalmac_adapter->pHalmac_api;
- /* PLATFORM_MSG_PRINT(pDriver_adapter, HALMAC_MSG_INIT, HALMAC_DBG_TRACE,"halmac_set_bulkout_num_88xx ==========>\n"); */
- /* PLATFORM_MSG_PRINT(pDriver_adapter, HALMAC_MSG_INIT, HALMAC_DBG_TRACE,"bulkout_num = %d\n", bulkout_num); */
- pHalmac_adapter->halmac_bulkout_num = bulkout_num;
- /* PLATFORM_MSG_PRINT(pDriver_adapter, HALMAC_MSG_INIT, HALMAC_DBG_TRACE,"halmac_set_bulkout_num_88xx <==========\n"); */
- return HALMAC_RET_SUCCESS;
- }
- /**
- * halmac_get_usb_bulkout_id_usb_88xx() - get bulk out id for the TX packet
- * @pHalmac_adapter : the adapter of halmac
- * @halmac_buf : tx packet, include txdesc
- * @halmac_size : tx packet size
- * @bulkout_id : usb bulk-out id
- * Author : KaiYuan Chang
- * Return : HALMAC_RET_STATUS
- * More details of status code can be found in prototype document
- */
- 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
- )
- {
- VOID *pDriver_adapter = NULL;
- PHALMAC_API pHalmac_api;
- HALMAC_QUEUE_SELECT queue_sel;
- HALMAC_DMA_MAPPING dma_mapping;
- if (HALMAC_RET_SUCCESS != halmac_adapter_validate(pHalmac_adapter))
- return HALMAC_RET_ADAPTER_INVALID;
- if (HALMAC_RET_SUCCESS != halmac_api_validate(pHalmac_adapter))
- return HALMAC_RET_API_INVALID;
- halmac_api_record_id_88xx(pHalmac_adapter, HALMAC_API_GET_USB_BULKOUT_ID);
- pDriver_adapter = pHalmac_adapter->pDriver_adapter;
- pHalmac_api = (PHALMAC_API)pHalmac_adapter->pHalmac_api;
- PLATFORM_MSG_PRINT(pDriver_adapter, HALMAC_MSG_INIT, HALMAC_DBG_TRACE, "halmac_get_usb_bulkout_id_88xx ==========>\n");
- if (NULL == halmac_buf) {
- PLATFORM_MSG_PRINT(pDriver_adapter, HALMAC_MSG_INIT, HALMAC_DBG_ERR, "halmac_buf is NULL!!\n");
- return HALMAC_RET_DATA_BUF_NULL;
- }
- if (0 == halmac_size) {
- PLATFORM_MSG_PRINT(pDriver_adapter, HALMAC_MSG_INIT, HALMAC_DBG_ERR, "halmac_size is 0!!\n");
- return HALMAC_RET_DATA_SIZE_INCORRECT;
- }
- queue_sel = (HALMAC_QUEUE_SELECT)GET_TX_DESC_QSEL(halmac_buf);
- switch (queue_sel) {
- case HALMAC_QUEUE_SELECT_VO:
- case HALMAC_QUEUE_SELECT_VO_V2:
- dma_mapping = pHalmac_adapter->halmac_ptcl_queue[HALMAC_PTCL_QUEUE_VO];
- break;
- case HALMAC_QUEUE_SELECT_VI:
- case HALMAC_QUEUE_SELECT_VI_V2:
- dma_mapping = pHalmac_adapter->halmac_ptcl_queue[HALMAC_PTCL_QUEUE_VI];
- break;
- case HALMAC_QUEUE_SELECT_BE:
- case HALMAC_QUEUE_SELECT_BE_V2:
- dma_mapping = pHalmac_adapter->halmac_ptcl_queue[HALMAC_PTCL_QUEUE_BE];
- break;
- case HALMAC_QUEUE_SELECT_BK:
- case HALMAC_QUEUE_SELECT_BK_V2:
- dma_mapping = pHalmac_adapter->halmac_ptcl_queue[HALMAC_PTCL_QUEUE_BK];
- break;
- case HALMAC_QUEUE_SELECT_MGNT:
- dma_mapping = pHalmac_adapter->halmac_ptcl_queue[HALMAC_PTCL_QUEUE_MG];
- break;
- case HALMAC_QUEUE_SELECT_HIGH:
- case HALMAC_QUEUE_SELECT_BCN:
- case HALMAC_QUEUE_SELECT_CMD:
- dma_mapping = HALMAC_DMA_MAPPING_HIGH;
- break;
- default:
- PLATFORM_MSG_PRINT(pDriver_adapter, HALMAC_MSG_INIT, HALMAC_DBG_ERR, "Qsel is out of range\n");
- return HALMAC_RET_QSEL_INCORRECT;
- }
- switch (dma_mapping) {
- case HALMAC_DMA_MAPPING_HIGH:
- *bulkout_id = 0;
- break;
- case HALMAC_DMA_MAPPING_NORMAL:
- *bulkout_id = 1;
- break;
- case HALMAC_DMA_MAPPING_LOW:
- *bulkout_id = 2;
- break;
- case HALMAC_DMA_MAPPING_EXTRA:
- *bulkout_id = 3;
- break;
- default:
- PLATFORM_MSG_PRINT(pDriver_adapter, HALMAC_MSG_INIT, HALMAC_DBG_ERR, "DmaMapping is out of range\n");
- return HALMAC_RET_DMA_MAP_INCORRECT;
- }
- PLATFORM_MSG_PRINT(pDriver_adapter, HALMAC_MSG_INIT, HALMAC_DBG_TRACE, "halmac_get_usb_bulkout_id_88xx <==========\n");
- return HALMAC_RET_SUCCESS;
- }
- /**
- * halmac_cfg_tx_agg_align_usb_88xx() -config sdio bus tx agg alignment
- * @pHalmac_adapter : the adapter of halmac
- * @enable : function enable(1)/disable(0)
- * @align_size : sdio bus tx agg alignment size (2^n, n = 3~11)
- * Author : Soar Tu
- * Return : HALMAC_RET_STATUS
- * More details of status code can be found in prototype document
- */
- HALMAC_RET_STATUS
- halmac_cfg_tx_agg_align_usb_not_support_88xx(
- IN PHALMAC_ADAPTER pHalmac_adapter,
- IN u8 enable,
- IN u16 align_size
- )
- {
- PHALMAC_API pHalmac_api;
- VOID *pDriver_adapter = NULL;
- if (HALMAC_RET_SUCCESS != halmac_adapter_validate(pHalmac_adapter))
- return HALMAC_RET_ADAPTER_INVALID;
- if (HALMAC_RET_SUCCESS != halmac_api_validate(pHalmac_adapter))
- return HALMAC_RET_API_INVALID;
- halmac_api_record_id_88xx(pHalmac_adapter, HALMAC_API_CFG_TX_AGG_ALIGN);
- pDriver_adapter = pHalmac_adapter->pDriver_adapter;
- pHalmac_api = (PHALMAC_API)pHalmac_adapter->pHalmac_api;
- PLATFORM_MSG_PRINT(pDriver_adapter, HALMAC_MSG_INIT, HALMAC_DBG_TRACE, "halmac_cfg_tx_agg_align_usb_not_support_88xx ==========>\n");
- PLATFORM_MSG_PRINT(pDriver_adapter, HALMAC_MSG_INIT, HALMAC_DBG_TRACE, "halmac_cfg_tx_agg_align_usb_not_support_88xx not support\n");
- PLATFORM_MSG_PRINT(pDriver_adapter, HALMAC_MSG_INIT, HALMAC_DBG_TRACE, "halmac_cfg_tx_agg_align_usb_not_support_88xx <==========\n");
- return HALMAC_RET_SUCCESS;
- }
|