static int set_submit(struct nvhost_channel_userctx *ctx) { struct device *device = &ctx->ch->dev->pdev->dev; /* submit should have at least 1 cmdbuf */ if (!ctx->hdr.num_cmdbufs) return -EIO; if (!ctx->nvmap) { dev_err(device, "no nvmap context set\n"); return -EFAULT; } ctx->job = nvhost_job_realloc(ctx->job, &ctx->hdr, ctx->nvmap, ctx->priority, ctx->clientid); if (!ctx->job) return -ENOMEM; ctx->job->timeout = ctx->timeout; if (ctx->hdr.submit_version >= NVHOST_SUBMIT_VERSION_V2) ctx->num_relocshifts = ctx->hdr.num_relocs; return 0; }
static int set_submit(struct nvhost_channel_userctx *ctx) { struct nvhost_device *ndev = ctx->ch->dev; struct nvhost_master *host = nvhost_get_host(ndev); /* submit should have at least 1 cmdbuf */ if (!ctx->hdr.num_cmdbufs || !nvhost_syncpt_is_valid(&host->syncpt, ctx->hdr.syncpt_id)) return -EIO; if (!ctx->nvmap) { dev_err(&ndev->dev, "no nvmap context set\n"); return -EFAULT; } ctx->job = nvhost_job_realloc(ctx->job, ctx->hwctx, &ctx->hdr, ctx->nvmap, ctx->priority, ctx->clientid); if (!ctx->job) return -ENOMEM; ctx->job->timeout = ctx->timeout; if (ctx->hdr.submit_version >= NVHOST_SUBMIT_VERSION_V2) ctx->num_relocshifts = ctx->hdr.num_relocs; return 0; }