Lines Matching refs:disp

50 	struct nvkm_disp *disp = container_of(event, typeof(*disp), vblank);
51 struct nvkm_head *head = nvkm_head_find(disp, id);
59 struct nvkm_disp *disp = container_of(event, typeof(*disp), vblank);
60 struct nvkm_head *head = nvkm_head_find(disp, id);
69 struct nvkm_disp *disp =
70 container_of(notify->event, typeof(*disp), vblank);
78 if (ret = -ENXIO, req->v0.head <= disp->vblank.index_nr) {
96 nvkm_disp_vblank(struct nvkm_disp *disp, int head)
99 nvkm_event_send(&disp->vblank, 1, head, &rep, sizeof(rep));
106 struct nvkm_disp *disp =
107 container_of(notify->event, typeof(*disp), hpd);
116 list_for_each_entry(outp, &disp->outp, head) {
139 struct nvkm_disp *disp = nvkm_disp(object->engine);
142 *event = &disp->vblank;
145 *event = &disp->hpd;
156 struct nvkm_disp *disp = nvkm_disp(oproxy->base.engine);
157 mutex_lock(&disp->engine.subdev.mutex);
158 if (disp->client == oproxy)
159 disp->client = NULL;
160 mutex_unlock(&disp->engine.subdev.mutex);
174 struct nvkm_disp *disp = nvkm_disp(oclass->engine);
183 mutex_lock(&disp->engine.subdev.mutex);
184 if (disp->client) {
185 mutex_unlock(&disp->engine.subdev.mutex);
188 disp->client = oproxy;
189 mutex_unlock(&disp->engine.subdev.mutex);
191 return sclass->ctor(disp, oclass, data, size, &oproxy->object);
203 struct nvkm_disp *disp = nvkm_disp(oclass->engine);
205 const struct nvkm_disp_oclass *root = disp->func->root(disp);
217 struct nvkm_disp *disp = nvkm_disp(engine);
218 disp->func->intr(disp);
224 struct nvkm_disp *disp = nvkm_disp(engine);
228 if (disp->func->fini)
229 disp->func->fini(disp);
231 list_for_each_entry(outp, &disp->outp, head) {
235 list_for_each_entry(conn, &disp->conn, head) {
245 struct nvkm_disp *disp = nvkm_disp(engine);
250 list_for_each_entry(conn, &disp->conn, head) {
254 list_for_each_entry(outp, &disp->outp, head) {
258 if (disp->func->init) {
259 int ret = disp->func->init(disp);
267 list_for_each_entry(ior, &disp->ior, head) {
277 struct nvkm_disp *disp = nvkm_disp(engine);
278 struct nvkm_subdev *subdev = &disp->engine.subdev;
306 ret = nvkm_outp_new(disp, i, &dcbE, &outp);
309 ret = nvkm_dp_new(disp, i, &dcbE, &outp);
334 list_add_tail(&outp->head, &disp->outp);
339 list_for_each_entry_safe(outp, outt, &disp->outp, head) {
353 list_for_each_entry(pair, &disp->outp, head) {
373 list_for_each_entry(conn, &disp->conn, head) {
384 ret = nvkm_conn_new(disp, i, &connE, &outp->conn);
386 nvkm_error(&disp->engine.subdev,
395 list_add_tail(&outp->conn->head, &disp->conn);
398 ret = nvkm_event_init(&nvkm_disp_hpd_func, 3, hpd, &disp->hpd);
402 if (disp->func->oneinit) {
403 ret = disp->func->oneinit(disp);
411 list_for_each_entry(outp, &disp->outp, head) {
414 ior = nvkm_ior_find(disp, SOR, ffs(outp->info.or) - 1);
422 list_for_each_entry(head, &disp->head, head)
425 return nvkm_event_init(&nvkm_disp_vblank_func, 1, i, &disp->vblank);
431 struct nvkm_disp *disp = nvkm_disp(engine);
434 void *data = disp;
436 if (disp->func->dtor)
437 data = disp->func->dtor(disp);
439 nvkm_event_fini(&disp->vblank);
440 nvkm_event_fini(&disp->hpd);
442 while (!list_empty(&disp->conn)) {
443 conn = list_first_entry(&disp->conn, typeof(*conn), head);
448 while (!list_empty(&disp->outp)) {
449 outp = list_first_entry(&disp->outp, typeof(*outp), head);
454 while (!list_empty(&disp->ior)) {
456 list_first_entry(&disp->ior, typeof(*ior), head);
460 while (!list_empty(&disp->head)) {
462 list_first_entry(&disp->head, typeof(*head), head);
481 int index, struct nvkm_disp *disp)
483 disp->func = func;
484 INIT_LIST_HEAD(&disp->head);
485 INIT_LIST_HEAD(&disp->ior);
486 INIT_LIST_HEAD(&disp->outp);
487 INIT_LIST_HEAD(&disp->conn);
488 return nvkm_engine_ctor(&nvkm_disp, device, index, true, &disp->engine);