Loading drivers/gpu/msm/kgsl_drawobj.c +31 −1 Original line number Diff line number Diff line Loading @@ -262,12 +262,40 @@ static void drawobj_sync_timeline_fence_work(struct irq_work *work) kgsl_drawobj_put(&event->syncobj->base); } static void trace_syncpoint_timeline_fence(struct kgsl_drawobj_sync *syncobj, struct dma_fence *f, bool expire) { struct dma_fence_array *array = to_dma_fence_array(f); struct dma_fence **fences = &f; u32 num_fences = 1; int i; if (array) { num_fences = array->num_fences; fences = array->fences; } for (i = 0; i < num_fences; i++) { char fence_name[KGSL_FENCE_NAME_LEN]; snprintf(fence_name, sizeof(fence_name), "%s:%llu", fences[i]->ops->get_timeline_name(fences[i]), fences[i]->seqno); if (expire) trace_syncpoint_fence_expire(syncobj, fence_name); else trace_syncpoint_fence(syncobj, fence_name); } } static void drawobj_sync_timeline_fence_callback(struct dma_fence *f, struct dma_fence_cb *cb) { struct kgsl_drawobj_sync_event *event = container_of(cb, struct kgsl_drawobj_sync_event, cb); trace_syncpoint_timeline_fence(event->syncobj, f, true); /* * Mark the event as synced and then fire off a worker to handle * removing the fence Loading Loading @@ -494,9 +522,11 @@ static int drawobj_add_sync_timeline(struct kgsl_device *device, } kgsl_drawobj_put(drawobj); return ret; } return ret; trace_syncpoint_timeline_fence(event->syncobj, event->fence, false); return 0; } static int drawobj_add_sync_fence(struct kgsl_device *device, Loading Loading
drivers/gpu/msm/kgsl_drawobj.c +31 −1 Original line number Diff line number Diff line Loading @@ -262,12 +262,40 @@ static void drawobj_sync_timeline_fence_work(struct irq_work *work) kgsl_drawobj_put(&event->syncobj->base); } static void trace_syncpoint_timeline_fence(struct kgsl_drawobj_sync *syncobj, struct dma_fence *f, bool expire) { struct dma_fence_array *array = to_dma_fence_array(f); struct dma_fence **fences = &f; u32 num_fences = 1; int i; if (array) { num_fences = array->num_fences; fences = array->fences; } for (i = 0; i < num_fences; i++) { char fence_name[KGSL_FENCE_NAME_LEN]; snprintf(fence_name, sizeof(fence_name), "%s:%llu", fences[i]->ops->get_timeline_name(fences[i]), fences[i]->seqno); if (expire) trace_syncpoint_fence_expire(syncobj, fence_name); else trace_syncpoint_fence(syncobj, fence_name); } } static void drawobj_sync_timeline_fence_callback(struct dma_fence *f, struct dma_fence_cb *cb) { struct kgsl_drawobj_sync_event *event = container_of(cb, struct kgsl_drawobj_sync_event, cb); trace_syncpoint_timeline_fence(event->syncobj, f, true); /* * Mark the event as synced and then fire off a worker to handle * removing the fence Loading Loading @@ -494,9 +522,11 @@ static int drawobj_add_sync_timeline(struct kgsl_device *device, } kgsl_drawobj_put(drawobj); return ret; } return ret; trace_syncpoint_timeline_fence(event->syncobj, event->fence, false); return 0; } static int drawobj_add_sync_fence(struct kgsl_device *device, Loading