Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 934ff6b4 authored by Vevek Venkatesan's avatar Vevek Venkatesan Committed by Gerrit - the friendly Code Review server
Browse files

qcacmn: assert if SMMU-S1 map/unmap of IPA doorbell addr failed

If the SMMU-S1 mapping/unmapping of IPA doorbell addresses
failed, do assert.

Change-Id: I41faba7002be37c442d306199876c2204120fe31
CRs-Fixed: 2892321
parent c123cd30
Loading
Loading
Loading
Loading
+13 −8
Original line number Original line Diff line number Diff line
@@ -698,6 +698,7 @@ QDF_STATUS dp_ipa_set_doorbell_paddr(struct cdp_soc_t *soc_hdl, uint8_t pdev_id)
			soc->reo_dest_ring[IPA_REO_DEST_RING_IDX].hal_srng;
			soc->reo_dest_ring[IPA_REO_DEST_RING_IDX].hal_srng;
	uint32_t tx_comp_doorbell_dmaaddr;
	uint32_t tx_comp_doorbell_dmaaddr;
	uint32_t rx_ready_doorbell_dmaaddr;
	uint32_t rx_ready_doorbell_dmaaddr;
	int ret = 0;


	if (!pdev) {
	if (!pdev) {
		dp_err("%s invalid instance", __func__);
		dp_err("%s invalid instance", __func__);
@@ -712,13 +713,19 @@ QDF_STATUS dp_ipa_set_doorbell_paddr(struct cdp_soc_t *soc_hdl, uint8_t pdev_id)
				ioremap(ipa_res->tx_comp_doorbell_paddr, 4);
				ioremap(ipa_res->tx_comp_doorbell_paddr, 4);


	if (qdf_mem_smmu_s1_enabled(soc->osdev)) {
	if (qdf_mem_smmu_s1_enabled(soc->osdev)) {
		pld_smmu_map(soc->osdev->dev, ipa_res->tx_comp_doorbell_paddr,
		ret = pld_smmu_map(soc->osdev->dev,
			     &tx_comp_doorbell_dmaaddr, sizeof(uint32_t));
				   ipa_res->tx_comp_doorbell_paddr,
				   &tx_comp_doorbell_dmaaddr,
				   sizeof(uint32_t));
		ipa_res->tx_comp_doorbell_paddr = tx_comp_doorbell_dmaaddr;
		ipa_res->tx_comp_doorbell_paddr = tx_comp_doorbell_dmaaddr;
		qdf_assert_always(!ret);


		pld_smmu_map(soc->osdev->dev, ipa_res->rx_ready_doorbell_paddr,
		ret = pld_smmu_map(soc->osdev->dev,
			     &rx_ready_doorbell_dmaaddr, sizeof(uint32_t));
				   ipa_res->rx_ready_doorbell_paddr,
				   &rx_ready_doorbell_dmaaddr,
				   sizeof(uint32_t));
		ipa_res->rx_ready_doorbell_paddr = rx_ready_doorbell_dmaaddr;
		ipa_res->rx_ready_doorbell_paddr = rx_ready_doorbell_dmaaddr;
		qdf_assert_always(!ret);
	}
	}


	DP_IPA_SET_TX_DB_PADDR(soc, ipa_res);
	DP_IPA_SET_TX_DB_PADDR(soc, ipa_res);
@@ -1620,14 +1627,12 @@ QDF_STATUS dp_ipa_cleanup(struct cdp_soc_t *soc_hdl, uint8_t pdev_id,
		ret = pld_smmu_unmap(soc->osdev->dev,
		ret = pld_smmu_unmap(soc->osdev->dev,
				     ipa_res->rx_ready_doorbell_paddr,
				     ipa_res->rx_ready_doorbell_paddr,
				     sizeof(uint32_t));
				     sizeof(uint32_t));
		if (ret)
		qdf_assert_always(!ret);
			dp_err_rl("IPA RX DB smmu unmap failed");


		ret = pld_smmu_unmap(soc->osdev->dev,
		ret = pld_smmu_unmap(soc->osdev->dev,
				     ipa_res->tx_comp_doorbell_paddr,
				     ipa_res->tx_comp_doorbell_paddr,
				     sizeof(uint32_t));
				     sizeof(uint32_t));
		if (ret)
		qdf_assert_always(!ret);
			dp_err_rl("IPA TX DB smmu unmap failed");
	}
	}


exit:
exit: