Lines Matching refs:mdp_kms
32 static void update_irq(struct mdp_kms *mdp_kms) in update_irq() argument
35 uint32_t irqmask = mdp_kms->vblank_mask; in update_irq()
39 list_for_each_entry(irq, &mdp_kms->irq_list, node) in update_irq()
42 mdp_kms->funcs->set_irqmask(mdp_kms, irqmask, mdp_kms->cur_irq_mask); in update_irq()
43 mdp_kms->cur_irq_mask = irqmask; in update_irq()
49 void mdp_irq_update(struct mdp_kms *mdp_kms) in mdp_irq_update() argument
53 update_irq(mdp_kms); in mdp_irq_update()
57 void mdp_dispatch_irqs(struct mdp_kms *mdp_kms, uint32_t status) in mdp_dispatch_irqs() argument
63 mdp_kms->in_irq = true; in mdp_dispatch_irqs()
64 list_for_each_entry_safe(handler, n, &mdp_kms->irq_list, node) { in mdp_dispatch_irqs()
71 mdp_kms->in_irq = false; in mdp_dispatch_irqs()
72 update_irq(mdp_kms); in mdp_dispatch_irqs()
77 void mdp_update_vblank_mask(struct mdp_kms *mdp_kms, uint32_t mask, bool enable) in mdp_update_vblank_mask() argument
83 mdp_kms->vblank_mask |= mask; in mdp_update_vblank_mask()
85 mdp_kms->vblank_mask &= ~mask; in mdp_update_vblank_mask()
86 update_irq(mdp_kms); in mdp_update_vblank_mask()
98 void mdp_irq_wait(struct mdp_kms *mdp_kms, uint32_t irqmask) in mdp_irq_wait() argument
107 mdp_irq_register(mdp_kms, &wait.irq); in mdp_irq_wait()
110 mdp_irq_unregister(mdp_kms, &wait.irq); in mdp_irq_wait()
113 void mdp_irq_register(struct mdp_kms *mdp_kms, struct mdp_irq *irq) in mdp_irq_register() argument
122 list_add(&irq->node, &mdp_kms->irq_list); in mdp_irq_register()
123 needs_update = !mdp_kms->in_irq; in mdp_irq_register()
129 mdp_irq_update(mdp_kms); in mdp_irq_register()
132 void mdp_irq_unregister(struct mdp_kms *mdp_kms, struct mdp_irq *irq) in mdp_irq_unregister() argument
142 needs_update = !mdp_kms->in_irq; in mdp_irq_unregister()
148 mdp_irq_update(mdp_kms); in mdp_irq_unregister()