Lines Matching refs:crtc

60 drm_crtc_to_atmel_hlcdc_crtc(struct drm_crtc *crtc)  in drm_crtc_to_atmel_hlcdc_crtc()  argument
62 return container_of(crtc, struct atmel_hlcdc_crtc, base); in drm_crtc_to_atmel_hlcdc_crtc()
67 struct atmel_hlcdc_crtc *crtc = drm_crtc_to_atmel_hlcdc_crtc(c); in atmel_hlcdc_crtc_mode_set_nofb() local
68 struct regmap *regmap = crtc->dc->hlcdc->regmap; in atmel_hlcdc_crtc_mode_set_nofb()
78 ret = clk_prepare_enable(crtc->dc->hlcdc->sys_clk); in atmel_hlcdc_crtc_mode_set_nofb()
102 prate = clk_get_rate(crtc->dc->hlcdc->sys_clk); in atmel_hlcdc_crtc_mode_set_nofb()
104 if (!crtc->dc->desc->fixed_clksrc) { in atmel_hlcdc_crtc_mode_set_nofb()
155 clk_disable_unprepare(crtc->dc->hlcdc->sys_clk); in atmel_hlcdc_crtc_mode_set_nofb()
162 struct atmel_hlcdc_crtc *crtc = drm_crtc_to_atmel_hlcdc_crtc(c); in atmel_hlcdc_crtc_mode_valid() local
164 return atmel_hlcdc_dc_mode_valid(crtc->dc, mode); in atmel_hlcdc_crtc_mode_valid()
171 struct atmel_hlcdc_crtc *crtc = drm_crtc_to_atmel_hlcdc_crtc(c); in atmel_hlcdc_crtc_atomic_disable() local
172 struct regmap *regmap = crtc->dc->hlcdc->regmap; in atmel_hlcdc_crtc_atomic_disable()
194 clk_disable_unprepare(crtc->dc->hlcdc->sys_clk); in atmel_hlcdc_crtc_atomic_disable()
206 struct atmel_hlcdc_crtc *crtc = drm_crtc_to_atmel_hlcdc_crtc(c); in atmel_hlcdc_crtc_atomic_enable() local
207 struct regmap *regmap = crtc->dc->hlcdc->regmap; in atmel_hlcdc_crtc_atomic_enable()
215 clk_prepare_enable(crtc->dc->hlcdc->sys_clk); in atmel_hlcdc_crtc_atomic_enable()
298 struct atmel_hlcdc_crtc *crtc; in atmel_hlcdc_crtc_select_output_mode() local
301 crtc = drm_crtc_to_atmel_hlcdc_crtc(state->crtc); in atmel_hlcdc_crtc_select_output_mode()
306 if (!cstate->crtc) in atmel_hlcdc_crtc_select_output_mode()
311 if (crtc->dc->desc->conflicting_output_formats) in atmel_hlcdc_crtc_select_output_mode()
352 struct atmel_hlcdc_crtc *crtc = drm_crtc_to_atmel_hlcdc_crtc(c); in atmel_hlcdc_crtc_atomic_flush() local
362 crtc->event = c->state->event; in atmel_hlcdc_crtc_atomic_flush()
380 struct atmel_hlcdc_crtc *crtc = drm_crtc_to_atmel_hlcdc_crtc(c); in atmel_hlcdc_crtc_destroy() local
383 kfree(crtc); in atmel_hlcdc_crtc_destroy()
386 static void atmel_hlcdc_crtc_finish_page_flip(struct atmel_hlcdc_crtc *crtc) in atmel_hlcdc_crtc_finish_page_flip() argument
388 struct drm_device *dev = crtc->base.dev; in atmel_hlcdc_crtc_finish_page_flip()
392 if (crtc->event) { in atmel_hlcdc_crtc_finish_page_flip()
393 drm_crtc_send_vblank_event(&crtc->base, crtc->event); in atmel_hlcdc_crtc_finish_page_flip()
394 drm_crtc_vblank_put(&crtc->base); in atmel_hlcdc_crtc_finish_page_flip()
395 crtc->event = NULL; in atmel_hlcdc_crtc_finish_page_flip()
406 static void atmel_hlcdc_crtc_reset(struct drm_crtc *crtc) in atmel_hlcdc_crtc_reset() argument
410 if (crtc->state) { in atmel_hlcdc_crtc_reset()
411 __drm_atomic_helper_crtc_destroy_state(crtc->state); in atmel_hlcdc_crtc_reset()
412 state = drm_crtc_state_to_atmel_hlcdc_crtc_state(crtc->state); in atmel_hlcdc_crtc_reset()
414 crtc->state = NULL; in atmel_hlcdc_crtc_reset()
419 __drm_atomic_helper_crtc_reset(crtc, &state->base); in atmel_hlcdc_crtc_reset()
423 atmel_hlcdc_crtc_duplicate_state(struct drm_crtc *crtc) in atmel_hlcdc_crtc_duplicate_state() argument
427 if (WARN_ON(!crtc->state)) in atmel_hlcdc_crtc_duplicate_state()
433 __drm_atomic_helper_crtc_duplicate_state(crtc, &state->base); in atmel_hlcdc_crtc_duplicate_state()
435 cur = drm_crtc_state_to_atmel_hlcdc_crtc_state(crtc->state); in atmel_hlcdc_crtc_duplicate_state()
441 static void atmel_hlcdc_crtc_destroy_state(struct drm_crtc *crtc, in atmel_hlcdc_crtc_destroy_state() argument
453 struct atmel_hlcdc_crtc *crtc = drm_crtc_to_atmel_hlcdc_crtc(c); in atmel_hlcdc_crtc_enable_vblank() local
454 struct regmap *regmap = crtc->dc->hlcdc->regmap; in atmel_hlcdc_crtc_enable_vblank()
464 struct atmel_hlcdc_crtc *crtc = drm_crtc_to_atmel_hlcdc_crtc(c); in atmel_hlcdc_crtc_disable_vblank() local
465 struct regmap *regmap = crtc->dc->hlcdc->regmap; in atmel_hlcdc_crtc_disable_vblank()
485 struct atmel_hlcdc_crtc *crtc; in atmel_hlcdc_crtc_create() local
489 crtc = kzalloc(sizeof(*crtc), GFP_KERNEL); in atmel_hlcdc_crtc_create()
490 if (!crtc) in atmel_hlcdc_crtc_create()
493 crtc->dc = dc; in atmel_hlcdc_crtc_create()
513 ret = drm_crtc_init_with_planes(dev, &crtc->base, &primary->base, in atmel_hlcdc_crtc_create()
519 crtc->id = drm_crtc_index(&crtc->base); in atmel_hlcdc_crtc_create()
527 overlay->base.possible_crtcs = 1 << crtc->id; in atmel_hlcdc_crtc_create()
531 drm_crtc_helper_add(&crtc->base, &lcdc_crtc_helper_funcs); in atmel_hlcdc_crtc_create()
533 drm_mode_crtc_set_gamma_size(&crtc->base, ATMEL_HLCDC_CLUT_SIZE); in atmel_hlcdc_crtc_create()
534 drm_crtc_enable_color_mgmt(&crtc->base, 0, false, in atmel_hlcdc_crtc_create()
537 dc->crtc = &crtc->base; in atmel_hlcdc_crtc_create()
542 atmel_hlcdc_crtc_destroy(&crtc->base); in atmel_hlcdc_crtc_create()