qcacld-3.0: wdi2.0 feature enable, dp hif
wdi20 enable implementation for hsoffload. Large physical address
support and wdi20 interface propagate to IPA.
This is part of HIF and DP.
Change-Id: If898f03a8a75689c98c70d1e55910f476d8fe329
CRs-fixed: 941041
diff --git a/core/hif/inc/hif.h b/core/hif/inc/hif.h
index c96f291..cc7a66f 100644
--- a/core/hif/inc/hif.h
+++ b/core/hif/inc/hif.h
@@ -535,18 +535,26 @@
#endif
#ifdef IPA_OFFLOAD
-/*
- * IPA micro controller data path offload feature enabled,
- * HIF should release copy engine related resource information to IPA UC
- * IPA UC will access hardware resource with released information
- */
void hif_ipa_get_ce_resource(struct ol_softc *scn,
- uint32_t *ce_sr_base_paddr,
+ cdf_dma_addr_t *ce_sr_base_paddr,
uint32_t *ce_sr_ring_size,
cdf_dma_addr_t *ce_reg_paddr);
#else
+/**
+ * hif_ipa_get_ce_resource() - get uc resource on hif
+ * @scn: bus context
+ * @ce_sr_base_paddr: copyengine source ring base physical address
+ * @ce_sr_ring_size: copyengine source ring size
+ * @ce_reg_paddr: copyengine register physical address
+ *
+ * IPA micro controller data path offload feature enabled,
+ * HIF should release copy engine related resource information to IPA UC
+ * IPA UC will access hardware resource with released information
+ *
+ * Return: None
+ */
static inline void hif_ipa_get_ce_resource(struct ol_softc *scn,
- uint32_t *ce_sr_base_paddr,
+ cdf_dma_addr_t *ce_sr_base_paddr,
uint32_t *ce_sr_ring_size,
cdf_dma_addr_t *ce_reg_paddr)
{
diff --git a/core/hif/src/ce/ce_api.h b/core/hif/src/ce/ce_api.h
index 473e383..ddd82e3 100644
--- a/core/hif/src/ce/ce_api.h
+++ b/core/hif/src/ce/ce_api.h
@@ -430,20 +430,28 @@
#define ATH_ISR_NOTMINE 0x0002 /* for shared IRQ's */
#ifdef IPA_OFFLOAD
-/*
- * Copy engine should release resource to micro controller
- * Micro controller needs
- - Copy engine source descriptor base address
- - Copy engine source descriptor size
- - PCI BAR address to access copy engine regiser
- */
void ce_ipa_get_resource(struct CE_handle *ce,
- uint32_t *ce_sr_base_paddr,
+ cdf_dma_addr_t *ce_sr_base_paddr,
uint32_t *ce_sr_ring_size,
cdf_dma_addr_t *ce_reg_paddr);
#else
+/**
+ * ce_ipa_get_resource() - get uc resource on copyengine
+ * @ce: copyengine context
+ * @ce_sr_base_paddr: copyengine source ring base physical address
+ * @ce_sr_ring_size: copyengine source ring size
+ * @ce_reg_paddr: copyengine register physical address
+ *
+ * Copy engine should release resource to micro controller
+ * Micro controller needs
+ * - Copy engine source descriptor base address
+ * - Copy engine source descriptor size
+ * - PCI BAR address to access copy engine regiser
+ *
+ * Return: None
+ */
static inline void ce_ipa_get_resource(struct CE_handle *ce,
- uint32_t *ce_sr_base_paddr,
+ cdf_dma_addr_t *ce_sr_base_paddr,
uint32_t *ce_sr_ring_size,
cdf_dma_addr_t *ce_reg_paddr)
{
diff --git a/core/hif/src/ce/ce_main.c b/core/hif/src/ce/ce_main.c
index bc90ab9..6e6f8b0 100644
--- a/core/hif/src/ce/ce_main.c
+++ b/core/hif/src/ce/ce_main.c
@@ -2025,8 +2025,21 @@
#ifdef IPA_OFFLOAD
+/**
+ * hif_ipa_get_ce_resource() - get uc resource on hif
+ * @scn: bus context
+ * @ce_sr_base_paddr: copyengine source ring base physical address
+ * @ce_sr_ring_size: copyengine source ring size
+ * @ce_reg_paddr: copyengine register physical address
+ *
+ * IPA micro controller data path offload feature enabled,
+ * HIF should release copy engine related resource information to IPA UC
+ * IPA UC will access hardware resource with released information
+ *
+ * Return: None
+ */
void hif_ipa_get_ce_resource(struct ol_softc *scn,
- uint32_t *ce_sr_base_paddr,
+ cdf_dma_addr_t *ce_sr_base_paddr,
uint32_t *ce_sr_ring_size,
cdf_dma_addr_t *ce_reg_paddr)
{
diff --git a/core/hif/src/ce/ce_service.c b/core/hif/src/ce/ce_service.c
index cd6b40f..9da6361 100644
--- a/core/hif/src/ce/ce_service.c
+++ b/core/hif/src/ce/ce_service.c
@@ -1654,15 +1654,23 @@
}
#ifdef IPA_OFFLOAD
-/*
+/**
+ * ce_ipa_get_resource() - get uc resource on copyengine
+ * @ce: copyengine context
+ * @ce_sr_base_paddr: copyengine source ring base physical address
+ * @ce_sr_ring_size: copyengine source ring size
+ * @ce_reg_paddr: copyengine register physical address
+ *
* Copy engine should release resource to micro controller
* Micro controller needs
- - Copy engine source descriptor base address
- - Copy engine source descriptor size
- - PCI BAR address to access copy engine regiser
+ * - Copy engine source descriptor base address
+ * - Copy engine source descriptor size
+ * - PCI BAR address to access copy engine regiser
+ *
+ * Return: None
*/
void ce_ipa_get_resource(struct CE_handle *ce,
- uint32_t *ce_sr_base_paddr,
+ cdf_dma_addr_t *ce_sr_base_paddr,
uint32_t *ce_sr_ring_size,
cdf_dma_addr_t *ce_reg_paddr)
{
@@ -1690,8 +1698,9 @@
/* Get BAR address */
hif_read_phy_mem_base(CE_state->scn, &phy_mem_base);
- *ce_sr_base_paddr = (uint32_t) CE_state->src_ring->base_addr_CE_space;
- *ce_sr_ring_size = (uint32_t) CE_state->src_ring->nentries;
+ *ce_sr_base_paddr = CE_state->src_ring->base_addr_CE_space;
+ *ce_sr_ring_size = (uint32_t) (CE_state->src_ring->nentries *
+ sizeof(struct CE_src_desc));
*ce_reg_paddr = phy_mem_base + CE_BASE_ADDRESS(CE_state->id) +
SR_WR_INDEX_ADDRESS;
return;