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

Commit 2c951a98 authored by Amir Levy's avatar Amir Levy
Browse files

msm: gsi: enable IEOB interrupts on MHI mode



Configure IEOB interrupts for MHI channels. Don't handle
these interrupts since handling is needed only for GPI
channels.

CRs-Fixed: 1097871
Change-Id: I6074486a1c858765b069197bf6b0c39d920c270b
Signed-off-by: default avatarAmir Levy <alevy@codeaurora.org>
parent ab6b841b
Loading
Loading
Loading
Loading
+12 −2
Original line number Diff line number Diff line
@@ -455,8 +455,15 @@ static void gsi_handle_ieob(int ee)
				GSIERR("invalid event %d\n", i);
				break;
			}

			ctx = &gsi_ctx->evtr[i];

			/*
			 * Don't handle MSI interrupts, only handle IEOB
			 * IRQs
			 */
			if (ctx->props.intr == GSI_INTR_MSI)
				continue;

			BUG_ON(ctx->props.intf != GSI_EVT_CHTYPE_GPI_EV);
			spin_lock_irqsave(&ctx->ring.slock, flags);
check_again:
@@ -1164,7 +1171,10 @@ int gsi_alloc_evt_ring(struct gsi_evt_ring_props *props, unsigned long dev_hdl,
	spin_lock_irqsave(&gsi_ctx->slock, flags);
	gsi_writel(1 << evt_id, gsi_ctx->base +
			GSI_EE_n_CNTXT_SRC_IEOB_IRQ_CLR_OFFS(ee));
	if (props->intf != GSI_EVT_CHTYPE_GPI_EV)

	/* enable ieob interrupts for GPI, enable MSI interrupts */
	if ((props->intf != GSI_EVT_CHTYPE_GPI_EV) &&
		(props->intr != GSI_INTR_MSI))
		__gsi_config_ieob_irq(gsi_ctx->per.ee, 1 << evt_id, 0);
	else
		__gsi_config_ieob_irq(gsi_ctx->per.ee, 1 << ctx->id, ~0);