Lines Matching refs:head
101 nv50_disp_vblank_fini_(struct nvkm_disp *base, int head) in nv50_disp_vblank_fini_() argument
104 disp->func->head.vblank_fini(disp, head); in nv50_disp_vblank_fini_()
108 nv50_disp_vblank_init_(struct nvkm_disp *base, int head) in nv50_disp_vblank_init_() argument
111 disp->func->head.vblank_init(disp, head); in nv50_disp_vblank_init_()
140 .head.vblank_init = nv50_disp_vblank_init_,
141 .head.vblank_fini = nv50_disp_vblank_fini_,
165 nv50_disp_vblank_fini(struct nv50_disp *disp, int head) in nv50_disp_vblank_fini() argument
168 nvkm_mask(device, 0x61002c, (4 << head), 0); in nv50_disp_vblank_fini()
172 nv50_disp_vblank_init(struct nv50_disp *disp, int head) in nv50_disp_vblank_init() argument
175 nvkm_mask(device, 0x61002c, (4 << head), (4 << head)); in nv50_disp_vblank_init()
228 exec_lookup(struct nv50_disp *disp, int head, int or, u32 ctrl, in exec_lookup() argument
268 mask |= 0x0100 << head; in exec_lookup()
270 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()
418 .crtc = head, in exec_clkcmp()
556 nv50_disp_intr_unk10_0(struct nv50_disp *disp, int head) in nv50_disp_intr_unk10_0() argument
558 exec_script(disp, head, 1); in nv50_disp_intr_unk10_0()
562 nv50_disp_intr_unk20_0(struct nv50_disp *disp, int head) in nv50_disp_intr_unk20_0() argument
565 struct nvkm_output *outp = exec_script(disp, head, 2); in nv50_disp_intr_unk20_0()
586 .crtc = head, in nv50_disp_intr_unk20_0()
597 nv50_disp_intr_unk20_1(struct nv50_disp *disp, int head) in nv50_disp_intr_unk20_1() argument
601 u32 pclk = nvkm_rd32(device, 0x610ad0 + (head * 0x540)) & 0x3fffff; in nv50_disp_intr_unk20_1()
603 nvkm_devinit_pll_set(devinit, PLL_VPLL0 + head, pclk); in nv50_disp_intr_unk20_1()
607 nv50_disp_intr_unk20_2_dp(struct nv50_disp *disp, int head, in nv50_disp_intr_unk20_2_dp() argument
618 const s32 vactive = nvkm_rd32(device, 0x610af8 + (head * 0x540)) & 0xffff; in nv50_disp_intr_unk20_2_dp()
619 const s32 vblanke = nvkm_rd32(device, 0x610ae8 + (head * 0x540)) & 0xffff; in nv50_disp_intr_unk20_2_dp()
620 const s32 vblanks = nvkm_rd32(device, 0x610af0 + (head * 0x540)) & 0xffff; in nv50_disp_intr_unk20_2_dp()
728 nv50_disp_intr_unk20_2(struct nv50_disp *disp, int head) in nv50_disp_intr_unk20_2() argument
732 u32 pclk = nvkm_rd32(device, 0x610ad0 + (head * 0x540)) & 0x3fffff; in nv50_disp_intr_unk20_2()
733 u32 hval, hreg = 0x614200 + (head * 0x800); in nv50_disp_intr_unk20_2()
737 outp = exec_clkcmp(disp, head, 0xff, pclk, &conf); in nv50_disp_intr_unk20_2()
784 exec_clkcmp(disp, head, 0, pclk, &conf); in nv50_disp_intr_unk20_2()
794 nv50_disp_intr_unk20_2_dp(disp, head, &outp->info, pclk); in nv50_disp_intr_unk20_2()
838 nv50_disp_intr_unk40_0(struct nv50_disp *disp, int head) in nv50_disp_intr_unk40_0() argument
842 u32 pclk = nvkm_rd32(device, 0x610ad0 + (head * 0x540)) & 0x3fffff; in nv50_disp_intr_unk40_0()
845 outp = exec_clkcmp(disp, head, 1, pclk, &conf); in nv50_disp_intr_unk40_0()
862 int head; in nv50_disp_intr_supervisor() local
868 for (head = 0; head < disp->base.head.nr; head++) { in nv50_disp_intr_supervisor()
869 if (!(super & (0x00000020 << head))) in nv50_disp_intr_supervisor()
871 if (!(super & (0x00000080 << head))) in nv50_disp_intr_supervisor()
873 nv50_disp_intr_unk10_0(disp, head); in nv50_disp_intr_supervisor()
877 for (head = 0; head < disp->base.head.nr; head++) { in nv50_disp_intr_supervisor()
878 if (!(super & (0x00000080 << head))) in nv50_disp_intr_supervisor()
880 nv50_disp_intr_unk20_0(disp, head); in nv50_disp_intr_supervisor()
882 for (head = 0; head < disp->base.head.nr; head++) { in nv50_disp_intr_supervisor()
883 if (!(super & (0x00000200 << head))) in nv50_disp_intr_supervisor()
885 nv50_disp_intr_unk20_1(disp, head); in nv50_disp_intr_supervisor()
887 for (head = 0; head < disp->base.head.nr; head++) { in nv50_disp_intr_supervisor()
888 if (!(super & (0x00000080 << head))) in nv50_disp_intr_supervisor()
890 nv50_disp_intr_unk20_2(disp, head); in nv50_disp_intr_supervisor()
894 for (head = 0; head < disp->base.head.nr; head++) { in nv50_disp_intr_supervisor()
895 if (!(super & (0x00000080 << head))) in nv50_disp_intr_supervisor()
897 nv50_disp_intr_unk40_0(disp, head); in nv50_disp_intr_supervisor()
947 .head.vblank_init = nv50_disp_vblank_init,
948 .head.vblank_fini = nv50_disp_vblank_fini,
949 .head.scanoutpos = nv50_disp_root_scanoutpos,