Lines Matching refs:crtc
52 drm_crtc_to_atmel_hlcdc_crtc(struct drm_crtc *crtc) in drm_crtc_to_atmel_hlcdc_crtc() argument
54 return container_of(crtc, struct atmel_hlcdc_crtc, base); in drm_crtc_to_atmel_hlcdc_crtc()
59 struct atmel_hlcdc_crtc *crtc = drm_crtc_to_atmel_hlcdc_crtc(c); in atmel_hlcdc_crtc_mode_set_nofb() local
60 struct regmap *regmap = crtc->dc->hlcdc->regmap; in atmel_hlcdc_crtc_mode_set_nofb()
90 prate = clk_get_rate(crtc->dc->hlcdc->sys_clk); in atmel_hlcdc_crtc_mode_set_nofb()
124 static bool atmel_hlcdc_crtc_mode_fixup(struct drm_crtc *crtc, in atmel_hlcdc_crtc_mode_fixup() argument
134 struct atmel_hlcdc_crtc *crtc = drm_crtc_to_atmel_hlcdc_crtc(c); in atmel_hlcdc_crtc_disable() local
135 struct regmap *regmap = crtc->dc->hlcdc->regmap; in atmel_hlcdc_crtc_disable()
138 if (!crtc->enabled) in atmel_hlcdc_crtc_disable()
160 clk_disable_unprepare(crtc->dc->hlcdc->sys_clk); in atmel_hlcdc_crtc_disable()
167 crtc->enabled = false; in atmel_hlcdc_crtc_disable()
173 struct atmel_hlcdc_crtc *crtc = drm_crtc_to_atmel_hlcdc_crtc(c); in atmel_hlcdc_crtc_enable() local
174 struct regmap *regmap = crtc->dc->hlcdc->regmap; in atmel_hlcdc_crtc_enable()
177 if (crtc->enabled) in atmel_hlcdc_crtc_enable()
185 clk_prepare_enable(crtc->dc->hlcdc->sys_clk); in atmel_hlcdc_crtc_enable()
207 crtc->enabled = true; in atmel_hlcdc_crtc_enable()
212 struct atmel_hlcdc_crtc *crtc = drm_crtc_to_atmel_hlcdc_crtc(c); in atmel_hlcdc_crtc_suspend() local
214 if (crtc->enabled) { in atmel_hlcdc_crtc_suspend()
217 crtc->enabled = true; in atmel_hlcdc_crtc_suspend()
223 struct atmel_hlcdc_crtc *crtc = drm_crtc_to_atmel_hlcdc_crtc(c); in atmel_hlcdc_crtc_resume() local
225 if (crtc->enabled) { in atmel_hlcdc_crtc_resume()
226 crtc->enabled = false; in atmel_hlcdc_crtc_resume()
234 struct atmel_hlcdc_crtc *crtc = drm_crtc_to_atmel_hlcdc_crtc(c); in atmel_hlcdc_crtc_atomic_check() local
236 if (atmel_hlcdc_dc_mode_valid(crtc->dc, &s->adjusted_mode) != MODE_OK) in atmel_hlcdc_crtc_atomic_check()
244 struct atmel_hlcdc_crtc *crtc = drm_crtc_to_atmel_hlcdc_crtc(c); in atmel_hlcdc_crtc_atomic_begin() local
251 crtc->event = c->state->event; in atmel_hlcdc_crtc_atomic_begin()
256 static void atmel_hlcdc_crtc_atomic_flush(struct drm_crtc *crtc) in atmel_hlcdc_crtc_atomic_flush() argument
275 struct atmel_hlcdc_crtc *crtc = drm_crtc_to_atmel_hlcdc_crtc(c); in atmel_hlcdc_crtc_destroy() local
278 kfree(crtc); in atmel_hlcdc_crtc_destroy()
284 struct atmel_hlcdc_crtc *crtc = drm_crtc_to_atmel_hlcdc_crtc(c); in atmel_hlcdc_crtc_cancel_page_flip() local
290 event = crtc->event; in atmel_hlcdc_crtc_cancel_page_flip()
293 drm_vblank_put(dev, crtc->id); in atmel_hlcdc_crtc_cancel_page_flip()
294 crtc->event = NULL; in atmel_hlcdc_crtc_cancel_page_flip()
299 static void atmel_hlcdc_crtc_finish_page_flip(struct atmel_hlcdc_crtc *crtc) in atmel_hlcdc_crtc_finish_page_flip() argument
301 struct drm_device *dev = crtc->base.dev; in atmel_hlcdc_crtc_finish_page_flip()
305 if (crtc->event) { in atmel_hlcdc_crtc_finish_page_flip()
306 drm_send_vblank_event(dev, crtc->id, crtc->event); in atmel_hlcdc_crtc_finish_page_flip()
307 drm_vblank_put(dev, crtc->id); in atmel_hlcdc_crtc_finish_page_flip()
308 crtc->event = NULL; in atmel_hlcdc_crtc_finish_page_flip()
332 struct atmel_hlcdc_crtc *crtc; in atmel_hlcdc_crtc_create() local
336 crtc = kzalloc(sizeof(*crtc), GFP_KERNEL); in atmel_hlcdc_crtc_create()
337 if (!crtc) in atmel_hlcdc_crtc_create()
340 crtc->dc = dc; in atmel_hlcdc_crtc_create()
342 ret = drm_crtc_init_with_planes(dev, &crtc->base, in atmel_hlcdc_crtc_create()
349 crtc->id = drm_crtc_index(&crtc->base); in atmel_hlcdc_crtc_create()
352 planes->cursor->base.possible_crtcs = 1 << crtc->id; in atmel_hlcdc_crtc_create()
355 planes->overlays[i]->base.possible_crtcs = 1 << crtc->id; in atmel_hlcdc_crtc_create()
357 drm_crtc_helper_add(&crtc->base, &lcdc_crtc_helper_funcs); in atmel_hlcdc_crtc_create()
359 dc->crtc = &crtc->base; in atmel_hlcdc_crtc_create()
364 atmel_hlcdc_crtc_destroy(&crtc->base); in atmel_hlcdc_crtc_create()