Lines Matching refs:tidss

19 static void tidss_irq_update(struct tidss_device *tidss)
21 assert_spin_locked(&tidss->wait_lock);
23 dispc_set_irqenable(tidss->dispc, tidss->irq_mask);
29 struct tidss_device *tidss = to_tidss(ddev);
34 spin_lock_irqsave(&tidss->wait_lock, flags);
35 tidss->irq_mask |= DSS_IRQ_VP_VSYNC_EVEN(hw_videoport) |
37 tidss_irq_update(tidss);
38 spin_unlock_irqrestore(&tidss->wait_lock, flags);
44 struct tidss_device *tidss = to_tidss(ddev);
49 spin_lock_irqsave(&tidss->wait_lock, flags);
50 tidss->irq_mask &= ~(DSS_IRQ_VP_VSYNC_EVEN(hw_videoport) |
52 tidss_irq_update(tidss);
53 spin_unlock_irqrestore(&tidss->wait_lock, flags);
59 struct tidss_device *tidss = to_tidss(ddev);
63 irqstatus = dispc_read_and_clear_irqstatus(tidss->dispc);
65 for (id = 0; id < tidss->num_crtcs; id++) {
66 struct drm_crtc *crtc = tidss->crtcs[id];
82 dev_err_ratelimited(tidss->dev, "OCP error\n");
87 void tidss_irq_resume(struct tidss_device *tidss)
91 spin_lock_irqsave(&tidss->wait_lock, flags);
92 tidss_irq_update(tidss);
93 spin_unlock_irqrestore(&tidss->wait_lock, flags);
98 struct tidss_device *tidss = to_tidss(ddev);
100 spin_lock_init(&tidss->wait_lock);
102 tidss_runtime_get(tidss);
104 dispc_set_irqenable(tidss->dispc, 0);
105 dispc_read_and_clear_irqstatus(tidss->dispc);
107 tidss_runtime_put(tidss);
112 struct tidss_device *tidss = to_tidss(ddev);
116 tidss_runtime_get(tidss);
118 spin_lock_irqsave(&tidss->wait_lock, flags);
120 tidss->irq_mask = DSS_IRQ_DEVICE_OCP_ERR;
122 for (i = 0; i < tidss->num_crtcs; ++i) {
123 struct tidss_crtc *tcrtc = to_tidss_crtc(tidss->crtcs[i]);
125 tidss->irq_mask |= DSS_IRQ_VP_SYNC_LOST(tcrtc->hw_videoport);
127 tidss->irq_mask |= DSS_IRQ_VP_FRAME_DONE(tcrtc->hw_videoport);
130 tidss_irq_update(tidss);
132 spin_unlock_irqrestore(&tidss->wait_lock, flags);
134 tidss_runtime_put(tidss);
157 struct tidss_device *tidss = to_tidss(ddev);
159 tidss_runtime_get(tidss);
160 dispc_set_irqenable(tidss->dispc, 0);
161 tidss_runtime_put(tidss);
163 free_irq(tidss->irq, ddev);