Lines Matching refs:head
40 nv50_head_flush_clr(struct nv50_head *head, in nv50_head_flush_clr() argument
46 if (clr.crc) nv50_crc_atomic_clr(head); in nv50_head_flush_clr()
47 if (clr.olut) head->func->olut_clr(head); in nv50_head_flush_clr()
48 if (clr.core) head->func->core_clr(head); in nv50_head_flush_clr()
49 if (clr.curs) head->func->curs_clr(head); in nv50_head_flush_clr()
53 nv50_head_flush_set_wndw(struct nv50_head *head, struct nv50_head_atom *asyh) in nv50_head_flush_set_wndw() argument
55 if (asyh->set.curs ) head->func->curs_set(head, asyh); in nv50_head_flush_set_wndw()
57 asyh->olut.offset = nv50_lut_load(&head->olut, in nv50_head_flush_set_wndw()
61 head->func->olut_set(head, asyh); in nv50_head_flush_set_wndw()
66 nv50_head_flush_set(struct nv50_head *head, struct nv50_head_atom *asyh) in nv50_head_flush_set() argument
68 if (asyh->set.view ) head->func->view (head, asyh); in nv50_head_flush_set()
69 if (asyh->set.mode ) head->func->mode (head, asyh); in nv50_head_flush_set()
70 if (asyh->set.core ) head->func->core_set(head, asyh); in nv50_head_flush_set()
71 if (asyh->set.base ) head->func->base (head, asyh); in nv50_head_flush_set()
72 if (asyh->set.ovly ) head->func->ovly (head, asyh); in nv50_head_flush_set()
73 if (asyh->set.dither ) head->func->dither (head, asyh); in nv50_head_flush_set()
74 if (asyh->set.procamp) head->func->procamp (head, asyh); in nv50_head_flush_set()
75 if (asyh->set.crc ) nv50_crc_atomic_set (head, asyh); in nv50_head_flush_set()
76 if (asyh->set.or ) head->func->or (head, asyh); in nv50_head_flush_set()
220 nv50_head_atomic_check_lut(struct nv50_head *head, in nv50_head_atomic_check_lut() argument
223 struct drm_device *dev = head->base.base.dev; in nv50_head_atomic_check_lut()
224 struct drm_crtc *crtc = &head->base.base; in nv50_head_atomic_check_lut()
234 if (!head->func->ilut_check(size)) { in nv50_head_atomic_check_lut()
257 if (!head->func->olut_identity) { in nv50_head_atomic_check_lut()
266 if (!head->func->olut(head, asyh, size)) { in nv50_head_atomic_check_lut()
278 nv50_head_atomic_check_mode(struct nv50_head *head, struct nv50_head_atom *asyh) in nv50_head_atomic_check_mode() argument
323 asyh->set.or = head->func->or != NULL; in nv50_head_atomic_check_mode()
335 struct nv50_head *head = nv50_head(crtc); in nv50_head_atomic_check() local
348 ret = nv50_head_atomic_check_lut(head, asyh); in nv50_head_atomic_check()
372 asyh->set.or = head->func->or != NULL; in nv50_head_atomic_check()
376 nv50_head_atomic_check_mode(head, asyh); in nv50_head_atomic_check()
390 if (head->func->core_calc) { in nv50_head_atomic_check()
391 head->func->core_calc(head, asyh); in nv50_head_atomic_check()
439 ret = nv50_crc_atomic_check_head(head, asyh, armh); in nv50_head_atomic_check()
512 struct nv50_head *head = nv50_head(crtc); in nv50_head_destroy() local
514 nvif_event_dtor(&head->base.vblank); in nv50_head_destroy()
515 nvif_head_dtor(&head->base.head); in nv50_head_destroy()
516 nv50_lut_fini(&head->olut); in nv50_head_destroy()
518 kfree(head); in nv50_head_destroy()
568 struct nv50_head *head; in nv50_head_create() local
575 head = kzalloc(sizeof(*head), GFP_KERNEL); in nv50_head_create()
576 if (!head) in nv50_head_create()
579 head->func = disp->core->func->head; in nv50_head_create()
580 head->base.index = index; in nv50_head_create()
588 ret = nv50_base_new(drm, head->base.index, &base); in nv50_head_create()
589 ret = nv50_ovly_new(drm, head->base.index, &ovly); in nv50_head_create()
592 head->base.index * 2 + 0, &base); in nv50_head_create()
594 head->base.index * 2 + 1, &ovly); in nv50_head_create()
597 ret = nv50_curs_new(drm, head->base.index, &curs); in nv50_head_create()
599 kfree(head); in nv50_head_create()
603 nv_crtc = &head->base; in nv50_head_create()
606 funcs, "head-%d", head->base.index); in nv50_head_create()
612 head->func->olut_size); in nv50_head_create()
614 if (head->func->olut_set) { in nv50_head_create()
615 ret = nv50_lut_init(disp, &drm->client.mmu, &head->olut); in nv50_head_create()
622 ret = nvif_head_ctor(disp->disp, head->base.base.name, head->base.index, &head->base.head); in nv50_head_create()
626 ret = nvif_head_vblank_event_ctor(&head->base.head, "kmsVbl", nv50_head_vblank_handler, in nv50_head_create()
631 return head; in nv50_head_create()