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

Commit 8f8ea681 authored by Siddartha Mohanadoss's avatar Siddartha Mohanadoss
Browse files

msm: mhi_dev: Update MHI interrupt and local address properties



Modem Host Interface (MHI) is not required to register for a
dedicated interrupt for control and data processing since the
interrupt is handled by PCIe driver. MHI registers with the
PCIe driver and gets notification to handle control and data
processing with the host. MHI uses IPA DMA for transferring
data between host and device and does not need the local
physical address property which was used to map the host
address region and address translation. Therefore remove
these properties.

Change-Id: Ia108347b4a9d5d031676686b2de5f9dac21602a5
Signed-off-by: default avatarSiddartha Mohanadoss <smohanad@codeaurora.org>
parent 718b9859
Loading
Loading
Loading
Loading
+0 −7
Original line number Diff line number Diff line
@@ -14,12 +14,8 @@ Required properties:
	       "ipa_uc_mbox_crdb" for IPA uC Command Ring doorbell,
	       "ipa_uc_mbox_erdb" for IPA uC Event Ring doorbell passed to
	       the IPA driver.
  - interrupts: The MHI interrupt used when Host issues request to
		process pending data to be read by the device.
  - interrupt-names: Should be mhi-device-inta for MHI interrupt.
  - qcom,mhi-ifc-id: ID of HW interface via which MHI on device side
		communicates with host side.
  - qcom,mhi-local-pa-base: MHI device local physical start address.
  - qcom,mhi-ep-msi: End point MSI number.
  - qcom,mhi-version: MHI specification version supported by the device.

@@ -32,10 +28,7 @@ Example:
		     <0xfd4fa080 0x1>;
		reg-names = "mhi_mmio_base", "ipa_uc_mbox_crdb",
			    "ipa_uc_mbox_erdb";
		interrupts = <0 42 0>;
		interrupt-names = "mhi-device-inta";
		qcom,mhi-ifc-id = <0x030017cb>;
		qcom,mhi-local-pa-base = <80000000>;
		qcom,mhi-ep-msi = <1>;
		qcom,mhi-version = <0x1000000>;
	};
+0 −15
Original line number Diff line number Diff line
@@ -1690,23 +1690,8 @@ static int get_device_tree_data(struct platform_device *pdev)

	mhi->ipa_uc_mbox_erdb = res_mem->start;

	mhi->mhi_irq = platform_get_irq_byname(pdev, "mhi-device-inta");
	if (mhi->mhi_irq < 0) {
		pr_err("Invalid MHI device interrupt\n");
		rc = mhi->mhi_irq;
		return rc;
	}

	mhi_ctx = mhi;

	rc = of_property_read_u32((&pdev->dev)->of_node,
				"qcom,mhi-local-pa-base",
				&mhi_ctx->device_local_pa_base);
	if (rc) {
		pr_err("qcom,mhi-local-pa-base does not exist.\n");
		return rc;
	}

	rc = of_property_read_u32((&pdev->dev)->of_node,
				"qcom,mhi-ifc-id",
				&mhi_ctx->ifc_id);
+0 −2
Original line number Diff line number Diff line
@@ -479,7 +479,6 @@ struct mhi_dev {
	struct mhi_dev_ch_ctx		*cmd_ctx_cache;
	dma_addr_t			cmd_ctx_cache_dma_handle;
	struct mhi_dev_ring		*ring;
	int				mhi_irq;
	struct mhi_dev_channel		*ch;

	int				ctrl_int;
@@ -515,7 +514,6 @@ struct mhi_dev {
	atomic_t			write_active;
	atomic_t			is_suspended;
	struct mutex			mhi_write_test;
	u32				device_local_pa_base;
	u32				mhi_ep_msi_num;
	u32				mhi_version;
	void				*dma_cache;