Lines Matching full:disp

45 	struct nvkm_disp *disp = container_of(event, typeof(*disp), vblank);  in nvkm_disp_vblank_fini()  local
46 struct nvkm_head *head = nvkm_head_find(disp, id); in nvkm_disp_vblank_fini()
54 struct nvkm_disp *disp = container_of(event, typeof(*disp), vblank); in nvkm_disp_vblank_init() local
55 struct nvkm_head *head = nvkm_head_find(disp, id); in nvkm_disp_vblank_init()
64 struct nvkm_disp *disp = in nvkm_disp_vblank_ctor() local
65 container_of(notify->event, typeof(*disp), vblank); in nvkm_disp_vblank_ctor()
73 if (ret = -ENXIO, req->v0.head <= disp->vblank.index_nr) { in nvkm_disp_vblank_ctor()
91 nvkm_disp_vblank(struct nvkm_disp *disp, int head) in nvkm_disp_vblank() argument
94 nvkm_event_send(&disp->vblank, 1, head, &rep, sizeof(rep)); in nvkm_disp_vblank()
101 struct nvkm_disp *disp = in nvkm_disp_hpd_ctor() local
102 container_of(notify->event, typeof(*disp), hpd); in nvkm_disp_hpd_ctor()
111 list_for_each_entry(outp, &disp->outp, head) { in nvkm_disp_hpd_ctor()
134 struct nvkm_disp *disp = nvkm_disp(object->engine); in nvkm_disp_ntfy() local
137 *event = &disp->vblank; in nvkm_disp_ntfy()
140 *event = &disp->hpd; in nvkm_disp_ntfy()
151 struct nvkm_disp *disp = nvkm_disp(oproxy->base.engine); in nvkm_disp_class_del() local
152 mutex_lock(&disp->engine.subdev.mutex); in nvkm_disp_class_del()
153 if (disp->client == oproxy) in nvkm_disp_class_del()
154 disp->client = NULL; in nvkm_disp_class_del()
155 mutex_unlock(&disp->engine.subdev.mutex); in nvkm_disp_class_del()
169 struct nvkm_disp *disp = nvkm_disp(oclass->engine); in nvkm_disp_class_new() local
178 mutex_lock(&disp->engine.subdev.mutex); in nvkm_disp_class_new()
179 if (disp->client) { in nvkm_disp_class_new()
180 mutex_unlock(&disp->engine.subdev.mutex); in nvkm_disp_class_new()
183 disp->client = oproxy; in nvkm_disp_class_new()
184 mutex_unlock(&disp->engine.subdev.mutex); in nvkm_disp_class_new()
186 return sclass->ctor(disp, oclass, data, size, &oproxy->object); in nvkm_disp_class_new()
198 struct nvkm_disp *disp = nvkm_disp(oclass->engine); in nvkm_disp_class_get() local
200 const struct nvkm_disp_oclass *root = disp->func->root(disp); in nvkm_disp_class_get()
212 struct nvkm_disp *disp = nvkm_disp(engine); in nvkm_disp_intr() local
213 disp->func->intr(disp); in nvkm_disp_intr()
219 struct nvkm_disp *disp = nvkm_disp(engine); in nvkm_disp_fini() local
223 if (disp->func->fini) in nvkm_disp_fini()
224 disp->func->fini(disp); in nvkm_disp_fini()
226 list_for_each_entry(outp, &disp->outp, head) { in nvkm_disp_fini()
230 list_for_each_entry(conn, &disp->conn, head) { in nvkm_disp_fini()
240 struct nvkm_disp *disp = nvkm_disp(engine); in nvkm_disp_init() local
245 list_for_each_entry(conn, &disp->conn, head) { in nvkm_disp_init()
249 list_for_each_entry(outp, &disp->outp, head) { in nvkm_disp_init()
253 if (disp->func->init) { in nvkm_disp_init()
254 int ret = disp->func->init(disp); in nvkm_disp_init()
262 list_for_each_entry(ior, &disp->ior, head) { in nvkm_disp_init()
272 struct nvkm_disp *disp = nvkm_disp(engine); in nvkm_disp_oneinit() local
273 struct nvkm_subdev *subdev = &disp->engine.subdev; in nvkm_disp_oneinit()
301 ret = nvkm_outp_new(disp, i, &dcbE, &outp); in nvkm_disp_oneinit()
304 ret = nvkm_dp_new(disp, i, &dcbE, &outp); in nvkm_disp_oneinit()
329 list_add_tail(&outp->head, &disp->outp); in nvkm_disp_oneinit()
334 list_for_each_entry_safe(outp, outt, &disp->outp, head) { in nvkm_disp_oneinit()
348 list_for_each_entry(pair, &disp->outp, head) { in nvkm_disp_oneinit()
368 list_for_each_entry(conn, &disp->conn, head) { in nvkm_disp_oneinit()
379 ret = nvkm_conn_new(disp, i, &connE, &outp->conn); in nvkm_disp_oneinit()
381 nvkm_error(&disp->engine.subdev, in nvkm_disp_oneinit()
390 list_add_tail(&outp->conn->head, &disp->conn); in nvkm_disp_oneinit()
393 ret = nvkm_event_init(&nvkm_disp_hpd_func, 3, hpd, &disp->hpd); in nvkm_disp_oneinit()
397 if (disp->func->oneinit) { in nvkm_disp_oneinit()
398 ret = disp->func->oneinit(disp); in nvkm_disp_oneinit()
406 list_for_each_entry(outp, &disp->outp, head) { in nvkm_disp_oneinit()
409 ior = nvkm_ior_find(disp, SOR, ffs(outp->info.or) - 1); in nvkm_disp_oneinit()
417 list_for_each_entry(head, &disp->head, head) in nvkm_disp_oneinit()
420 return nvkm_event_init(&nvkm_disp_vblank_func, 1, i, &disp->vblank); in nvkm_disp_oneinit()
426 struct nvkm_disp *disp = nvkm_disp(engine); in nvkm_disp_dtor() local
429 void *data = disp; in nvkm_disp_dtor()
431 if (disp->func->dtor) in nvkm_disp_dtor()
432 data = disp->func->dtor(disp); in nvkm_disp_dtor()
434 nvkm_event_fini(&disp->vblank); in nvkm_disp_dtor()
435 nvkm_event_fini(&disp->hpd); in nvkm_disp_dtor()
437 while (!list_empty(&disp->conn)) { in nvkm_disp_dtor()
438 conn = list_first_entry(&disp->conn, typeof(*conn), head); in nvkm_disp_dtor()
443 while (!list_empty(&disp->outp)) { in nvkm_disp_dtor()
444 outp = list_first_entry(&disp->outp, typeof(*outp), head); in nvkm_disp_dtor()
449 while (!list_empty(&disp->ior)) { in nvkm_disp_dtor()
451 list_first_entry(&disp->ior, typeof(*ior), head); in nvkm_disp_dtor()
455 while (!list_empty(&disp->head)) { in nvkm_disp_dtor()
457 list_first_entry(&disp->head, typeof(*head), head); in nvkm_disp_dtor()
476 int index, struct nvkm_disp *disp) in nvkm_disp_ctor() argument
478 disp->func = func; in nvkm_disp_ctor()
479 INIT_LIST_HEAD(&disp->head); in nvkm_disp_ctor()
480 INIT_LIST_HEAD(&disp->ior); in nvkm_disp_ctor()
481 INIT_LIST_HEAD(&disp->outp); in nvkm_disp_ctor()
482 INIT_LIST_HEAD(&disp->conn); in nvkm_disp_ctor()
483 return nvkm_engine_ctor(&nvkm_disp, device, index, true, &disp->engine); in nvkm_disp_ctor()