Lines Matching defs:head

18 #include "head.h"
72 nv50_crc_program_ctx(struct nv50_head *head,
75 struct nv50_disp *disp = nv50_disp(head->base.base.dev);
79 core->func->crc->set_ctx(head, ctx);
87 struct nv50_head *head = container_of(crc, struct nv50_head, crc);
88 struct drm_crtc *crtc = &head->base.base;
108 nv50_crc_program_ctx(head, NULL);
109 nv50_crc_program_ctx(head, &crc->ctx[new_idx]);
129 nv50_crc_get_entries(struct nv50_head *head,
133 struct drm_crtc *crtc = &head->base.base;
134 struct nv50_crc *crc = &head->crc;
143 output_crc = func->get_entry(head, &crc->ctx[crc->ctx_idx],
154 void nv50_crc_handle_vblank(struct nv50_head *head)
156 struct drm_crtc *crtc = &head->base.base;
157 struct nv50_crc *crc = &head->crc;
159 nv50_disp(head->base.base.dev)->core->func->crc;
178 if (crc->ctx_changed && func->ctx_finished(head, ctx)) {
179 nv50_crc_get_entries(head, func, crc->src);
198 drm_dbg_kms(head->base.base.dev,
199 "Notifier ctx flip for head-%d finished, lost CRC for frame %llu\n",
200 head->base.index, crc->frame);
207 nv50_crc_get_entries(head, func, crc->src);
220 static void nv50_crc_wait_ctx_finished(struct nv50_head *head,
224 struct drm_device *dev = head->base.base.dev;
229 if (func->ctx_finished(head, ctx)) break;);
232 "CRC notifier ctx for head %d not finished after 50ms\n",
233 head->base.index);
236 "CRC notifier ctx for head-%d finished after %lldns\n",
237 head->base.index, ret);
247 struct nv50_head *head = nv50_head(crtc);
249 struct nv50_crc *crc = &head->crc;
262 "CRC reporting on vblank for head-%d disabled\n",
263 head->base.index);
279 struct nv50_head *head = nv50_head(crtc);
281 struct nv50_crc *crc = &head->crc;
303 struct nv50_head *head = nv50_head(crtc);
305 struct nv50_crc *crc = &head->crc;
312 nv50_crc_wait_ctx_finished(head, func, ctx);
315 nv50_crc_wait_ctx_finished(head, func, ctx);
326 struct nv50_head *head = nv50_head(crtc);
328 struct nv50_crc *crc = &head->crc;
346 "CRC reporting on vblank for head-%d enabled\n",
347 head->base.index);
351 int nv50_crc_atomic_check_head(struct nv50_head *head,
415 list_for_each_entry(outp_atom, &atom->outp, head) {
450 void nv50_crc_atomic_set(struct nv50_head *head,
453 struct drm_crtc *crtc = &head->base.base;
455 struct nv50_crc *crc = &head->crc;
468 func->set_src(head, outp->outp.or.id, nv50_crc_source_type(outp, asyh->crc.src),
472 void nv50_crc_atomic_clr(struct nv50_head *head)
475 nv50_disp(head->base.base.dev)->core->func->crc;
477 func->set_src(head, 0, NV50_CRC_SOURCE_TYPE_NONE, NULL);
502 nv50_crc_ctx_init(struct nv50_head *head, struct nvif_mmu *mmu,
505 struct nv50_core *core = nv50_disp(head->base.base.dev)->core;
517 NV50_DISP_HANDLE_CRC_CTX(head, idx),
549 struct nv50_head *head = nv50_head(crtc);
550 struct nv50_crc *crc = &head->crc;
578 for (i = 0; i < ARRAY_SIZE(head->crc.ctx); i++) {
579 ret = nv50_crc_ctx_init(head, mmu, &crc->ctx[i],
587 crtc_state = drm_atomic_get_crtc_state(state, &head->base.base);
634 struct nv50_head *head = m->private;
635 struct drm_crtc *crtc = &head->base.base;
636 struct nv50_crc *crc = &head->crc;
662 struct nv50_head *head = m->private;
664 struct drm_crtc *crtc = &head->base.base;
666 struct nv50_crc *crc = &head->crc;
693 "Changing CRC flip threshold for next capture on head-%d to %d\n",
694 head->base.index, value);
711 int nv50_head_crc_late_register(struct nv50_head *head)
713 struct drm_crtc *crtc = &head->base.base;
722 debugfs_create_file("flip_threshold", 0644, root, head,
730 struct nv50_head *head)
732 struct nv50_crc *crc = &head->crc;
736 drm_vblank_work_init(&crc->flip_work, &head->base.base,