Lines Matching refs:head

100 nv50_disp_vblank_fini_(struct nvkm_disp *base, int head)  in nv50_disp_vblank_fini_()  argument
103 disp->func->head.vblank_fini(disp, head); in nv50_disp_vblank_fini_()
107 nv50_disp_vblank_init_(struct nvkm_disp *base, int head) in nv50_disp_vblank_init_() argument
110 disp->func->head.vblank_init(disp, head); in nv50_disp_vblank_init_()
139 .head.vblank_init = nv50_disp_vblank_init_,
140 .head.vblank_fini = nv50_disp_vblank_fini_,
164 nv50_disp_vblank_fini(struct nv50_disp *disp, int head) in nv50_disp_vblank_fini() argument
167 nvkm_mask(device, 0x61002c, (4 << head), 0); in nv50_disp_vblank_fini()
171 nv50_disp_vblank_init(struct nv50_disp *disp, int head) in nv50_disp_vblank_init() argument
174 nvkm_mask(device, 0x61002c, (4 << head), (4 << head)); in nv50_disp_vblank_init()
227 exec_lookup(struct nv50_disp *disp, int head, int or, u32 ctrl, in exec_lookup() argument
267 mask |= 0x0100 << head; in exec_lookup()
269 list_for_each_entry(outp, &disp->base.outp, head) { in exec_lookup()
285 exec_script(struct nv50_disp *disp, int head, int id) in exec_script() argument
298 for (i = 0; !(ctrl & (1 << head)) && i < disp->func->dac.nr; i++) in exec_script()
302 if (!(ctrl & (1 << head))) { in exec_script()
310 for (i = 0; !(ctrl & (1 << head)) && i < disp->func->sor.nr; i++) in exec_script()
316 if (!(ctrl & (1 << head))) { in exec_script()
317 for (i = 0; !(ctrl & (1 << head)) && i < disp->func->pior.nr; i++) in exec_script()
322 if (!(ctrl & (1 << head))) in exec_script()
326 outp = exec_lookup(disp, head, i, ctrl, &data, &ver, &hdr, &cnt, &len, &info); in exec_script()
333 .crtc = head, in exec_script()
344 exec_clkcmp(struct nv50_disp *disp, int head, int id, u32 pclk, u32 *conf) in exec_clkcmp() argument
358 for (i = 0; !(ctrl & (1 << head)) && i < disp->func->dac.nr; i++) in exec_clkcmp()
362 if (!(ctrl & (1 << head))) { in exec_clkcmp()
370 for (i = 0; !(ctrl & (1 << head)) && i < disp->func->sor.nr; i++) in exec_clkcmp()
376 if (!(ctrl & (1 << head))) { in exec_clkcmp()
377 for (i = 0; !(ctrl & (1 << head)) && i < disp->func->pior.nr; i++) in exec_clkcmp()
382 if (!(ctrl & (1 << head))) in exec_clkcmp()
386 outp = exec_lookup(disp, head, i, ctrl, &data, &ver, &hdr, &cnt, &len, &info1); in exec_clkcmp()
422 .crtc = head, in exec_clkcmp()
434 nv50_disp_intr_unk10_0(struct nv50_disp *disp, int head) in nv50_disp_intr_unk10_0() argument
436 exec_script(disp, head, 1); in nv50_disp_intr_unk10_0()
440 nv50_disp_intr_unk20_0(struct nv50_disp *disp, int head) in nv50_disp_intr_unk20_0() argument
443 struct nvkm_output *outp = exec_script(disp, head, 2); in nv50_disp_intr_unk20_0()
464 .crtc = head, in nv50_disp_intr_unk20_0()
475 nv50_disp_intr_unk20_1(struct nv50_disp *disp, int head) in nv50_disp_intr_unk20_1() argument
479 u32 pclk = nvkm_rd32(device, 0x610ad0 + (head * 0x540)) & 0x3fffff; in nv50_disp_intr_unk20_1()
481 nvkm_devinit_pll_set(devinit, PLL_VPLL0 + head, pclk); in nv50_disp_intr_unk20_1()
485 nv50_disp_intr_unk20_2_dp(struct nv50_disp *disp, int head, in nv50_disp_intr_unk20_2_dp() argument
496 const s32 vactive = nvkm_rd32(device, 0x610af8 + (head * 0x540)) & 0xffff; in nv50_disp_intr_unk20_2_dp()
497 const s32 vblanke = nvkm_rd32(device, 0x610ae8 + (head * 0x540)) & 0xffff; in nv50_disp_intr_unk20_2_dp()
498 const s32 vblanks = nvkm_rd32(device, 0x610af0 + (head * 0x540)) & 0xffff; in nv50_disp_intr_unk20_2_dp()
606 nv50_disp_intr_unk20_2(struct nv50_disp *disp, int head) in nv50_disp_intr_unk20_2() argument
610 u32 pclk = nvkm_rd32(device, 0x610ad0 + (head * 0x540)) & 0x3fffff; in nv50_disp_intr_unk20_2()
611 u32 hval, hreg = 0x614200 + (head * 0x800); in nv50_disp_intr_unk20_2()
615 outp = exec_clkcmp(disp, head, 0xff, pclk, &conf); in nv50_disp_intr_unk20_2()
662 exec_clkcmp(disp, head, 0, pclk, &conf); in nv50_disp_intr_unk20_2()
672 nv50_disp_intr_unk20_2_dp(disp, head, &outp->info, pclk); in nv50_disp_intr_unk20_2()
714 nv50_disp_intr_unk40_0(struct nv50_disp *disp, int head) in nv50_disp_intr_unk40_0() argument
718 u32 pclk = nvkm_rd32(device, 0x610ad0 + (head * 0x540)) & 0x3fffff; in nv50_disp_intr_unk40_0()
721 outp = exec_clkcmp(disp, head, 1, pclk, &conf); in nv50_disp_intr_unk40_0()
737 int head; in nv50_disp_intr_supervisor() local
743 for (head = 0; head < disp->base.head.nr; head++) { in nv50_disp_intr_supervisor()
744 if (!(super & (0x00000020 << head))) in nv50_disp_intr_supervisor()
746 if (!(super & (0x00000080 << head))) in nv50_disp_intr_supervisor()
748 nv50_disp_intr_unk10_0(disp, head); in nv50_disp_intr_supervisor()
752 for (head = 0; head < disp->base.head.nr; head++) { in nv50_disp_intr_supervisor()
753 if (!(super & (0x00000080 << head))) in nv50_disp_intr_supervisor()
755 nv50_disp_intr_unk20_0(disp, head); in nv50_disp_intr_supervisor()
757 for (head = 0; head < disp->base.head.nr; head++) { in nv50_disp_intr_supervisor()
758 if (!(super & (0x00000200 << head))) in nv50_disp_intr_supervisor()
760 nv50_disp_intr_unk20_1(disp, head); in nv50_disp_intr_supervisor()
762 for (head = 0; head < disp->base.head.nr; head++) { in nv50_disp_intr_supervisor()
763 if (!(super & (0x00000080 << head))) in nv50_disp_intr_supervisor()
765 nv50_disp_intr_unk20_2(disp, head); in nv50_disp_intr_supervisor()
769 for (head = 0; head < disp->base.head.nr; head++) { in nv50_disp_intr_supervisor()
770 if (!(super & (0x00000080 << head))) in nv50_disp_intr_supervisor()
772 nv50_disp_intr_unk40_0(disp, head); in nv50_disp_intr_supervisor()
821 .head.vblank_init = nv50_disp_vblank_init,
822 .head.vblank_fini = nv50_disp_vblank_fini,
823 .head.scanoutpos = nv50_disp_root_scanoutpos,