X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=target_firmware%2Fmagpie_fw_dev%2Ftarget%2Finc%2Fmagpie%2Fdma_lib.h;fp=target_firmware%2Fmagpie_fw_dev%2Ftarget%2Finc%2Fmagpie%2Fdma_lib.h;h=7b44c5696f9dcbbea6eed61039e7905b46f5f5b1;hb=ba4f945a110a5acaf9a578c63184a2b2a2c62938;hp=0000000000000000000000000000000000000000;hpb=be52f254f3ed7af6f09ff6cdcd32da9edbfaba33;p=open-ath9k-htc-firmware.git diff --git a/target_firmware/magpie_fw_dev/target/inc/magpie/dma_lib.h b/target_firmware/magpie_fw_dev/target/inc/magpie/dma_lib.h new file mode 100755 index 0000000..7b44c56 --- /dev/null +++ b/target_firmware/magpie_fw_dev/target/inc/magpie/dma_lib.h @@ -0,0 +1,57 @@ +#ifndef __DMA_LIB_H +#define __DMA_LIB_H + + +/***********************External***************************/ + +/** + * @brief DMA engine numbers, HIF need to map them to there + * respective order + */ +typedef enum dma_engine{ + DMA_ENGINE_RX0, + DMA_ENGINE_RX1, + DMA_ENGINE_RX2, + DMA_ENGINE_RX3, + DMA_ENGINE_TX0, + DMA_ENGINE_TX1, + DMA_ENGINE_MAX +}dma_engine_t; + +/** + * @brief Interface type, each HIF should call with its own interface type + */ +typedef enum dma_iftype{ + DMA_IF_GMAC = 0x0,/* GMAC */ + DMA_IF_PCI = 0x1,/*PCI */ + DMA_IF_PCIE = 0x2 /*PCI Express */ +}dma_iftype_t; + + +struct dma_lib_api{ + A_UINT16 (*tx_init)(dma_engine_t eng_no, dma_iftype_t if_type); + void (*tx_start)(dma_engine_t eng_no); + A_UINT16 (*rx_init)(dma_engine_t eng_no, dma_iftype_t if_type); + void (*rx_config)(dma_engine_t eng_no, a_uint16_t num_desc, + a_uint16_t gran); + void (*rx_start)(dma_engine_t eng_no); + A_UINT32 (*intr_status)(dma_iftype_t if_type); + A_UINT16 (*hard_xmit)(dma_engine_t eng_no, VBUF *buf); + void (*flush_xmit)(dma_engine_t eng_no); + A_UINT16 (*xmit_done)(dma_engine_t eng_no); + VBUF * (*reap_xmitted)(dma_engine_t eng_no); + VBUF * (*reap_recv)(dma_engine_t eng_no); + void (*return_recv)(dma_engine_t eng_no, VBUF *buf); + A_UINT16 (*recv_pkt)(dma_engine_t eng_no); +}; + + +/** + * @brief Install the DMA lib api's this for ROM patching + * support + * + * @param apis + */ +void dma_lib_module_install(struct dma_lib_api *apis); + +#endif