Lines Matching defs:host

23 host1x_syncpt_base_request(struct host1x *host)
25 struct host1x_syncpt_base *bases = host->bases;
28 for (i = 0; i < host->info->nb_bases; i++)
32 if (i >= host->info->nb_bases)
45 static struct host1x_syncpt *host1x_syncpt_alloc(struct host1x *host,
49 struct host1x_syncpt *sp = host->syncpt;
53 mutex_lock(&host->syncpt_mutex);
55 for (i = 0; i < host->info->nb_pts && sp->name; i++, sp++)
58 if (i >= host->info->nb_pts)
62 sp->base = host1x_syncpt_base_request(host);
80 mutex_unlock(&host->syncpt_mutex);
87 mutex_unlock(&host->syncpt_mutex);
119 void host1x_syncpt_restore(struct host1x *host)
121 struct host1x_syncpt *sp_base = host->syncpt;
124 for (i = 0; i < host1x_syncpt_nb_pts(host); i++)
125 host1x_hw_syncpt_restore(host, sp_base + i);
127 for (i = 0; i < host1x_syncpt_nb_bases(host); i++)
128 host1x_hw_syncpt_restore_wait_base(host, sp_base + i);
137 void host1x_syncpt_save(struct host1x *host)
139 struct host1x_syncpt *sp_base = host->syncpt;
142 for (i = 0; i < host1x_syncpt_nb_pts(host); i++) {
144 host1x_hw_syncpt_load(host, sp_base + i);
149 for (i = 0; i < host1x_syncpt_nb_bases(host); i++)
150 host1x_hw_syncpt_load_wait_base(host, sp_base + i);
161 val = host1x_hw_syncpt_load(sp->host, sp);
172 host1x_hw_syncpt_load_wait_base(sp->host, sp);
183 return host1x_hw_syncpt_cpu_incr(sp->host, sp);
193 host1x_hw_syncpt_load(sp->host, sp);
226 val = host1x_hw_syncpt_load(sp->host, sp);
247 err = host1x_intr_add_action(sp->host, sp, thresh,
283 dev_warn(sp->host->dev,
288 host1x_debug_dump_syncpts(sp->host);
291 host1x_debug_dump(sp->host);
297 host1x_intr_put_ref(sp->host, sp->id, ref);
365 int host1x_syncpt_init(struct host1x *host)
371 syncpt = devm_kcalloc(host->dev, host->info->nb_pts, sizeof(*syncpt),
376 bases = devm_kcalloc(host->dev, host->info->nb_bases, sizeof(*bases),
381 for (i = 0; i < host->info->nb_pts; i++) {
383 syncpt[i].host = host;
390 host1x_hw_syncpt_assign_to_channel(host, &syncpt[i], NULL);
393 for (i = 0; i < host->info->nb_bases; i++)
396 mutex_init(&host->syncpt_mutex);
397 host->syncpt = syncpt;
398 host->bases = bases;
400 host1x_syncpt_restore(host);
401 host1x_hw_syncpt_enable_protection(host);
404 host->nop_sp = host1x_syncpt_alloc(host, NULL, 0);
405 if (!host->nop_sp)
424 struct host1x *host = dev_get_drvdata(client->host->parent);
426 return host1x_syncpt_alloc(host, client, flags);
445 mutex_lock(&sp->host->syncpt_mutex);
454 mutex_unlock(&sp->host->syncpt_mutex);
458 void host1x_syncpt_deinit(struct host1x *host)
460 struct host1x_syncpt *sp = host->syncpt;
463 for (i = 0; i < host->info->nb_pts; i++, sp++)
507 unsigned int host1x_syncpt_nb_pts(struct host1x *host)
509 return host->info->nb_pts;
512 unsigned int host1x_syncpt_nb_bases(struct host1x *host)
514 return host->info->nb_bases;
517 unsigned int host1x_syncpt_nb_mlocks(struct host1x *host)
519 return host->info->nb_mlocks;
524 * @host: host1x controller
527 struct host1x_syncpt *host1x_syncpt_get(struct host1x *host, unsigned int id)
529 if (id >= host->info->nb_pts)
532 return host->syncpt + id;