Lines Matching refs:head

34 gf119_disp_vblank_init(struct nv50_disp *disp, int head)  in gf119_disp_vblank_init()  argument
37 nvkm_mask(device, 0x6100c0 + (head * 0x800), 0x00000001, 0x00000001); in gf119_disp_vblank_init()
41 gf119_disp_vblank_fini(struct nv50_disp *disp, int head) in gf119_disp_vblank_fini() argument
44 nvkm_mask(device, 0x6100c0 + (head * 0x800), 0x00000001, 0x00000000); in gf119_disp_vblank_fini()
48 exec_lookup(struct nv50_disp *disp, int head, int or, u32 ctrl, in exec_lookup() argument
77 mask |= 0x0100 << head; in exec_lookup()
79 list_for_each_entry(outp, &disp->base.outp, head) { in exec_lookup()
95 exec_script(struct nv50_disp *disp, int head, int id) in exec_script() argument
106 for (or = 0; !(ctrl & (1 << head)) && or < 8; or++) { in exec_script()
108 if (ctrl & (1 << head)) in exec_script()
115 outp = exec_lookup(disp, head, or, ctrl, &data, &ver, &hdr, &cnt, &len, &info); in exec_script()
122 .crtc = head, in exec_script()
133 exec_clkcmp(struct nv50_disp *disp, int head, int id, u32 pclk, u32 *conf) in exec_clkcmp() argument
145 for (or = 0; !(ctrl & (1 << head)) && or < 8; or++) { in exec_clkcmp()
147 if (ctrl & (1 << head)) in exec_clkcmp()
154 outp = exec_lookup(disp, head, or, ctrl, &data, &ver, &hdr, &cnt, &len, &info1); in exec_clkcmp()
185 .crtc = head, in exec_clkcmp()
197 gf119_disp_intr_unk1_0(struct nv50_disp *disp, int head) in gf119_disp_intr_unk1_0() argument
199 exec_script(disp, head, 1); in gf119_disp_intr_unk1_0()
203 gf119_disp_intr_unk2_0(struct nv50_disp *disp, int head) in gf119_disp_intr_unk2_0() argument
206 struct nvkm_output *outp = exec_script(disp, head, 2); in gf119_disp_intr_unk2_0()
215 .crtc = head, in gf119_disp_intr_unk2_0()
226 gf119_disp_intr_unk2_1(struct nv50_disp *disp, int head) in gf119_disp_intr_unk2_1() argument
230 u32 pclk = nvkm_rd32(device, 0x660450 + (head * 0x300)) / 1000; in gf119_disp_intr_unk2_1()
232 nvkm_devinit_pll_set(devinit, PLL_VPLL0 + head, pclk); in gf119_disp_intr_unk2_1()
233 nvkm_wr32(device, 0x612200 + (head * 0x800), 0x00000000); in gf119_disp_intr_unk2_1()
237 gf119_disp_intr_unk2_2_tu(struct nv50_disp *disp, int head, in gf119_disp_intr_unk2_2_tu() argument
243 const u32 conf = nvkm_rd32(device, 0x660404 + (head * 0x300)); in gf119_disp_intr_unk2_2_tu()
244 const s32 vactive = nvkm_rd32(device, 0x660414 + (head * 0x300)) & 0xffff; in gf119_disp_intr_unk2_2_tu()
245 const s32 vblanke = nvkm_rd32(device, 0x66041c + (head * 0x300)) & 0xffff; in gf119_disp_intr_unk2_2_tu()
246 const s32 vblanks = nvkm_rd32(device, 0x660420 + (head * 0x300)) & 0xffff; in gf119_disp_intr_unk2_2_tu()
247 const u32 pclk = nvkm_rd32(device, 0x660450 + (head * 0x300)) / 1000; in gf119_disp_intr_unk2_2_tu()
249 const u32 hoff = (head * 0x800); in gf119_disp_intr_unk2_2_tu()
299 gf119_disp_intr_unk2_2(struct nv50_disp *disp, int head) in gf119_disp_intr_unk2_2() argument
303 u32 pclk = nvkm_rd32(device, 0x660450 + (head * 0x300)) / 1000; in gf119_disp_intr_unk2_2()
306 outp = exec_clkcmp(disp, head, 0xff, pclk, &conf); in gf119_disp_intr_unk2_2()
312 u32 sync = nvkm_rd32(device, 0x660404 + (head * 0x300)); in gf119_disp_intr_unk2_2()
329 exec_clkcmp(disp, head, 0, pclk, &conf); in gf119_disp_intr_unk2_2()
342 gf119_disp_intr_unk2_2_tu(disp, head, &outp->info); in gf119_disp_intr_unk2_2()
353 gf119_disp_intr_unk4_0(struct nv50_disp *disp, int head) in gf119_disp_intr_unk4_0() argument
356 u32 pclk = nvkm_rd32(device, 0x660450 + (head * 0x300)) / 1000; in gf119_disp_intr_unk4_0()
359 exec_clkcmp(disp, head, 1, pclk, &conf); in gf119_disp_intr_unk4_0()
370 int head; in gf119_disp_intr_supervisor() local
373 for (head = 0; head < disp->base.head.nr; head++) { in gf119_disp_intr_supervisor()
374 mask[head] = nvkm_rd32(device, 0x6101d4 + (head * 0x800)); in gf119_disp_intr_supervisor()
375 nvkm_debug(subdev, "head %d: %08x\n", head, mask[head]); in gf119_disp_intr_supervisor()
380 for (head = 0; head < disp->base.head.nr; head++) { in gf119_disp_intr_supervisor()
381 if (!(mask[head] & 0x00001000)) in gf119_disp_intr_supervisor()
383 nvkm_debug(subdev, "supervisor 1.0 - head %d\n", head); in gf119_disp_intr_supervisor()
384 gf119_disp_intr_unk1_0(disp, head); in gf119_disp_intr_supervisor()
388 for (head = 0; head < disp->base.head.nr; head++) { in gf119_disp_intr_supervisor()
389 if (!(mask[head] & 0x00001000)) in gf119_disp_intr_supervisor()
391 nvkm_debug(subdev, "supervisor 2.0 - head %d\n", head); in gf119_disp_intr_supervisor()
392 gf119_disp_intr_unk2_0(disp, head); in gf119_disp_intr_supervisor()
394 for (head = 0; head < disp->base.head.nr; head++) { in gf119_disp_intr_supervisor()
395 if (!(mask[head] & 0x00010000)) in gf119_disp_intr_supervisor()
397 nvkm_debug(subdev, "supervisor 2.1 - head %d\n", head); in gf119_disp_intr_supervisor()
398 gf119_disp_intr_unk2_1(disp, head); in gf119_disp_intr_supervisor()
400 for (head = 0; head < disp->base.head.nr; head++) { in gf119_disp_intr_supervisor()
401 if (!(mask[head] & 0x00001000)) in gf119_disp_intr_supervisor()
403 nvkm_debug(subdev, "supervisor 2.2 - head %d\n", head); in gf119_disp_intr_supervisor()
404 gf119_disp_intr_unk2_2(disp, head); in gf119_disp_intr_supervisor()
408 for (head = 0; head < disp->base.head.nr; head++) { in gf119_disp_intr_supervisor()
409 if (!(mask[head] & 0x00001000)) in gf119_disp_intr_supervisor()
411 nvkm_debug(subdev, "supervisor 3.0 - head %d\n", head); in gf119_disp_intr_supervisor()
412 gf119_disp_intr_unk4_0(disp, head); in gf119_disp_intr_supervisor()
416 for (head = 0; head < disp->base.head.nr; head++) in gf119_disp_intr_supervisor()
417 nvkm_wr32(device, 0x6101d4 + (head * 0x800), 0x00000000); in gf119_disp_intr_supervisor()
490 for (i = 0; i < disp->base.head.nr; i++) { in gf119_disp_intr()
516 .head.vblank_init = gf119_disp_vblank_init,
517 .head.vblank_fini = gf119_disp_vblank_fini,
518 .head.scanoutpos = gf119_disp_root_scanoutpos,