Lines Matching refs:head

628 	const u32 total  = nv_rd32(priv, 0x640414 + (head * 0x300));  in gf110_disp_main_scanoutpos()
629 const u32 blanke = nv_rd32(priv, 0x64041c + (head * 0x300)); in gf110_disp_main_scanoutpos()
630 const u32 blanks = nv_rd32(priv, 0x640420 + (head * 0x300)); in gf110_disp_main_scanoutpos()
647 nv_rd32(priv, 0x616340 + (head * 0x800)) & 0xffff; in gf110_disp_main_scanoutpos()
650 nv_rd32(priv, 0x616344 + (head * 0x800)) & 0xffff; in gf110_disp_main_scanoutpos()
675 for (i = 0; i < priv->head.nr; i++) { in gf110_disp_main_init()
720 for (i = 0; i < priv->head.nr; i++) in gf110_disp_main_init()
769 gf110_disp_vblank_init(struct nvkm_event *event, int type, int head) in gf110_disp_vblank_init() argument
772 nv_mask(disp, 0x6100c0 + (head * 0x800), 0x00000001, 0x00000001); in gf110_disp_vblank_init()
776 gf110_disp_vblank_fini(struct nvkm_event *event, int type, int head) in gf110_disp_vblank_fini() argument
779 nv_mask(disp, 0x6100c0 + (head * 0x800), 0x00000001, 0x00000000); in gf110_disp_vblank_fini()
790 exec_lookup(struct nv50_disp_priv *priv, int head, int or, u32 ctrl, in exec_lookup() argument
818 mask |= 0x0100 << head; in exec_lookup()
820 list_for_each_entry(outp, &priv->base.outp, head) { in exec_lookup()
836 exec_script(struct nv50_disp_priv *priv, int head, int id) in exec_script() argument
845 for (or = 0; !(ctrl & (1 << head)) && or < 8; or++) { in exec_script()
847 if (ctrl & (1 << head)) in exec_script()
854 outp = exec_lookup(priv, head, or, ctrl, &data, &ver, &hdr, &cnt, &len, &info); in exec_script()
861 .crtc = head, in exec_script()
872 exec_clkcmp(struct nv50_disp_priv *priv, int head, int id, u32 pclk, u32 *conf) in exec_clkcmp() argument
882 for (or = 0; !(ctrl & (1 << head)) && or < 8; or++) { in exec_clkcmp()
884 if (ctrl & (1 << head)) in exec_clkcmp()
891 outp = exec_lookup(priv, head, or, ctrl, &data, &ver, &hdr, &cnt, &len, &info1); in exec_clkcmp()
922 .crtc = head, in exec_clkcmp()
934 gf110_disp_intr_unk1_0(struct nv50_disp_priv *priv, int head) in gf110_disp_intr_unk1_0() argument
936 exec_script(priv, head, 1); in gf110_disp_intr_unk1_0()
940 gf110_disp_intr_unk2_0(struct nv50_disp_priv *priv, int head) in gf110_disp_intr_unk2_0() argument
942 struct nvkm_output *outp = exec_script(priv, head, 2); in gf110_disp_intr_unk2_0()
951 .crtc = head, in gf110_disp_intr_unk2_0()
962 gf110_disp_intr_unk2_1(struct nv50_disp_priv *priv, int head) in gf110_disp_intr_unk2_1() argument
965 u32 pclk = nv_rd32(priv, 0x660450 + (head * 0x300)) / 1000; in gf110_disp_intr_unk2_1()
967 devinit->pll_set(devinit, PLL_VPLL0 + head, pclk); in gf110_disp_intr_unk2_1()
968 nv_wr32(priv, 0x612200 + (head * 0x800), 0x00000000); in gf110_disp_intr_unk2_1()
972 gf110_disp_intr_unk2_2_tu(struct nv50_disp_priv *priv, int head, in gf110_disp_intr_unk2_2_tu() argument
977 const u32 conf = nv_rd32(priv, 0x660404 + (head * 0x300)); in gf110_disp_intr_unk2_2_tu()
978 const s32 vactive = nv_rd32(priv, 0x660414 + (head * 0x300)) & 0xffff; in gf110_disp_intr_unk2_2_tu()
979 const s32 vblanke = nv_rd32(priv, 0x66041c + (head * 0x300)) & 0xffff; in gf110_disp_intr_unk2_2_tu()
980 const s32 vblanks = nv_rd32(priv, 0x660420 + (head * 0x300)) & 0xffff; in gf110_disp_intr_unk2_2_tu()
981 const u32 pclk = nv_rd32(priv, 0x660450 + (head * 0x300)) / 1000; in gf110_disp_intr_unk2_2_tu()
983 const u32 hoff = (head * 0x800); in gf110_disp_intr_unk2_2_tu()
1033 gf110_disp_intr_unk2_2(struct nv50_disp_priv *priv, int head) in gf110_disp_intr_unk2_2() argument
1036 u32 pclk = nv_rd32(priv, 0x660450 + (head * 0x300)) / 1000; in gf110_disp_intr_unk2_2()
1039 outp = exec_clkcmp(priv, head, 0xff, pclk, &conf); in gf110_disp_intr_unk2_2()
1045 u32 sync = nv_rd32(priv, 0x660404 + (head * 0x300)); in gf110_disp_intr_unk2_2()
1062 exec_clkcmp(priv, head, 0, pclk, &conf); in gf110_disp_intr_unk2_2()
1075 gf110_disp_intr_unk2_2_tu(priv, head, &outp->info); in gf110_disp_intr_unk2_2()
1086 gf110_disp_intr_unk4_0(struct nv50_disp_priv *priv, int head) in gf110_disp_intr_unk4_0() argument
1088 u32 pclk = nv_rd32(priv, 0x660450 + (head * 0x300)) / 1000; in gf110_disp_intr_unk4_0()
1091 exec_clkcmp(priv, head, 1, pclk, &conf); in gf110_disp_intr_unk4_0()
1101 int head; in gf110_disp_intr_supervisor() local
1104 for (head = 0; head < priv->head.nr; head++) { in gf110_disp_intr_supervisor()
1105 mask[head] = nv_rd32(priv, 0x6101d4 + (head * 0x800)); in gf110_disp_intr_supervisor()
1106 nv_debug(priv, "head %d: 0x%08x\n", head, mask[head]); in gf110_disp_intr_supervisor()
1111 for (head = 0; head < priv->head.nr; head++) { in gf110_disp_intr_supervisor()
1112 if (!(mask[head] & 0x00001000)) in gf110_disp_intr_supervisor()
1114 nv_debug(priv, "supervisor 1.0 - head %d\n", head); in gf110_disp_intr_supervisor()
1115 gf110_disp_intr_unk1_0(priv, head); in gf110_disp_intr_supervisor()
1119 for (head = 0; head < priv->head.nr; head++) { in gf110_disp_intr_supervisor()
1120 if (!(mask[head] & 0x00001000)) in gf110_disp_intr_supervisor()
1122 nv_debug(priv, "supervisor 2.0 - head %d\n", head); in gf110_disp_intr_supervisor()
1123 gf110_disp_intr_unk2_0(priv, head); in gf110_disp_intr_supervisor()
1125 for (head = 0; head < priv->head.nr; head++) { in gf110_disp_intr_supervisor()
1126 if (!(mask[head] & 0x00010000)) in gf110_disp_intr_supervisor()
1128 nv_debug(priv, "supervisor 2.1 - head %d\n", head); in gf110_disp_intr_supervisor()
1129 gf110_disp_intr_unk2_1(priv, head); in gf110_disp_intr_supervisor()
1131 for (head = 0; head < priv->head.nr; head++) { in gf110_disp_intr_supervisor()
1132 if (!(mask[head] & 0x00001000)) in gf110_disp_intr_supervisor()
1134 nv_debug(priv, "supervisor 2.2 - head %d\n", head); in gf110_disp_intr_supervisor()
1135 gf110_disp_intr_unk2_2(priv, head); in gf110_disp_intr_supervisor()
1139 for (head = 0; head < priv->head.nr; head++) { in gf110_disp_intr_supervisor()
1140 if (!(mask[head] & 0x00001000)) in gf110_disp_intr_supervisor()
1142 nv_debug(priv, "supervisor 3.0 - head %d\n", head); in gf110_disp_intr_supervisor()
1143 gf110_disp_intr_unk4_0(priv, head); in gf110_disp_intr_supervisor()
1147 for (head = 0; head < priv->head.nr; head++) in gf110_disp_intr_supervisor()
1148 nv_wr32(priv, 0x6101d4 + (head * 0x800), 0x00000000); in gf110_disp_intr_supervisor()
1241 for (i = 0; i < priv->head.nr; i++) { in gf110_disp_intr()
1277 priv->head.nr = heads; in gf110_disp_ctor()
1309 .head.scanoutpos = gf110_disp_main_scanoutpos,