Lines Matching refs:tilcdc_crtc
24 struct tilcdc_crtc { struct
44 #define to_tilcdc_crtc(x) container_of(x, struct tilcdc_crtc, base) argument
48 struct tilcdc_crtc *tilcdc_crtc = in unref_worker() local
49 container_of(work, struct tilcdc_crtc, unref_work); in unref_worker()
50 struct drm_device *dev = tilcdc_crtc->base.dev; in unref_worker()
70 struct tilcdc_crtc *tilcdc_crtc = to_tilcdc_crtc(crtc); in set_scanout() local
75 tilcdc_write(dev, base_reg[n], tilcdc_crtc->start); in set_scanout()
76 tilcdc_write(dev, ceil_reg[n], tilcdc_crtc->end); in set_scanout()
77 if (tilcdc_crtc->scanout[n]) { in set_scanout()
78 drm_flip_work_queue(&tilcdc_crtc->unref_work, tilcdc_crtc->scanout[n]); in set_scanout()
79 drm_flip_work_commit(&tilcdc_crtc->unref_work, priv->wq); in set_scanout()
81 tilcdc_crtc->scanout[n] = crtc->primary->fb; in set_scanout()
82 drm_framebuffer_reference(tilcdc_crtc->scanout[n]); in set_scanout()
83 tilcdc_crtc->dirty &= ~stat[n]; in set_scanout()
89 struct tilcdc_crtc *tilcdc_crtc = to_tilcdc_crtc(crtc); in update_scanout() local
98 tilcdc_crtc->start = gem->paddr + fb->offsets[0] + in update_scanout()
101 tilcdc_crtc->end = tilcdc_crtc->start + in update_scanout()
104 if (tilcdc_crtc->dpms == DRM_MODE_DPMS_ON) { in update_scanout()
108 tilcdc_crtc->dirty |= LCDC_END_OF_FRAME0 | LCDC_END_OF_FRAME1; in update_scanout()
144 struct tilcdc_crtc *tilcdc_crtc = to_tilcdc_crtc(crtc); in tilcdc_crtc_destroy() local
149 drm_flip_work_cleanup(&tilcdc_crtc->unref_work); in tilcdc_crtc_destroy()
151 kfree(tilcdc_crtc); in tilcdc_crtc_destroy()
159 struct tilcdc_crtc *tilcdc_crtc = to_tilcdc_crtc(crtc); in tilcdc_crtc_page_flip() local
162 if (tilcdc_crtc->event) { in tilcdc_crtc_page_flip()
168 tilcdc_crtc->event = event; in tilcdc_crtc_page_flip()
176 struct tilcdc_crtc *tilcdc_crtc = to_tilcdc_crtc(crtc); in tilcdc_crtc_dpms() local
184 if (tilcdc_crtc->dpms == mode) in tilcdc_crtc_dpms()
187 tilcdc_crtc->dpms = mode; in tilcdc_crtc_dpms()
195 tilcdc_crtc->frame_done = false; in tilcdc_crtc_dpms()
204 tilcdc_crtc->frame_done_wq, in tilcdc_crtc_dpms()
205 tilcdc_crtc->frame_done, in tilcdc_crtc_dpms()
220 struct tilcdc_crtc *tilcdc_crtc = to_tilcdc_crtc(crtc); in tilcdc_crtc_mode_fixup() local
222 if (!tilcdc_crtc->simulate_vesa_sync) in tilcdc_crtc_mode_fixup()
261 struct tilcdc_crtc *tilcdc_crtc = to_tilcdc_crtc(crtc); in tilcdc_crtc_mode_set() local
264 const struct tilcdc_panel_info *info = tilcdc_crtc->info; in tilcdc_crtc_mode_set()
558 struct tilcdc_crtc *tilcdc_crtc = to_tilcdc_crtc(crtc); in tilcdc_crtc_set_panel_info() local
559 tilcdc_crtc->info = info; in tilcdc_crtc_set_panel_info()
565 struct tilcdc_crtc *tilcdc_crtc = to_tilcdc_crtc(crtc); in tilcdc_crtc_set_simulate_vesa_sync() local
567 tilcdc_crtc->simulate_vesa_sync = simulate_vesa_sync; in tilcdc_crtc_set_simulate_vesa_sync()
572 struct tilcdc_crtc *tilcdc_crtc = to_tilcdc_crtc(crtc); in tilcdc_crtc_update_clk() local
575 int dpms = tilcdc_crtc->dpms; in tilcdc_crtc_update_clk()
616 struct tilcdc_crtc *tilcdc_crtc = to_tilcdc_crtc(crtc); in tilcdc_crtc_irq() local
631 uint32_t dirty = tilcdc_crtc->dirty & stat; in tilcdc_crtc_irq()
644 event = tilcdc_crtc->event; in tilcdc_crtc_irq()
645 tilcdc_crtc->event = NULL; in tilcdc_crtc_irq()
650 if (dirty && !tilcdc_crtc->dirty) in tilcdc_crtc_irq()
656 tilcdc_crtc->frame_done = true; in tilcdc_crtc_irq()
657 wake_up(&tilcdc_crtc->frame_done_wq); in tilcdc_crtc_irq()
667 struct tilcdc_crtc *tilcdc_crtc = to_tilcdc_crtc(crtc); in tilcdc_crtc_cancel_page_flip() local
676 event = tilcdc_crtc->event; in tilcdc_crtc_cancel_page_flip()
678 tilcdc_crtc->event = NULL; in tilcdc_crtc_cancel_page_flip()
687 struct tilcdc_crtc *tilcdc_crtc; in tilcdc_crtc_create() local
691 tilcdc_crtc = kzalloc(sizeof(*tilcdc_crtc), GFP_KERNEL); in tilcdc_crtc_create()
692 if (!tilcdc_crtc) { in tilcdc_crtc_create()
697 crtc = &tilcdc_crtc->base; in tilcdc_crtc_create()
699 tilcdc_crtc->dpms = DRM_MODE_DPMS_OFF; in tilcdc_crtc_create()
700 init_waitqueue_head(&tilcdc_crtc->frame_done_wq); in tilcdc_crtc_create()
702 drm_flip_work_init(&tilcdc_crtc->unref_work, in tilcdc_crtc_create()