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

Commit f52a7824 authored by Kyle Piefer's avatar Kyle Piefer
Browse files

msm: kgsl: Move SET_MARKER to after CACHE_FLUSH_TS



IFPC should not happen until after the CACHE_FLUSH_TS.
Move the end SET_MARKER command to after the CACHE_FLUSH_TS
command.

Change-Id: I507c9c89a58b7c2d319661e54cb0cc0dd00c0705
Signed-off-by: default avatarKyle Piefer <kpiefer@codeaurora.org>
parent f92f804a
Loading
Loading
Loading
Loading
+9 −9
Original line number Diff line number Diff line
@@ -534,6 +534,9 @@ adreno_ringbuffer_addcmds(struct adreno_ringbuffer *rb,
				&adreno_dev->ft_pf_policy))
		total_sizedwords += 1;

	if (gpudev->set_marker)
		total_sizedwords += 4;

	ringcmds = adreno_ringbuffer_allocspace(rb, total_sizedwords);
	if (IS_ERR(ringcmds))
		return PTR_ERR(ringcmds);
@@ -553,6 +556,9 @@ adreno_ringbuffer_addcmds(struct adreno_ringbuffer *rb,
		*ringcmds++ = KGSL_CMD_INTERNAL_IDENTIFIER;
	}

	if (gpudev->set_marker)
		ringcmds += gpudev->set_marker(ringcmds, 1);

	if (flags & KGSL_CMD_FLAGS_PWRON_FIXUP) {
		/* Disable protected mode for the fixup */
		*ringcmds++ = cp_packet(adreno_dev, CP_SET_PROTECTED_MODE, 1);
@@ -667,6 +673,9 @@ adreno_ringbuffer_addcmds(struct adreno_ringbuffer *rb,
		*ringcmds++ = timestamp;
	}

	if (gpudev->set_marker)
		ringcmds += gpudev->set_marker(ringcmds, 0);

	if (adreno_is_a3xx(adreno_dev)) {
		/* Dummy set-constant to trigger context rollover */
		*ringcmds++ = cp_packet(adreno_dev, CP_SET_CONSTANT, 2);
@@ -891,9 +900,6 @@ int adreno_ringbuffer_submitcmd(struct adreno_device *adreno_dev,
			dwords += 8;
	}

	if (gpudev->set_marker)
		dwords += 4;

	if (gpudev->ccu_invalidate)
		dwords += 4;

@@ -926,9 +932,6 @@ int adreno_ringbuffer_submitcmd(struct adreno_device *adreno_dev,
			gpu_ticks_submitted));
	}

	if (gpudev->set_marker)
		cmds += gpudev->set_marker(cmds, 1);

	if (numibs) {
		list_for_each_entry(ib, &cmdobj->cmdlist, node) {
			/*
@@ -953,9 +956,6 @@ int adreno_ringbuffer_submitcmd(struct adreno_device *adreno_dev,
	if (gpudev->ccu_invalidate)
		cmds += gpudev->ccu_invalidate(adreno_dev, cmds);

	if (gpudev->set_marker)
		cmds += gpudev->set_marker(cmds, 0);

	if (adreno_is_preemption_execution_enabled(adreno_dev)) {
		if (gpudev->preemption_yield_enable)
			cmds += gpudev->preemption_yield_enable(cmds);