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

Commit d388e528 authored by Harshdeep Dhatt's avatar Harshdeep Dhatt
Browse files

msm: kgsl: Trigger preemption from command complete interrupt



Trigger preemption from the command complete interrupt on A6XX
in order to do fast preemption.

Change-Id: I7dffa97758820a0aaacf7a0e1160d0c85e610ca8
Signed-off-by: default avatarHarshdeep Dhatt <hdhatt@codeaurora.org>
parent 4d9a308b
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -2184,6 +2184,14 @@ static const char *a6xx_iommu_fault_block(struct adreno_device *adreno_dev,
	return uche_client[uche_client_id & A6XX_UCHE_CLIENT_PF_CLIENT_ID_MASK];
}

static void a6xx_cp_callback(struct adreno_device *adreno_dev, int bit)
{
	struct kgsl_device *device = KGSL_DEVICE(adreno_dev);

	a6xx_preemption_trigger(adreno_dev);
	adreno_dispatcher_schedule(device);
}

#define A6XX_INT_MASK \
	((1 << A6XX_INT_CP_AHB_ERROR) |			\
	 (1 << A6XX_INT_ATB_ASYNCFIFO_OVERFLOW) |	\
@@ -2221,7 +2229,7 @@ static struct adreno_irq_funcs a6xx_irq_funcs[32] = {
	ADRENO_IRQ_CALLBACK(NULL), /* 17 - CP_RB_DONE_TS */
	ADRENO_IRQ_CALLBACK(NULL), /* 18 - CP_WT_DONE_TS */
	ADRENO_IRQ_CALLBACK(NULL), /* 19 - UNUSED */
	ADRENO_IRQ_CALLBACK(adreno_cp_callback), /* 20 - CP_CACHE_FLUSH_TS */
	ADRENO_IRQ_CALLBACK(a6xx_cp_callback), /* 20 - CP_CACHE_FLUSH_TS */
	ADRENO_IRQ_CALLBACK(NULL), /* 21 - UNUSED */
	ADRENO_IRQ_CALLBACK(a6xx_err_callback), /* 22 - RBBM_ATB_BUS_OVERFLOW */
	/* 23 - MISC_HANG_DETECT */