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

Commit fd668bc8 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 8f3f28a5
Loading
Loading
Loading
Loading
+12 −2
Original line number Diff line number Diff line
@@ -446,8 +446,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:
@@ -1155,7 +1162,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);