Lines Matching +full:bottom +full:- +full:speed

1 // SPDX-License-Identifier: GPL-2.0-or-later
3 * Low-level SPU handling
26 if (ctx->flags & SPU_CREATE_EVENTS_ENABLED) { in spufs_handle_event()
27 ctx->event_return |= type; in spufs_handle_event()
28 wake_up_all(&ctx->stop_wq); in spufs_handle_event()
37 ctx->ops->restart_dma(ctx); in spufs_handle_event()
48 ctx->ops->npc_read(ctx) - 4); in spufs_handle_event()
55 unsigned long stat = ctx->csa.class_0_pending & CLASS0_INTR_MASK; in spufs_handle_class0()
61 spufs_handle_event(ctx, ctx->csa.class_0_dar, in spufs_handle_class0()
65 spufs_handle_event(ctx, ctx->csa.class_0_dar, in spufs_handle_class0()
69 spufs_handle_event(ctx, ctx->csa.class_0_dar, in spufs_handle_class0()
72 ctx->csa.class_0_pending = 0; in spufs_handle_class0()
74 return -EIO; in spufs_handle_class0()
78 * bottom half handler for page faults, we can't do this from
84 * in order to speed up the easy case.
102 ea = ctx->csa.class_1_dar; in spufs_handle_class1()
103 dsisr = ctx->csa.class_1_dsisr; in spufs_handle_class1()
111 dsisr, ctx->state); in spufs_handle_class1()
113 ctx->stats.hash_flt++; in spufs_handle_class1()
114 if (ctx->state == SPU_STATE_RUNNABLE) in spufs_handle_class1()
115 ctx->spu->stats.hash_flt++; in spufs_handle_class1()
128 ret = copro_handle_mm_fault(current->mm, ea, dsisr, &flt); in spufs_handle_class1()
134 mutex_lock(&ctx->state_mutex); in spufs_handle_class1()
141 ctx->csa.class_1_dar = ctx->csa.class_1_dsisr = 0; in spufs_handle_class1()
150 ctx->stats.maj_flt++; in spufs_handle_class1()
152 ctx->stats.min_flt++; in spufs_handle_class1()
153 if (ctx->state == SPU_STATE_RUNNABLE) { in spufs_handle_class1()
155 ctx->spu->stats.maj_flt++; in spufs_handle_class1()
157 ctx->spu->stats.min_flt++; in spufs_handle_class1()
160 if (ctx->spu) in spufs_handle_class1()
161 ctx->ops->restart_dma(ctx); in spufs_handle_class1()