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

Commit c7f53ad9 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "msm: kgsl: Wrap IBs with SET_MARKER packets on A6XX"

parents 2f3837ed aae850c0
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -851,7 +851,7 @@ struct adreno_gpudev {
				unsigned int *cmds,
				struct kgsl_context *context);
	int (*preemption_yield_enable)(unsigned int *);
	unsigned int (*preemption_set_marker)(unsigned int *cmds, int start);
	unsigned int (*set_marker)(unsigned int *cmds, int start);
	unsigned int (*preemption_post_ibsubmit)(
				struct adreno_device *adreno_dev,
				unsigned int *cmds);
+1 −1
Original line number Diff line number Diff line
@@ -2947,7 +2947,7 @@ struct adreno_gpudev adreno_a6xx_gpudev = {
	.preemption_post_ibsubmit = a6xx_preemption_post_ibsubmit,
	.preemption_init = a6xx_preemption_init,
	.preemption_schedule = a6xx_preemption_schedule,
	.preemption_set_marker = a6xx_preemption_set_marker,
	.set_marker = a6xx_set_marker,
	.preemption_context_init = a6xx_preemption_context_init,
	.preemption_context_destroy = a6xx_preemption_context_destroy,
	.gx_is_on = a6xx_gx_is_on,
+1 −1
Original line number Diff line number Diff line
@@ -100,7 +100,7 @@ unsigned int a6xx_preemption_pre_ibsubmit(struct adreno_device *adreno_dev,
		struct adreno_ringbuffer *rb,
		unsigned int *cmds, struct kgsl_context *context);

unsigned int a6xx_preemption_set_marker(unsigned int *cmds, int start);
unsigned int a6xx_set_marker(unsigned int *cmds, int start);

void a6xx_preemption_callback(struct adreno_device *adreno_dev, int bit);

+1 −1
Original line number Diff line number Diff line
@@ -369,7 +369,7 @@ void a6xx_preemption_schedule(struct adreno_device *adreno_dev)
	mutex_unlock(&device->mutex);
}

unsigned int a6xx_preemption_set_marker(unsigned int *cmds, int start)
unsigned int a6xx_set_marker(unsigned int *cmds, int start)
{
	*cmds++ = cp_type7_packet(CP_SET_MARKER, 1);

+12 −13
Original line number Diff line number Diff line
@@ -864,12 +864,12 @@ int adreno_ringbuffer_submitcmd(struct adreno_device *adreno_dev,
			dwords += 2;
	}

	if (adreno_is_preemption_enabled(adreno_dev)) {
		if (gpudev->preemption_set_marker)
			dwords += 4;
		else if (gpudev->preemption_yield_enable)
	if (adreno_is_preemption_enabled(adreno_dev))
		if (gpudev->preemption_yield_enable)
			dwords += 8;
	}

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

	link = kcalloc(dwords, sizeof(unsigned int), GFP_KERNEL);
	if (!link) {
@@ -900,9 +900,8 @@ int adreno_ringbuffer_submitcmd(struct adreno_device *adreno_dev,
			gpu_ticks_submitted));
	}

	if (gpudev->preemption_set_marker &&
			adreno_is_preemption_enabled(adreno_dev))
		cmds += gpudev->preemption_set_marker(cmds, 1);
	if (gpudev->set_marker)
		cmds += gpudev->set_marker(cmds, 1);

	if (numibs) {
		list_for_each_entry(ib, &cmdobj->cmdlist, node) {
@@ -925,12 +924,12 @@ int adreno_ringbuffer_submitcmd(struct adreno_device *adreno_dev,
		}
	}

	if (adreno_is_preemption_enabled(adreno_dev)) {
		if (gpudev->preemption_set_marker)
			cmds += gpudev->preemption_set_marker(cmds, 0);
		else if (gpudev->preemption_yield_enable)
	if (gpudev->set_marker)
		cmds += gpudev->set_marker(cmds, 0);

	if (adreno_is_preemption_enabled(adreno_dev))
		if (gpudev->preemption_yield_enable)
			cmds += gpudev->preemption_yield_enable(cmds);
	}

	if (kernel_profiling) {
		cmds += _get_alwayson_counter(adreno_dev, cmds,