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

Commit dd7c6edc authored by Siva Kumar Akkireddi's avatar Siva Kumar Akkireddi
Browse files

msm: mhi_dev: Do not enable aggregated MHI_A7 interrupt



Do not enable the aggregated mhi_a7 irq, and avoid registering
for the corresponding callback if the separate mhi_a7 irq is
supported by the HW to avoid scheduling the workqueue twice for
a single occurrence of the interrupt and to avoid
unbalanced mhi irq enable.

Change-Id: I80ea4e04d9df705bd7c83f117b76c5d5fbbd6ef1
Signed-off-by: default avatarSiva Kumar Akkireddi <sivaa@codeaurora.org>
parent cef92487
Loading
Loading
Loading
Loading
+7 −4
Original line number Diff line number Diff line
@@ -458,6 +458,7 @@ static void mhi_hwc_cb(void *priv, enum ipa_mhi_event_type event,

		mhi_update_state_info(MHI_DEV_UEVENT_CTRL, MHI_STATE_CONNECTED);

		if (!mhi_ctx->mhi_int)
			ep_pcie_mask_irq_event(mhi_ctx->phandle,
					EP_PCIE_INT_EVT_MHI_A7, true);
		break;
@@ -2758,8 +2759,9 @@ static int mhi_dev_resume_mmio_mhi_reinit(struct mhi_dev *mhi_ctx)
		EP_PCIE_EVENT_PM_D3_COLD |
		EP_PCIE_EVENT_PM_D0 |
		EP_PCIE_EVENT_PM_RST_DEAST |
		EP_PCIE_EVENT_MHI_A7 |
		EP_PCIE_EVENT_LINKDOWN;
	if (!mhi_ctx->mhi_int)
		mhi_ctx->event_reg.events |= EP_PCIE_EVENT_MHI_A7;
	mhi_ctx->event_reg.user = mhi_ctx;
	mhi_ctx->event_reg.mode = EP_PCIE_TRIGGER_CALLBACK;
	mhi_ctx->event_reg.callback = mhi_dev_sm_pcie_handler;
@@ -2902,8 +2904,9 @@ static int mhi_dev_resume_mmio_mhi_init(struct mhi_dev *mhi_ctx)
		EP_PCIE_EVENT_PM_D3_COLD |
		EP_PCIE_EVENT_PM_D0 |
		EP_PCIE_EVENT_PM_RST_DEAST |
		EP_PCIE_EVENT_MHI_A7 |
		EP_PCIE_EVENT_LINKDOWN;
	if (!mhi_ctx->mhi_int)
		mhi_ctx->event_reg.events |= EP_PCIE_EVENT_MHI_A7;
	mhi_ctx->event_reg.user = mhi_ctx;
	mhi_ctx->event_reg.mode = EP_PCIE_TRIGGER_CALLBACK;
	mhi_ctx->event_reg.callback = mhi_dev_sm_pcie_handler;