• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/linux/linux-2.6/arch/powerpc/platforms/cell/spufs/

Lines Matching refs:ctx

16 	struct spu_context *ctx = spu->ctx;
18 wake_up_all(&ctx->stop_wq);
21 static inline int spu_stopped(struct spu_context *ctx, u32 * stat)
26 *stat = ctx->ops->status_read(ctx);
27 if (ctx->state != SPU_STATE_RUNNABLE)
29 spu = ctx->spu;
35 static int spu_setup_isolated(struct spu_context *ctx)
55 spu_unmap_mappings(ctx);
57 mfc_cntl = &ctx->spu->priv2->mfc_control_RW;
75 sr1 = spu_mfc_sr1_get(ctx->spu);
77 spu_mfc_sr1_set(ctx->spu, sr1);
80 ctx->ops->signal1_write(ctx, (unsigned long)isolated_loader >> 32);
81 ctx->ops->signal2_write(ctx,
84 ctx->ops->runcntl_write(ctx,
89 while (((status = ctx->ops->status_read(ctx)) & status_loading) ==
104 ctx->ops->runcntl_write(ctx, SPU_RUNCNTL_RUNNABLE);
112 ctx->ops->runcntl_write(ctx, SPU_RUNCNTL_STOP);
120 spu_mfc_sr1_set(ctx->spu, sr1);
126 static int spu_run_init(struct spu_context *ctx, u32 * npc)
128 if (ctx->flags & SPU_CREATE_ISOLATE) {
131 if (!(ctx->ops->status_read(ctx) & SPU_STATUS_ISOLATED_STATE)) {
132 int ret = spu_setup_isolated(ctx);
139 runcntl = ctx->ops->runcntl_read(ctx) &
143 ctx->ops->runcntl_write(ctx, runcntl);
145 spu_start_tick(ctx);
146 ctx->ops->npc_write(ctx, *npc);
147 ctx->ops->runcntl_write(ctx, SPU_RUNCNTL_RUNNABLE);
153 static int spu_run_fini(struct spu_context *ctx, u32 * npc,
158 spu_stop_tick(ctx);
159 *status = ctx->ops->status_read(ctx);
160 *npc = ctx->ops->npc_read(ctx);
161 spu_release(ctx);
169 static int spu_reacquire_runnable(struct spu_context *ctx, u32 *npc,
174 ret = spu_run_fini(ctx, npc, status);
181 ret = spu_acquire_runnable(ctx, 0);
185 ret = spu_run_init(ctx, npc);
187 spu_release(ctx);
201 int spu_handle_restartsys(struct spu_context *ctx, long *spu_ret,
237 int spu_process_callback(struct spu_context *ctx)
246 npc = ctx->ops->npc_read(ctx) & ~3;
247 ls = (void __iomem *)ctx->ops->get_ls(ctx);
259 spu_release(ctx);
263 ret = spu_handle_restartsys(ctx, &spu_ret, &npc);
265 spu_acquire(ctx);
272 ctx->ops->npc_write(ctx, npc);
273 ctx->ops->runcntl_write(ctx, SPU_RUNCNTL_RUNNABLE);
277 static inline int spu_process_events(struct spu_context *ctx)
279 struct spu *spu = ctx->spu;
289 long spufs_run_spu(struct file *file, struct spu_context *ctx,
295 if (mutex_lock_interruptible(&ctx->run_mutex))
298 ctx->ops->master_start(ctx);
299 ctx->event_return = 0;
301 ret = spu_acquire_runnable(ctx, 0);
305 ret = spu_run_init(ctx, npc);
307 spu_release(ctx);
312 ret = spufs_wait(ctx->stop_wq, spu_stopped(ctx, &status));
317 ret = spu_process_callback(ctx);
322 ret = spufs_handle_class1(ctx);
326 if (unlikely(ctx->state != SPU_STATE_RUNNABLE)) {
327 ret = spu_reacquire_runnable(ctx, npc, &status);
329 spu_stop_tick(ctx);
334 ret = spu_process_events(ctx);
339 ctx->ops->master_stop(ctx);
340 ret = spu_run_fini(ctx, npc, &status);
341 spu_yield(ctx);
358 *event = ctx->event_return;
359 mutex_unlock(&ctx->run_mutex);