Lines Matching refs:head
55 struct nvkm_oclass *oclass, int head, in nv50_disp_chan_create_() argument
61 int chid = impl->chid + head; in nv50_disp_chan_create_()
208 struct nvkm_oclass *oclass, u32 pushbuf, int head, in nv50_disp_dmac_create_() argument
214 ret = nv50_disp_chan_create_(parent, engine, oclass, head, in nv50_disp_dmac_create_()
344 nv50_disp_mthd_chan(struct nv50_disp_priv *priv, int debug, int head, in nv50_disp_mthd_chan() argument
356 u32 base = head * chan->addr; in nv50_disp_mthd_chan()
364 chan->name, head); in nv50_disp_mthd_chan()
660 args->v0.version, args->v0.pushbuf, args->v0.head); in nv50_disp_base_ctor()
661 if (args->v0.head > priv->head.nr) in nv50_disp_base_ctor()
667 args->v0.head, sizeof(*dmac), in nv50_disp_base_ctor()
750 args->v0.version, args->v0.pushbuf, args->v0.head); in nv50_disp_ovly_ctor()
751 if (args->v0.head > priv->head.nr) in nv50_disp_ovly_ctor()
757 args->v0.head, sizeof(*dmac), in nv50_disp_ovly_ctor()
788 struct nvkm_oclass *oclass, int head, in nv50_disp_pioc_create_() argument
791 return nv50_disp_chan_create_(parent, engine, oclass, head, in nv50_disp_pioc_create_()
869 args->v0.version, args->v0.head); in nv50_disp_oimm_ctor()
870 if (args->v0.head > priv->head.nr) in nv50_disp_oimm_ctor()
875 ret = nv50_disp_pioc_create_(parent, engine, oclass, args->v0.head, in nv50_disp_oimm_ctor()
917 args->v0.version, args->v0.head); in nv50_disp_curs_ctor()
918 if (args->v0.head > priv->head.nr) in nv50_disp_curs_ctor()
923 ret = nv50_disp_pioc_create_(parent, engine, oclass, args->v0.head, in nv50_disp_curs_ctor()
952 const u32 blanke = nv_rd32(priv, 0x610aec + (head * 0x540)); in nv50_disp_main_scanoutpos()
953 const u32 blanks = nv_rd32(priv, 0x610af4 + (head * 0x540)); in nv50_disp_main_scanoutpos()
954 const u32 total = nv_rd32(priv, 0x610afc + (head * 0x540)); in nv50_disp_main_scanoutpos()
971 nv_rd32(priv, 0x616340 + (head * 0x800)) & 0xffff; in nv50_disp_main_scanoutpos()
974 nv_rd32(priv, 0x616344 + (head * 0x800)) & 0xffff; in nv50_disp_main_scanoutpos()
993 int head, ret; in nv50_disp_main_mthd() local
1001 args->v0.version, args->v0.method, args->v0.head); in nv50_disp_main_mthd()
1003 head = args->v0.head; in nv50_disp_main_mthd()
1013 head = ffs((mask >> 8) & 0x0f) - 1; in nv50_disp_main_mthd()
1017 if (head < 0 || head >= priv->head.nr) in nv50_disp_main_mthd()
1021 list_for_each_entry(temp, &priv->base.outp, head) { in nv50_disp_main_mthd()
1034 return impl->head.scanoutpos(object, priv, data, size, head); in nv50_disp_main_mthd()
1041 return priv->dac.power(object, priv, data, size, head, outp); in nv50_disp_main_mthd()
1043 return priv->dac.sense(object, priv, data, size, head, outp); in nv50_disp_main_mthd()
1045 return priv->sor.power(object, priv, data, size, head, outp); in nv50_disp_main_mthd()
1049 return priv->sor.hda_eld(object, priv, data, size, head, outp); in nv50_disp_main_mthd()
1053 return priv->sor.hdmi(object, priv, data, size, head, outp); in nv50_disp_main_mthd()
1096 return priv->pior.power(object, priv, data, size, head, outp); in nv50_disp_main_mthd()
1152 for (i = 0; i < priv->head.nr; i++) { in nv50_disp_main_init()
1290 nv50_disp_vblank_fini(struct nvkm_event *event, int type, int head) in nv50_disp_vblank_fini() argument
1293 nv_mask(disp, 0x61002c, (4 << head), 0); in nv50_disp_vblank_fini()
1297 nv50_disp_vblank_init(struct nvkm_event *event, int type, int head) in nv50_disp_vblank_init() argument
1300 nv_mask(disp, 0x61002c, (4 << head), (4 << head)); in nv50_disp_vblank_init()
1385 exec_lookup(struct nv50_disp_priv *priv, int head, int or, u32 ctrl, in exec_lookup() argument
1424 mask |= 0x0100 << head; in exec_lookup()
1426 list_for_each_entry(outp, &priv->base.outp, head) { in exec_lookup()
1442 exec_script(struct nv50_disp_priv *priv, int head, int id) in exec_script() argument
1453 for (i = 0; !(ctrl & (1 << head)) && i < priv->dac.nr; i++) in exec_script()
1457 if (!(ctrl & (1 << head))) { in exec_script()
1465 for (i = 0; !(ctrl & (1 << head)) && i < priv->sor.nr; i++) in exec_script()
1471 if (!(ctrl & (1 << head))) { in exec_script()
1472 for (i = 0; !(ctrl & (1 << head)) && i < priv->pior.nr; i++) in exec_script()
1477 if (!(ctrl & (1 << head))) in exec_script()
1481 outp = exec_lookup(priv, head, i, ctrl, &data, &ver, &hdr, &cnt, &len, &info); in exec_script()
1488 .crtc = head, in exec_script()
1499 exec_clkcmp(struct nv50_disp_priv *priv, int head, int id, u32 pclk, u32 *conf) in exec_clkcmp() argument
1511 for (i = 0; !(ctrl & (1 << head)) && i < priv->dac.nr; i++) in exec_clkcmp()
1515 if (!(ctrl & (1 << head))) { in exec_clkcmp()
1523 for (i = 0; !(ctrl & (1 << head)) && i < priv->sor.nr; i++) in exec_clkcmp()
1529 if (!(ctrl & (1 << head))) { in exec_clkcmp()
1530 for (i = 0; !(ctrl & (1 << head)) && i < priv->pior.nr; i++) in exec_clkcmp()
1535 if (!(ctrl & (1 << head))) in exec_clkcmp()
1539 outp = exec_lookup(priv, head, i, ctrl, &data, &ver, &hdr, &cnt, &len, &info1); in exec_clkcmp()
1575 .crtc = head, in exec_clkcmp()
1587 nv50_disp_intr_unk10_0(struct nv50_disp_priv *priv, int head) in nv50_disp_intr_unk10_0() argument
1589 exec_script(priv, head, 1); in nv50_disp_intr_unk10_0()
1593 nv50_disp_intr_unk20_0(struct nv50_disp_priv *priv, int head) in nv50_disp_intr_unk20_0() argument
1595 struct nvkm_output *outp = exec_script(priv, head, 2); in nv50_disp_intr_unk20_0()
1616 .crtc = head, in nv50_disp_intr_unk20_0()
1627 nv50_disp_intr_unk20_1(struct nv50_disp_priv *priv, int head) in nv50_disp_intr_unk20_1() argument
1630 u32 pclk = nv_rd32(priv, 0x610ad0 + (head * 0x540)) & 0x3fffff; in nv50_disp_intr_unk20_1()
1632 devinit->pll_set(devinit, PLL_VPLL0 + head, pclk); in nv50_disp_intr_unk20_1()
1636 nv50_disp_intr_unk20_2_dp(struct nv50_disp_priv *priv, int head, in nv50_disp_intr_unk20_2_dp() argument
1645 const s32 vactive = nv_rd32(priv, 0x610af8 + (head * 0x540)) & 0xffff; in nv50_disp_intr_unk20_2_dp()
1646 const s32 vblanke = nv_rd32(priv, 0x610ae8 + (head * 0x540)) & 0xffff; in nv50_disp_intr_unk20_2_dp()
1647 const s32 vblanks = nv_rd32(priv, 0x610af0 + (head * 0x540)) & 0xffff; in nv50_disp_intr_unk20_2_dp()
1755 nv50_disp_intr_unk20_2(struct nv50_disp_priv *priv, int head) in nv50_disp_intr_unk20_2() argument
1758 u32 pclk = nv_rd32(priv, 0x610ad0 + (head * 0x540)) & 0x3fffff; in nv50_disp_intr_unk20_2()
1759 u32 hval, hreg = 0x614200 + (head * 0x800); in nv50_disp_intr_unk20_2()
1763 outp = exec_clkcmp(priv, head, 0xff, pclk, &conf); in nv50_disp_intr_unk20_2()
1810 exec_clkcmp(priv, head, 0, pclk, &conf); in nv50_disp_intr_unk20_2()
1820 nv50_disp_intr_unk20_2_dp(priv, head, &outp->info, pclk); in nv50_disp_intr_unk20_2()
1861 nv50_disp_intr_unk40_0(struct nv50_disp_priv *priv, int head) in nv50_disp_intr_unk40_0() argument
1864 u32 pclk = nv_rd32(priv, 0x610ad0 + (head * 0x540)) & 0x3fffff; in nv50_disp_intr_unk40_0()
1867 outp = exec_clkcmp(priv, head, 1, pclk, &conf); in nv50_disp_intr_unk40_0()
1882 int head; in nv50_disp_intr_supervisor() local
1888 for (head = 0; head < priv->head.nr; head++) { in nv50_disp_intr_supervisor()
1889 if (!(super & (0x00000020 << head))) in nv50_disp_intr_supervisor()
1891 if (!(super & (0x00000080 << head))) in nv50_disp_intr_supervisor()
1893 nv50_disp_intr_unk10_0(priv, head); in nv50_disp_intr_supervisor()
1897 for (head = 0; head < priv->head.nr; head++) { in nv50_disp_intr_supervisor()
1898 if (!(super & (0x00000080 << head))) in nv50_disp_intr_supervisor()
1900 nv50_disp_intr_unk20_0(priv, head); in nv50_disp_intr_supervisor()
1902 for (head = 0; head < priv->head.nr; head++) { in nv50_disp_intr_supervisor()
1903 if (!(super & (0x00000200 << head))) in nv50_disp_intr_supervisor()
1905 nv50_disp_intr_unk20_1(priv, head); in nv50_disp_intr_supervisor()
1907 for (head = 0; head < priv->head.nr; head++) { in nv50_disp_intr_supervisor()
1908 if (!(super & (0x00000080 << head))) in nv50_disp_intr_supervisor()
1910 nv50_disp_intr_unk20_2(priv, head); in nv50_disp_intr_supervisor()
1914 for (head = 0; head < priv->head.nr; head++) { in nv50_disp_intr_supervisor()
1915 if (!(super & (0x00000080 << head))) in nv50_disp_intr_supervisor()
1917 nv50_disp_intr_unk40_0(priv, head); in nv50_disp_intr_supervisor()
1986 priv->head.nr = 2; in nv50_disp_ctor()
2018 .head.scanoutpos = nv50_disp_main_scanoutpos,