void kbase_event_close(kbase_context *kctx) { mutex_lock(&kctx->event_mutex); kctx->event_closed = MALI_TRUE; mutex_unlock(&kctx->event_mutex); kbase_event_wakeup(kctx); }
static void kbase_event_post_worker(osk_workq_work *data) { kbase_jd_atom *atom = CONTAINER_OF(data, kbase_jd_atom, work); kbase_context *ctx = atom->kctx; if (atom->core_req & BASE_JD_REQ_EXTERNAL_RESOURCES) { kbase_jd_free_external_resources(atom); } if (atom->core_req & BASE_JD_REQ_EVENT_ONLY_ON_FAILURE) { if (atom->event_code == BASE_JD_EVENT_DONE) { /* Don't report the event */ kbase_event_process(ctx, atom); return; } } mutex_lock(&ctx->event_mutex); OSK_DLIST_PUSH_BACK(&ctx->event_list, atom, kbase_jd_atom, dep_item[0]); mutex_unlock(&ctx->event_mutex); kbase_event_wakeup(ctx); }
void kbase_event_close(struct kbase_context *kctx) { mutex_lock(&kctx->event_mutex); kctx->event_closed = true; mutex_unlock(&kctx->event_mutex); kbase_event_wakeup(kctx); }
static void kbase_event_post_worker(struct work_struct *data) { kbase_jd_atom *atom = CONTAINER_OF(data, kbase_jd_atom, work); kbase_context *ctx = atom->kctx; if (atom->core_req & BASE_JD_REQ_EXTERNAL_RESOURCES) kbase_jd_free_external_resources(atom); if (atom->core_req & BASE_JD_REQ_EVENT_ONLY_ON_FAILURE) { if (atom->event_code == BASE_JD_EVENT_DONE) { /* Don't report the event */ kbase_event_process(ctx, atom); return; } } if (atom->core_req & BASEP_JD_REQ_EVENT_NEVER) { /* Don't report the event */ kbase_event_process(ctx, atom); return; } mutex_lock(&ctx->event_mutex); list_add_tail(&atom->dep_item[0], &ctx->event_list); mutex_unlock(&ctx->event_mutex); kbase_event_wakeup(ctx); }
void kbase_event_post(struct kbase_context *ctx, struct kbase_jd_atom *atom) { if (atom->core_req & BASE_JD_REQ_EVENT_ONLY_ON_FAILURE) { if (atom->event_code == BASE_JD_EVENT_DONE) { /* Don't report the event */ kbase_event_process_noreport(ctx, atom); return; } } if (atom->core_req & BASEP_JD_REQ_EVENT_NEVER) { /* Don't report the event */ kbase_event_process_noreport(ctx, atom); return; } mutex_lock(&ctx->event_mutex); list_add_tail(&atom->dep_item[0], &ctx->event_list); mutex_unlock(&ctx->event_mutex); kbase_event_wakeup(ctx); }