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

Commit 976a7fa9 authored by qctecmdr's avatar qctecmdr 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 6530338d f1389c48
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -300,7 +300,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;
};
+4 −4
Original line number Diff line number Diff line
@@ -21,7 +21,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);
}

/**
@@ -31,7 +31,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);
@@ -273,7 +273,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);

@@ -288,7 +288,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;
	}