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

Commit c3fb549e 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: Use event workqueue for event work instead of RT Kthread worker"

parents bb1faf31 1fa9bc00
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -315,7 +315,7 @@ struct kgsl_event {
	void *priv;
	struct list_head node;
	unsigned int created;
	struct kthread_work work;
	struct work_struct work;
	int result;
	struct kgsl_event_group *group;
};
+5 −5
Original line number Diff line number Diff line
/* Copyright (c) 2011-2017, The Linux Foundation. All rights reserved.
/* Copyright (c) 2011-2017, 2019, The Linux Foundation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
@@ -32,7 +32,7 @@ static inline void signal_event(struct kgsl_device *device,
{
	list_del(&event->node);
	event->result = result;
	kthread_queue_work(&kgsl_driver.worker, &event->work);
	queue_work(device->events_wq, &event->work);
}

/**
@@ -42,7 +42,7 @@ static inline void signal_event(struct kgsl_device *device,
 * Each event callback has its own work struct and is run on a event specific
 * workqeuue.  This is the worker that queues up the event callback function.
 */
static void _kgsl_event_worker(struct kthread_work *work)
static void _kgsl_event_worker(struct work_struct *work)
{
	struct kgsl_event *event = container_of(work, struct kgsl_event, work);
	int id = KGSL_CONTEXT_ID(event->context);
@@ -286,7 +286,7 @@ int kgsl_add_event(struct kgsl_device *device, struct kgsl_event_group *group,
	event->created = jiffies;
	event->group = group;

	kthread_init_work(&event->work, _kgsl_event_worker);
	INIT_WORK(&event->work, _kgsl_event_worker);

	trace_kgsl_register_event(KGSL_CONTEXT_ID(context), timestamp, func);

@@ -301,7 +301,7 @@ int kgsl_add_event(struct kgsl_device *device, struct kgsl_event_group *group,

	if (timestamp_cmp(retired, timestamp) >= 0) {
		event->result = KGSL_EVENT_RETIRED;
		kthread_queue_work(&kgsl_driver.worker, &event->work);
		queue_work(device->events_wq, &event->work);
		spin_unlock(&group->lock);
		return 0;
	}