Browse Source

qcacmn: Modify existing API to fetch direct link dest buf size

Modify existing API used to fetch direct link destination
buffers to also get destination buffer size.

Change-Id: I6c220fe9bbb216f1c0db2e1e38da2ce8314fe47b
CRs-Fixed: 3347321
Yeshwanth Sriram Guntuka 2 năm trước cách đây
mục cha
commit
f2bb688784
4 tập tin đã thay đổi với 16 bổ sung6 xóa
  1. 6 2
      hif/inc/hif.h
  2. 2 1
      hif/src/ce/ce_api.h
  3. 4 2
      hif/src/ce/ce_main.c
  4. 4 1
      hif/src/ce/ce_service_srng.c

+ 6 - 2
hif/inc/hif.h

@@ -2563,11 +2563,13 @@ hif_set_irq_config_by_ceid(struct hif_opaque_softc *scn, uint8_t ce_id,
  *  buffer information
  * @hif_ctx: hif opaque handle
  * @dma_addr: pointer to array of dma addresses
+ * @buf_size: ce dest ring buffer size
  *
  * Return: Number of buffers attached to the dest srng.
  */
 uint16_t hif_get_direct_link_ce_dest_srng_buffers(struct hif_opaque_softc *scn,
-						  uint64_t **dma_addr);
+						  uint64_t **dma_addr,
+						  uint32_t *buf_size);
 
 /**
  * hif_get_direct_link_ce_srng_info() - Get Direct Link CE srng information
@@ -2590,7 +2592,9 @@ hif_set_irq_config_by_ceid(struct hif_opaque_softc *scn, uint8_t ce_id,
 }
 
 static inline
-uint16_t hif_get_direct_link_ce_dest_srng_buffers(struct hif_opaque_softc *scn)
+uint16_t hif_get_direct_link_ce_dest_srng_buffers(struct hif_opaque_softc *scn,
+						  uint64_t **dma_addr,
+						  uint32_t *buf_size)
 {
 	return 0;
 }

+ 2 - 1
hif/src/ce/ce_api.h

@@ -602,7 +602,8 @@ struct ce_ops {
 						uint8_t ce_id, uint64_t addr,
 						uint32_t data);
 	uint16_t (*ce_get_direct_link_dest_buffers)(struct hif_softc *scn,
-						    uint64_t **dma_addr);
+						    uint64_t **dma_addr,
+						    uint32_t *buf_size);
 	QDF_STATUS (*ce_get_direct_link_ring_info)(struct hif_softc *scn,
 					   struct hif_direct_link_ce_info *info,
 					   uint8_t max_ce_info_len);

+ 4 - 2
hif/src/ce/ce_main.c

@@ -5409,7 +5409,8 @@ hif_set_irq_config_by_ceid(struct hif_opaque_softc *scn, uint8_t ce_id,
 }
 
 uint16_t hif_get_direct_link_ce_dest_srng_buffers(struct hif_opaque_softc *scn,
-						  uint64_t **dma_addr)
+						  uint64_t **dma_addr,
+						  uint32_t *buf_size)
 {
 	struct hif_softc *hif_ctx = HIF_GET_SOFTC(scn);
 	struct HIF_CE_state *hif_state = HIF_GET_CE_STATE(scn);
@@ -5417,7 +5418,8 @@ uint16_t hif_get_direct_link_ce_dest_srng_buffers(struct hif_opaque_softc *scn,
 
 	if (ce_services->ce_get_direct_link_dest_buffers)
 		return ce_services->ce_get_direct_link_dest_buffers(hif_ctx,
-								    dma_addr);
+								    dma_addr,
+								    buf_size);
 
 	return 0;
 }

+ 4 - 1
hif/src/ce/ce_service_srng.c

@@ -1156,7 +1156,8 @@ ce_set_srng_msi_irq_config_by_ceid(struct hif_softc *scn, uint8_t ce_id,
 
 static
 uint16_t ce_get_direct_link_dest_srng_buffers(struct hif_softc *scn,
-					      uint64_t **dma_addr)
+					      uint64_t **dma_addr,
+					      uint32_t *buf_size)
 {
 	struct HIF_CE_state *hif_state = HIF_GET_CE_STATE(scn);
 	struct CE_state *ce_state;
@@ -1193,6 +1194,8 @@ uint16_t ce_get_direct_link_dest_srng_buffers(struct hif_softc *scn,
 			nbuf_dmaaddr[j] = QDF_NBUF_CB_PADDR(nbuf);
 		}
 
+		*buf_size = ce_state->src_sz_max;
+
 		break;
 	}