Lines Matching refs:disp

41 	struct nvkm_disp *disp = container_of(event, typeof(*disp), vblank);  in nvkm_disp_vblank_fini()  local
42 disp->func->head.vblank_fini(disp, head); in nvkm_disp_vblank_fini()
48 struct nvkm_disp *disp = container_of(event, typeof(*disp), vblank); in nvkm_disp_vblank_init() local
49 disp->func->head.vblank_init(disp, head); in nvkm_disp_vblank_init()
56 struct nvkm_disp *disp = in nvkm_disp_vblank_ctor() local
57 container_of(notify->event, typeof(*disp), vblank); in nvkm_disp_vblank_ctor()
65 if (ret = -ENXIO, req->v0.head <= disp->vblank.index_nr) { in nvkm_disp_vblank_ctor()
83 nvkm_disp_vblank(struct nvkm_disp *disp, int head) in nvkm_disp_vblank() argument
86 nvkm_event_send(&disp->vblank, 1, head, &rep, sizeof(rep)); in nvkm_disp_vblank()
93 struct nvkm_disp *disp = in nvkm_disp_hpd_ctor() local
94 container_of(notify->event, typeof(*disp), hpd); in nvkm_disp_hpd_ctor()
103 list_for_each_entry(outp, &disp->outp, head) { in nvkm_disp_hpd_ctor()
126 struct nvkm_disp *disp = nvkm_disp(object->engine); in nvkm_disp_ntfy() local
129 *event = &disp->vblank; in nvkm_disp_ntfy()
132 *event = &disp->hpd; in nvkm_disp_ntfy()
143 struct nvkm_disp *disp = nvkm_disp(oproxy->base.engine); in nvkm_disp_class_del() local
144 mutex_lock(&disp->engine.subdev.mutex); in nvkm_disp_class_del()
145 if (disp->client == oproxy) in nvkm_disp_class_del()
146 disp->client = NULL; in nvkm_disp_class_del()
147 mutex_unlock(&disp->engine.subdev.mutex); in nvkm_disp_class_del()
161 struct nvkm_disp *disp = nvkm_disp(oclass->engine); in nvkm_disp_class_new() local
170 mutex_lock(&disp->engine.subdev.mutex); in nvkm_disp_class_new()
171 if (disp->client) { in nvkm_disp_class_new()
172 mutex_unlock(&disp->engine.subdev.mutex); in nvkm_disp_class_new()
175 disp->client = oproxy; in nvkm_disp_class_new()
176 mutex_unlock(&disp->engine.subdev.mutex); in nvkm_disp_class_new()
178 return sclass->ctor(disp, oclass, data, size, &oproxy->object); in nvkm_disp_class_new()
190 struct nvkm_disp *disp = nvkm_disp(oclass->engine); in nvkm_disp_class_get() local
192 const struct nvkm_disp_oclass *root = disp->func->root(disp); in nvkm_disp_class_get()
204 struct nvkm_disp *disp = nvkm_disp(engine); in nvkm_disp_intr() local
205 disp->func->intr(disp); in nvkm_disp_intr()
211 struct nvkm_disp *disp = nvkm_disp(engine); in nvkm_disp_fini() local
215 list_for_each_entry(outp, &disp->outp, head) { in nvkm_disp_fini()
219 list_for_each_entry(conn, &disp->conn, head) { in nvkm_disp_fini()
229 struct nvkm_disp *disp = nvkm_disp(engine); in nvkm_disp_init() local
233 list_for_each_entry(conn, &disp->conn, head) { in nvkm_disp_init()
237 list_for_each_entry(outp, &disp->outp, head) { in nvkm_disp_init()
247 struct nvkm_disp *disp = nvkm_disp(engine); in nvkm_disp_dtor() local
250 void *data = disp; in nvkm_disp_dtor()
252 if (disp->func->dtor) in nvkm_disp_dtor()
253 data = disp->func->dtor(disp); in nvkm_disp_dtor()
255 nvkm_event_fini(&disp->vblank); in nvkm_disp_dtor()
256 nvkm_event_fini(&disp->hpd); in nvkm_disp_dtor()
258 while (!list_empty(&disp->outp)) { in nvkm_disp_dtor()
259 outp = list_first_entry(&disp->outp, typeof(*outp), head); in nvkm_disp_dtor()
264 while (!list_empty(&disp->conn)) { in nvkm_disp_dtor()
265 conn = list_first_entry(&disp->conn, typeof(*conn), head); in nvkm_disp_dtor()
284 int index, int heads, struct nvkm_disp *disp) in nvkm_disp_ctor() argument
295 INIT_LIST_HEAD(&disp->outp); in nvkm_disp_ctor()
296 INIT_LIST_HEAD(&disp->conn); in nvkm_disp_ctor()
297 disp->func = func; in nvkm_disp_ctor()
298 disp->head.nr = heads; in nvkm_disp_ctor()
301 true, &disp->engine); in nvkm_disp_ctor()
319 case 0: outps = &disp->func->outp.internal; break; in nvkm_disp_ctor()
320 case 1: outps = &disp->func->outp.external; break; in nvkm_disp_ctor()
322 nvkm_warn(&disp->engine.subdev, in nvkm_disp_ctor()
334 nvkm_warn(&disp->engine.subdev, in nvkm_disp_ctor()
340 ret = ctor(disp, i, &dcbE, &outp); in nvkm_disp_ctor()
346 nvkm_debug(&disp->engine.subdev, in nvkm_disp_ctor()
351 nvkm_error(&disp->engine.subdev, in nvkm_disp_ctor()
357 list_add_tail(&outp->head, &disp->outp); in nvkm_disp_ctor()
362 list_for_each_entry_safe(outp, outt, &disp->outp, head) { in nvkm_disp_ctor()
376 list_for_each_entry(pair, &disp->outp, head) { in nvkm_disp_ctor()
396 list_for_each_entry(conn, &disp->conn, head) { in nvkm_disp_ctor()
407 ret = nvkm_connector_new(disp, i, &connE, &outp->conn); in nvkm_disp_ctor()
409 nvkm_error(&disp->engine.subdev, in nvkm_disp_ctor()
418 list_add_tail(&outp->conn->head, &disp->conn); in nvkm_disp_ctor()
421 ret = nvkm_event_init(&nvkm_disp_hpd_func, 3, hpd, &disp->hpd); in nvkm_disp_ctor()
425 ret = nvkm_event_init(&nvkm_disp_vblank_func, 1, heads, &disp->vblank); in nvkm_disp_ctor()