Lines Matching refs:tidss

16 static void tidss_irq_update(struct tidss_device *tidss)  in tidss_irq_update()  argument
18 assert_spin_locked(&tidss->wait_lock); in tidss_irq_update()
20 dispc_set_irqenable(tidss->dispc, tidss->irq_mask); in tidss_irq_update()
26 struct tidss_device *tidss = to_tidss(ddev); in tidss_irq_enable_vblank() local
31 spin_lock_irqsave(&tidss->wait_lock, flags); in tidss_irq_enable_vblank()
32 tidss->irq_mask |= DSS_IRQ_VP_VSYNC_EVEN(hw_videoport) | in tidss_irq_enable_vblank()
34 tidss_irq_update(tidss); in tidss_irq_enable_vblank()
35 spin_unlock_irqrestore(&tidss->wait_lock, flags); in tidss_irq_enable_vblank()
41 struct tidss_device *tidss = to_tidss(ddev); in tidss_irq_disable_vblank() local
46 spin_lock_irqsave(&tidss->wait_lock, flags); in tidss_irq_disable_vblank()
47 tidss->irq_mask &= ~(DSS_IRQ_VP_VSYNC_EVEN(hw_videoport) | in tidss_irq_disable_vblank()
49 tidss_irq_update(tidss); in tidss_irq_disable_vblank()
50 spin_unlock_irqrestore(&tidss->wait_lock, flags); in tidss_irq_disable_vblank()
56 struct tidss_device *tidss = to_tidss(ddev); in tidss_irq_handler() local
63 irqstatus = dispc_read_and_clear_irqstatus(tidss->dispc); in tidss_irq_handler()
65 for (id = 0; id < tidss->num_crtcs; id++) { in tidss_irq_handler()
66 struct drm_crtc *crtc = tidss->crtcs[id]; in tidss_irq_handler()
82 dev_err_ratelimited(tidss->dev, "OCP error\n"); in tidss_irq_handler()
87 void tidss_irq_resume(struct tidss_device *tidss) in tidss_irq_resume() argument
91 spin_lock_irqsave(&tidss->wait_lock, flags); in tidss_irq_resume()
92 tidss_irq_update(tidss); in tidss_irq_resume()
93 spin_unlock_irqrestore(&tidss->wait_lock, flags); in tidss_irq_resume()
98 struct tidss_device *tidss = to_tidss(ddev); in tidss_irq_preinstall() local
100 spin_lock_init(&tidss->wait_lock); in tidss_irq_preinstall()
102 tidss_runtime_get(tidss); in tidss_irq_preinstall()
104 dispc_set_irqenable(tidss->dispc, 0); in tidss_irq_preinstall()
105 dispc_read_and_clear_irqstatus(tidss->dispc); in tidss_irq_preinstall()
107 tidss_runtime_put(tidss); in tidss_irq_preinstall()
112 struct tidss_device *tidss = to_tidss(ddev); in tidss_irq_postinstall() local
116 tidss_runtime_get(tidss); in tidss_irq_postinstall()
118 spin_lock_irqsave(&tidss->wait_lock, flags); in tidss_irq_postinstall()
120 tidss->irq_mask = DSS_IRQ_DEVICE_OCP_ERR; in tidss_irq_postinstall()
122 for (i = 0; i < tidss->num_crtcs; ++i) { in tidss_irq_postinstall()
123 struct tidss_crtc *tcrtc = to_tidss_crtc(tidss->crtcs[i]); in tidss_irq_postinstall()
125 tidss->irq_mask |= DSS_IRQ_VP_SYNC_LOST(tcrtc->hw_videoport); in tidss_irq_postinstall()
127 tidss->irq_mask |= DSS_IRQ_VP_FRAME_DONE(tcrtc->hw_videoport); in tidss_irq_postinstall()
130 tidss_irq_update(tidss); in tidss_irq_postinstall()
132 spin_unlock_irqrestore(&tidss->wait_lock, flags); in tidss_irq_postinstall()
134 tidss_runtime_put(tidss); in tidss_irq_postinstall()
141 struct tidss_device *tidss = to_tidss(ddev); in tidss_irq_uninstall() local
143 tidss_runtime_get(tidss); in tidss_irq_uninstall()
144 dispc_set_irqenable(tidss->dispc, 0); in tidss_irq_uninstall()
145 tidss_runtime_put(tidss); in tidss_irq_uninstall()