Lines Matching refs:dc
143 int atmel_hlcdc_dc_mode_valid(struct atmel_hlcdc_dc *dc, in atmel_hlcdc_dc_mode_valid() argument
175 struct atmel_hlcdc_dc *dc = dev->dev_private; in atmel_hlcdc_dc_irq_handler() local
180 regmap_read(dc->hlcdc->regmap, ATMEL_HLCDC_IMR, &imr); in atmel_hlcdc_dc_irq_handler()
181 regmap_read(dc->hlcdc->regmap, ATMEL_HLCDC_ISR, &isr); in atmel_hlcdc_dc_irq_handler()
187 atmel_hlcdc_crtc_irq(dc->crtc); in atmel_hlcdc_dc_irq_handler()
190 struct atmel_hlcdc_layer *layer = dc->layers[i]; in atmel_hlcdc_dc_irq_handler()
209 struct atmel_hlcdc_dc *dc = dev->dev_private; in atmel_hlcdc_fb_output_poll_changed() local
211 if (dc->fbdev) { in atmel_hlcdc_fb_output_poll_changed()
212 drm_fbdev_cma_hotplug_event(dc->fbdev); in atmel_hlcdc_fb_output_poll_changed()
214 dc->fbdev = drm_fbdev_cma_init(dev, 24, in atmel_hlcdc_fb_output_poll_changed()
217 if (IS_ERR(dc->fbdev)) in atmel_hlcdc_fb_output_poll_changed()
218 dc->fbdev = NULL; in atmel_hlcdc_fb_output_poll_changed()
231 struct atmel_hlcdc_dc *dc = dev->dev_private; in atmel_hlcdc_dc_modeset_init() local
250 dc->planes = planes; in atmel_hlcdc_dc_modeset_init()
252 dc->layers[planes->primary->layer.desc->id] = in atmel_hlcdc_dc_modeset_init()
256 dc->layers[planes->cursor->layer.desc->id] = in atmel_hlcdc_dc_modeset_init()
260 dc->layers[planes->overlays[i]->layer.desc->id] = in atmel_hlcdc_dc_modeset_init()
269 dev->mode_config.min_width = dc->desc->min_width; in atmel_hlcdc_dc_modeset_init()
270 dev->mode_config.min_height = dc->desc->min_height; in atmel_hlcdc_dc_modeset_init()
271 dev->mode_config.max_width = dc->desc->max_width; in atmel_hlcdc_dc_modeset_init()
272 dev->mode_config.max_height = dc->desc->max_height; in atmel_hlcdc_dc_modeset_init()
282 struct atmel_hlcdc_dc *dc; in atmel_hlcdc_dc_load() local
296 dc = devm_kzalloc(dev->dev, sizeof(*dc), GFP_KERNEL); in atmel_hlcdc_dc_load()
297 if (!dc) in atmel_hlcdc_dc_load()
300 dc->wq = alloc_ordered_workqueue("atmel-hlcdc-dc", 0); in atmel_hlcdc_dc_load()
301 if (!dc->wq) in atmel_hlcdc_dc_load()
304 dc->desc = match->data; in atmel_hlcdc_dc_load()
305 dc->hlcdc = dev_get_drvdata(dev->dev->parent); in atmel_hlcdc_dc_load()
306 dev->dev_private = dc; in atmel_hlcdc_dc_load()
308 ret = clk_prepare_enable(dc->hlcdc->periph_clk); in atmel_hlcdc_dc_load()
331 ret = drm_irq_install(dev, dc->hlcdc->irq); in atmel_hlcdc_dc_load()
349 clk_disable_unprepare(dc->hlcdc->periph_clk); in atmel_hlcdc_dc_load()
352 destroy_workqueue(dc->wq); in atmel_hlcdc_dc_load()
359 struct atmel_hlcdc_dc *dc = dev->dev_private; in atmel_hlcdc_dc_unload() local
361 if (dc->fbdev) in atmel_hlcdc_dc_unload()
362 drm_fbdev_cma_fini(dc->fbdev); in atmel_hlcdc_dc_unload()
363 flush_workqueue(dc->wq); in atmel_hlcdc_dc_unload()
375 clk_disable_unprepare(dc->hlcdc->periph_clk); in atmel_hlcdc_dc_unload()
376 destroy_workqueue(dc->wq); in atmel_hlcdc_dc_unload()
425 struct atmel_hlcdc_dc *dc = dev->dev_private; in atmel_hlcdc_dc_lastclose() local
427 drm_fbdev_cma_restore_mode(dc->fbdev); in atmel_hlcdc_dc_lastclose()
432 struct atmel_hlcdc_dc *dc = dev->dev_private; in atmel_hlcdc_dc_irq_postinstall() local
438 if (dc->layers[i]) in atmel_hlcdc_dc_irq_postinstall()
442 regmap_write(dc->hlcdc->regmap, ATMEL_HLCDC_IER, cfg); in atmel_hlcdc_dc_irq_postinstall()
449 struct atmel_hlcdc_dc *dc = dev->dev_private; in atmel_hlcdc_dc_irq_uninstall() local
452 regmap_write(dc->hlcdc->regmap, ATMEL_HLCDC_IDR, 0xffffffff); in atmel_hlcdc_dc_irq_uninstall()
453 regmap_read(dc->hlcdc->regmap, ATMEL_HLCDC_ISR, &isr); in atmel_hlcdc_dc_irq_uninstall()
458 struct atmel_hlcdc_dc *dc = dev->dev_private; in atmel_hlcdc_dc_enable_vblank() local
461 regmap_write(dc->hlcdc->regmap, ATMEL_HLCDC_IER, ATMEL_HLCDC_SOF); in atmel_hlcdc_dc_enable_vblank()
468 struct atmel_hlcdc_dc *dc = dev->dev_private; in atmel_hlcdc_dc_disable_vblank() local
470 regmap_write(dc->hlcdc->regmap, ATMEL_HLCDC_IDR, ATMEL_HLCDC_SOF); in atmel_hlcdc_dc_disable_vblank()