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

Commit 86b4ce95 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: Save a copy of the fence name for syncpoint events"

parents 0c54cc67 ff68b65d
Loading
Loading
Loading
Loading
+7 −9
Original line number Diff line number Diff line
@@ -1526,10 +1526,10 @@ void kgsl_dump_syncpoints(struct kgsl_device *device,
			break;
		}
		case KGSL_CMD_SYNCPOINT_TYPE_FENCE:
			if (event->handle && event->handle->fence)
			if (event->handle)
				dev_err(device->dev, "  fence: [%p] %s\n",
					event->handle->fence,
					event->handle->fence->name);
					event->handle->name);
			else
				dev_err(device->dev, "  fence: invalid\n");
			break;
@@ -1790,12 +1790,9 @@ EXPORT_SYMBOL(kgsl_cmdbatch_destroy);
static void kgsl_cmdbatch_sync_fence_func(void *priv)
{
	struct kgsl_cmdbatch_sync_event *event = priv;
	char *name = "unknown";

	if (event->handle && event->handle->fence)
		name = event->handle->fence->name;

	trace_syncpoint_fence_expire(event->cmdbatch, name);
	trace_syncpoint_fence_expire(event->cmdbatch,
		event->handle ? event->handle->name : "unknown");

	kgsl_cmdbatch_sync_expire(event->device, event);
	/* Put events that have signaled */
@@ -1856,10 +1853,11 @@ static int kgsl_cmdbatch_add_sync_fence(struct kgsl_device *device,
	event->handle = kgsl_sync_fence_async_wait(sync->fd,
		kgsl_cmdbatch_sync_fence_func, event);


	if (IS_ERR_OR_NULL(event->handle)) {
		int ret = PTR_ERR(event->handle);

		event->handle = NULL;

		/* Failed to add the event to the async callback */
		kgsl_cmdbatch_sync_event_put(event);

@@ -1882,7 +1880,7 @@ static int kgsl_cmdbatch_add_sync_fence(struct kgsl_device *device,
		return ret;
	}

	trace_syncpoint_fence(cmdbatch, event->handle->fence->name);
	trace_syncpoint_fence(cmdbatch, event->handle->name);

	/*
	 * Event was successfully added to the synclist, the async
+4 −0
Original line number Diff line number Diff line
@@ -403,9 +403,13 @@ struct kgsl_sync_fence_waiter *kgsl_sync_fence_async_wait(int fd,
		sync_fence_put(fence);
		return ERR_PTR(-ENOMEM);
	}

	kwaiter->fence = fence;
	kwaiter->priv = priv;
	kwaiter->func = func;

	strlcpy(kwaiter->name, fence->name, sizeof(kwaiter->name));

	sync_fence_waiter_init((struct sync_fence_waiter *) kwaiter,
		kgsl_sync_callback);

+1 −0
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@ struct kgsl_sync_pt {
struct kgsl_sync_fence_waiter {
	struct sync_fence_waiter waiter;
	struct sync_fence *fence;
	char name[32];
	void (*func)(void *priv);
	void *priv;
};