Lines Matching refs:dc

346 int atmel_hlcdc_dc_mode_valid(struct atmel_hlcdc_dc *dc,  in atmel_hlcdc_dc_mode_valid()  argument
378 struct atmel_hlcdc_dc *dc = dev->dev_private; in atmel_hlcdc_dc_irq_handler() local
383 regmap_read(dc->hlcdc->regmap, ATMEL_HLCDC_IMR, &imr); in atmel_hlcdc_dc_irq_handler()
384 regmap_read(dc->hlcdc->regmap, ATMEL_HLCDC_ISR, &isr); in atmel_hlcdc_dc_irq_handler()
390 atmel_hlcdc_crtc_irq(dc->crtc); in atmel_hlcdc_dc_irq_handler()
393 struct atmel_hlcdc_layer *layer = dc->layers[i]; in atmel_hlcdc_dc_irq_handler()
412 struct atmel_hlcdc_dc *dc = dev->dev_private; in atmel_hlcdc_fb_output_poll_changed() local
414 if (dc->fbdev) { in atmel_hlcdc_fb_output_poll_changed()
415 drm_fbdev_cma_hotplug_event(dc->fbdev); in atmel_hlcdc_fb_output_poll_changed()
417 dc->fbdev = drm_fbdev_cma_init(dev, 24, in atmel_hlcdc_fb_output_poll_changed()
420 if (IS_ERR(dc->fbdev)) in atmel_hlcdc_fb_output_poll_changed()
421 dc->fbdev = NULL; in atmel_hlcdc_fb_output_poll_changed()
434 struct atmel_hlcdc_dc *dc = dev->dev_private; in atmel_hlcdc_dc_modeset_init() local
453 dc->planes = planes; in atmel_hlcdc_dc_modeset_init()
455 dc->layers[planes->primary->layer.desc->id] = in atmel_hlcdc_dc_modeset_init()
459 dc->layers[planes->cursor->layer.desc->id] = in atmel_hlcdc_dc_modeset_init()
463 dc->layers[planes->overlays[i]->layer.desc->id] = in atmel_hlcdc_dc_modeset_init()
472 dev->mode_config.min_width = dc->desc->min_width; in atmel_hlcdc_dc_modeset_init()
473 dev->mode_config.min_height = dc->desc->min_height; in atmel_hlcdc_dc_modeset_init()
474 dev->mode_config.max_width = dc->desc->max_width; in atmel_hlcdc_dc_modeset_init()
475 dev->mode_config.max_height = dc->desc->max_height; in atmel_hlcdc_dc_modeset_init()
485 struct atmel_hlcdc_dc *dc; in atmel_hlcdc_dc_load() local
499 dc = devm_kzalloc(dev->dev, sizeof(*dc), GFP_KERNEL); in atmel_hlcdc_dc_load()
500 if (!dc) in atmel_hlcdc_dc_load()
503 dc->wq = alloc_ordered_workqueue("atmel-hlcdc-dc", 0); in atmel_hlcdc_dc_load()
504 if (!dc->wq) in atmel_hlcdc_dc_load()
507 dc->desc = match->data; in atmel_hlcdc_dc_load()
508 dc->hlcdc = dev_get_drvdata(dev->dev->parent); in atmel_hlcdc_dc_load()
509 dev->dev_private = dc; in atmel_hlcdc_dc_load()
511 ret = clk_prepare_enable(dc->hlcdc->periph_clk); in atmel_hlcdc_dc_load()
534 ret = drm_irq_install(dev, dc->hlcdc->irq); in atmel_hlcdc_dc_load()
552 clk_disable_unprepare(dc->hlcdc->periph_clk); in atmel_hlcdc_dc_load()
555 destroy_workqueue(dc->wq); in atmel_hlcdc_dc_load()
562 struct atmel_hlcdc_dc *dc = dev->dev_private; in atmel_hlcdc_dc_unload() local
564 if (dc->fbdev) in atmel_hlcdc_dc_unload()
565 drm_fbdev_cma_fini(dc->fbdev); in atmel_hlcdc_dc_unload()
566 flush_workqueue(dc->wq); in atmel_hlcdc_dc_unload()
578 clk_disable_unprepare(dc->hlcdc->periph_clk); in atmel_hlcdc_dc_unload()
579 destroy_workqueue(dc->wq); in atmel_hlcdc_dc_unload()
628 struct atmel_hlcdc_dc *dc = dev->dev_private; in atmel_hlcdc_dc_lastclose() local
630 drm_fbdev_cma_restore_mode(dc->fbdev); in atmel_hlcdc_dc_lastclose()
635 struct atmel_hlcdc_dc *dc = dev->dev_private; in atmel_hlcdc_dc_irq_postinstall() local
641 if (dc->layers[i]) in atmel_hlcdc_dc_irq_postinstall()
645 regmap_write(dc->hlcdc->regmap, ATMEL_HLCDC_IER, cfg); in atmel_hlcdc_dc_irq_postinstall()
652 struct atmel_hlcdc_dc *dc = dev->dev_private; in atmel_hlcdc_dc_irq_uninstall() local
655 regmap_write(dc->hlcdc->regmap, ATMEL_HLCDC_IDR, 0xffffffff); in atmel_hlcdc_dc_irq_uninstall()
656 regmap_read(dc->hlcdc->regmap, ATMEL_HLCDC_ISR, &isr); in atmel_hlcdc_dc_irq_uninstall()
662 struct atmel_hlcdc_dc *dc = dev->dev_private; in atmel_hlcdc_dc_enable_vblank() local
665 regmap_write(dc->hlcdc->regmap, ATMEL_HLCDC_IER, ATMEL_HLCDC_SOF); in atmel_hlcdc_dc_enable_vblank()
673 struct atmel_hlcdc_dc *dc = dev->dev_private; in atmel_hlcdc_dc_disable_vblank() local
675 regmap_write(dc->hlcdc->regmap, ATMEL_HLCDC_IDR, ATMEL_HLCDC_SOF); in atmel_hlcdc_dc_disable_vblank()