Эх сурвалжийг харах

qcacmn: get CMEM info from cnss platform

Get the CMEM info from cnss platform.

Change-Id: Id6e72164b10e18ef6ce3c4cda72f3b427107c640
CRs-Fixed: 2929524
Jinwei Chen 4 жил өмнө
parent
commit
1bb3155d2c

+ 23 - 0
hif/src/hif_main.h

@@ -315,6 +315,10 @@ struct hif_softc {
 	qdf_atomic_t dp_ep_vote_access;
 	qdf_atomic_t ep_vote_access;
 #endif
+	/* CMEM address target reserved for host usage */
+	uint64_t cmem_start;
+	/* CMEM size target reserved */
+	uint64_t cmem_size;
 };
 
 static inline
@@ -328,6 +332,25 @@ void *hif_get_hal_handle(struct hif_opaque_softc *hif_hdl)
 	return sc->hal_soc;
 }
 
+/**
+ * hif_get_cmem_info() - get CMEM address and size from HIF handle
+ * @hif_hdl: HIF handle pointer
+ * @cmem_start: pointer for CMEM address
+ * @cmem_size: pointer for CMEM size
+ *
+ * Return: None.
+ */
+static inline
+void hif_get_cmem_info(struct hif_opaque_softc *hif_hdl,
+		       uint64_t *cmem_start,
+		       uint64_t *cmem_size)
+{
+	struct hif_softc *sc = (struct hif_softc *)hif_hdl;
+
+	*cmem_start = sc->cmem_start;
+	*cmem_size = sc->cmem_size;
+}
+
 /**
  * Max waiting time during Runtime PM suspend to finish all
  * the tasks. This is in the multiple of 10ms.

+ 3 - 0
hif/src/pcie/if_pci.c

@@ -3363,6 +3363,9 @@ static void hif_pci_get_soc_info_pld(struct hif_pci_softc *sc,
 	sc->mem = info.v_addr;
 	sc->ce_sc.ol_sc.mem    = info.v_addr;
 	sc->ce_sc.ol_sc.mem_pa = info.p_addr;
+	/* dev_mem_info[0] is for CMEM */
+	scn->cmem_start = info.dev_mem_info[0].start;
+	scn->cmem_size = info.dev_mem_info[0].size;
 	scn->target_info.target_version = info.soc_id;
 	scn->target_info.target_revision = 0;
 }