Lines Matching full:disp
33 #include <subdev/bios/disp.h>
47 struct nvkm_device *device = pior->disp->engine.subdev.device; in nv50_pior_clock()
80 struct nvkm_device *device = pior->disp->engine.subdev.device; in nv50_pior_power()
98 struct nvkm_head *head = nvkm_head_find(ior->disp, __ffs(state->head)); in nv50_pior_depth()
119 struct nvkm_device *device = pior->disp->engine.subdev.device; in nv50_pior_state()
145 nv50_pior_new(struct nvkm_disp *disp, int id) in nv50_pior_new() argument
147 return nvkm_ior_new_(&nv50_pior, disp, PIOR, id, false); in nv50_pior_new()
151 nv50_pior_cnt(struct nvkm_disp *disp, unsigned long *pmask) in nv50_pior_cnt() argument
153 struct nvkm_device *device = disp->engine.subdev.device; in nv50_pior_cnt()
162 struct nvkm_device *device = sor->disp->engine.subdev.device; in nv50_sor_clock()
181 struct nvkm_device *device = sor->disp->engine.subdev.device; in nv50_sor_power()
200 struct nvkm_device *device = sor->disp->engine.subdev.device; in nv50_sor_state()
226 nv50_sor_new(struct nvkm_disp *disp, int id) in nv50_sor_new() argument
228 return nvkm_ior_new_(&nv50_sor, disp, SOR, id, false); in nv50_sor_new()
232 nv50_sor_cnt(struct nvkm_disp *disp, unsigned long *pmask) in nv50_sor_cnt() argument
234 struct nvkm_device *device = disp->engine.subdev.device; in nv50_sor_cnt()
243 struct nvkm_device *device = dac->disp->engine.subdev.device; in nv50_dac_clock()
252 struct nvkm_device *device = dac->disp->engine.subdev.device; in nv50_dac_sense()
281 struct nvkm_device *device = dac->disp->engine.subdev.device; in nv50_dac_power()
298 struct nvkm_device *device = dac->disp->engine.subdev.device; in nv50_dac_state()
322 nv50_dac_new(struct nvkm_disp *disp, int id) in nv50_dac_new() argument
324 return nvkm_ior_new_(&nv50_dac, disp, DAC, id, false); in nv50_dac_new()
328 nv50_dac_cnt(struct nvkm_disp *disp, unsigned long *pmask) in nv50_dac_cnt() argument
330 struct nvkm_device *device = disp->engine.subdev.device; in nv50_dac_cnt()
339 struct nvkm_device *device = head->disp->engine.subdev.device; in nv50_head_vblank_put()
347 struct nvkm_device *device = head->disp->engine.subdev.device; in nv50_head_vblank_get()
355 struct nvkm_device *device = head->disp->engine.subdev.device; in nv50_head_rgclk()
363 struct nvkm_device *device = head->disp->engine.subdev.device; in nv50_head_rgpos()
374 struct nvkm_device *device = head->disp->engine.subdev.device; in nv50_head_state()
403 nv50_head_new(struct nvkm_disp *disp, int id) in nv50_head_new() argument
405 return nvkm_head_new_(&nv50_head, disp, id); in nv50_head_new()
409 nv50_head_cnt(struct nvkm_disp *disp, unsigned long *pmask) in nv50_head_cnt() argument
417 nv50_disp_mthd_list(struct nvkm_disp *disp, int debug, u32 base, int c, in nv50_disp_mthd_list() argument
420 struct nvkm_subdev *subdev = &disp->engine.subdev; in nv50_disp_mthd_list()
448 struct nvkm_disp *disp = chan->disp; in nv50_disp_chan_mthd() local
449 struct nvkm_subdev *subdev = &disp->engine.subdev; in nv50_disp_chan_mthd()
479 nv50_disp_mthd_list(disp, debug, base, mthd->prev, in nv50_disp_chan_mthd()
488 struct nvkm_disp *disp = container_of(event, typeof(*disp), uevent); in nv50_disp_chan_uevent_fini() local
489 struct nvkm_device *device = disp->engine.subdev.device; in nv50_disp_chan_uevent_fini()
497 struct nvkm_disp *disp = container_of(event, typeof(*disp), uevent); in nv50_disp_chan_uevent_init() local
498 struct nvkm_device *device = disp->engine.subdev.device; in nv50_disp_chan_uevent_init()
504 nv50_disp_chan_uevent_send(struct nvkm_disp *disp, int chid) in nv50_disp_chan_uevent_send() argument
506 nvkm_event_send(&disp->uevent, NVKM_DISP_EVENT_CHAN_AWAKEN, chid, NULL, 0); in nv50_disp_chan_uevent_send()
525 struct nvkm_device *device = chan->disp->engine.subdev.device; in nv50_disp_chan_intr()
534 struct nvkm_disp *disp = chan->disp; in nv50_disp_pioc_fini() local
535 struct nvkm_subdev *subdev = &disp->engine.subdev; in nv50_disp_pioc_fini()
553 struct nvkm_disp *disp = chan->disp; in nv50_disp_pioc_init() local
554 struct nvkm_subdev *subdev = &disp->engine.subdev; in nv50_disp_pioc_init()
594 return nvkm_ramht_insert(chan->disp->ramht, object, chan->chid.user, -10, handle, in nv50_disp_dmac_bind()
601 struct nvkm_subdev *subdev = &chan->disp->engine.subdev; in nv50_disp_dmac_fini()
623 struct nvkm_subdev *subdev = &chan->disp->engine.subdev; in nv50_disp_dmac_init()
911 struct nvkm_subdev *subdev = &chan->disp->engine.subdev; in nv50_disp_core_fini()
931 struct nvkm_subdev *subdev = &chan->disp->engine.subdev; in nv50_disp_core_init()
984 struct nvkm_bios *bios = head->disp->engine.subdev.device->bios; in nv50_disp_super_iedt()
998 struct nvkm_subdev *subdev = &head->disp->engine.subdev; in nv50_disp_super_ied_on()
1067 nvbios_init(&head->disp->engine.subdev, iedt.script[id], in nv50_disp_super_ied_off()
1079 list_for_each_entry(ior, &head->disp->iors, head) { in nv50_disp_super_ior_asy()
1093 list_for_each_entry(ior, &head->disp->iors, head) { in nv50_disp_super_ior_arm()
1104 nv50_disp_super_3_0(struct nvkm_disp *disp, struct nvkm_head *head) in nv50_disp_super_3_0() argument
1125 struct nvkm_subdev *subdev = &head->disp->engine.subdev; in nv50_disp_super_2_2_dp()
1229 nv50_disp_super_2_2(struct nvkm_disp *disp, struct nvkm_head *head) in nv50_disp_super_2_2() argument
1251 head->asy.or.depth = (disp->sor.lvdsconf & 0x0200) ? 24 : 18; in nv50_disp_super_2_2()
1252 ior->asy.link = (disp->sor.lvdsconf & 0x0100) ? 3 : 1; in nv50_disp_super_2_2()
1276 nv50_disp_super_2_1(struct nvkm_disp *disp, struct nvkm_head *head) in nv50_disp_super_2_1() argument
1278 struct nvkm_devinit *devinit = disp->engine.subdev.device->devinit; in nv50_disp_super_2_1()
1286 nv50_disp_super_2_0(struct nvkm_disp *disp, struct nvkm_head *head) in nv50_disp_super_2_0() argument
1310 nv50_disp_super_1_0(struct nvkm_disp *disp, struct nvkm_head *head) in nv50_disp_super_1_0() argument
1325 nv50_disp_super_1(struct nvkm_disp *disp) in nv50_disp_super_1() argument
1330 list_for_each_entry(head, &disp->heads, head) { in nv50_disp_super_1()
1335 list_for_each_entry(ior, &disp->iors, head) { in nv50_disp_super_1()
1344 struct nvkm_disp *disp = container_of(work, struct nvkm_disp, super.work); in nv50_disp_super() local
1345 struct nvkm_subdev *subdev = &disp->engine.subdev; in nv50_disp_super()
1350 mutex_lock(&disp->super.mutex); in nv50_disp_super()
1353 nvkm_debug(subdev, "supervisor %08x %08x\n", disp->super.pending, super); in nv50_disp_super()
1355 if (disp->super.pending & 0x00000010) { in nv50_disp_super()
1356 nv50_disp_chan_mthd(disp->chan[0], NV_DBG_DEBUG); in nv50_disp_super()
1357 nv50_disp_super_1(disp); in nv50_disp_super()
1358 list_for_each_entry(head, &disp->heads, head) { in nv50_disp_super()
1363 nv50_disp_super_1_0(disp, head); in nv50_disp_super()
1366 if (disp->super.pending & 0x00000020) { in nv50_disp_super()
1367 list_for_each_entry(head, &disp->heads, head) { in nv50_disp_super()
1370 nv50_disp_super_2_0(disp, head); in nv50_disp_super()
1372 nvkm_outp_route(disp); in nv50_disp_super()
1373 list_for_each_entry(head, &disp->heads, head) { in nv50_disp_super()
1376 nv50_disp_super_2_1(disp, head); in nv50_disp_super()
1378 list_for_each_entry(head, &disp->heads, head) { in nv50_disp_super()
1381 nv50_disp_super_2_2(disp, head); in nv50_disp_super()
1384 if (disp->super.pending & 0x00000040) { in nv50_disp_super()
1385 list_for_each_entry(head, &disp->heads, head) { in nv50_disp_super()
1388 nv50_disp_super_3_0(disp, head); in nv50_disp_super()
1393 mutex_unlock(&disp->super.mutex); in nv50_disp_super()
1415 nv50_disp_intr_error(struct nvkm_disp *disp, int chid) in nv50_disp_intr_error() argument
1417 struct nvkm_subdev *subdev = &disp->engine.subdev; in nv50_disp_intr_error()
1434 if (chid < ARRAY_SIZE(disp->chan)) { in nv50_disp_intr_error()
1437 nv50_disp_chan_mthd(disp->chan[chid], NV_DBG_ERROR); in nv50_disp_intr_error()
1449 nv50_disp_intr(struct nvkm_disp *disp) in nv50_disp_intr() argument
1451 struct nvkm_device *device = disp->engine.subdev.device; in nv50_disp_intr()
1457 nv50_disp_intr_error(disp, chid); in nv50_disp_intr()
1463 nv50_disp_chan_uevent_send(disp, chid); in nv50_disp_intr()
1468 nvkm_disp_vblank(disp, 0); in nv50_disp_intr()
1473 nvkm_disp_vblank(disp, 1); in nv50_disp_intr()
1478 disp->super.pending = (intr1 & 0x00000070); in nv50_disp_intr()
1479 queue_work(disp->super.wq, &disp->super.work); in nv50_disp_intr()
1480 nvkm_wr32(device, 0x610024, disp->super.pending); in nv50_disp_intr()
1485 nv50_disp_fini(struct nvkm_disp *disp) in nv50_disp_fini() argument
1487 struct nvkm_device *device = disp->engine.subdev.device; in nv50_disp_fini()
1494 nv50_disp_init(struct nvkm_disp *disp) in nv50_disp_init() argument
1496 struct nvkm_device *device = disp->engine.subdev.device; in nv50_disp_init()
1509 list_for_each_entry(head, &disp->heads, head) { in nv50_disp_init()
1521 for (i = 0; i < disp->dac.nr; i++) { in nv50_disp_init()
1527 for (i = 0; i < disp->sor.nr; i++) { in nv50_disp_init()
1533 for (i = 0; i < disp->pior.nr; i++) { in nv50_disp_init()
1550 nvkm_wr32(device, 0x610010, (disp->inst->addr >> 8) | 9); in nv50_disp_init()
1559 nv50_disp_oneinit(struct nvkm_disp *disp) in nv50_disp_oneinit() argument
1561 const struct nvkm_disp_func *func = disp->func; in nv50_disp_oneinit()
1562 struct nvkm_subdev *subdev = &disp->engine.subdev; in nv50_disp_oneinit()
1567 disp->wndw.nr = func->wndw.cnt(disp, &disp->wndw.mask); in nv50_disp_oneinit()
1568 nvkm_debug(subdev, "Window(s): %d (%08lx)\n", disp->wndw.nr, disp->wndw.mask); in nv50_disp_oneinit()
1571 disp->head.nr = func->head.cnt(disp, &disp->head.mask); in nv50_disp_oneinit()
1572 nvkm_debug(subdev, " Head(s): %d (%02lx)\n", disp->head.nr, disp->head.mask); in nv50_disp_oneinit()
1573 for_each_set_bit(i, &disp->head.mask, disp->head.nr) { in nv50_disp_oneinit()
1574 ret = func->head.new(disp, i); in nv50_disp_oneinit()
1580 disp->dac.nr = func->dac.cnt(disp, &disp->dac.mask); in nv50_disp_oneinit()
1581 nvkm_debug(subdev, " DAC(s): %d (%02lx)\n", disp->dac.nr, disp->dac.mask); in nv50_disp_oneinit()
1582 for_each_set_bit(i, &disp->dac.mask, disp->dac.nr) { in nv50_disp_oneinit()
1583 ret = func->dac.new(disp, i); in nv50_disp_oneinit()
1590 disp->pior.nr = func->pior.cnt(disp, &disp->pior.mask); in nv50_disp_oneinit()
1591 nvkm_debug(subdev, " PIOR(s): %d (%02lx)\n", disp->pior.nr, disp->pior.mask); in nv50_disp_oneinit()
1592 for_each_set_bit(i, &disp->pior.mask, disp->pior.nr) { in nv50_disp_oneinit()
1593 ret = func->pior.new(disp, i); in nv50_disp_oneinit()
1599 disp->sor.nr = func->sor.cnt(disp, &disp->sor.mask); in nv50_disp_oneinit()
1600 nvkm_debug(subdev, " SOR(s): %d (%02lx)\n", disp->sor.nr, disp->sor.mask); in nv50_disp_oneinit()
1601 for_each_set_bit(i, &disp->sor.mask, disp->sor.nr) { in nv50_disp_oneinit()
1602 ret = func->sor.new(disp, i); in nv50_disp_oneinit()
1607 ret = nvkm_gpuobj_new(device, 0x10000, 0x10000, false, NULL, &disp->inst); in nv50_disp_oneinit()
1612 0x1000, 0, disp->inst, &disp->ramht); in nv50_disp_oneinit()