Lines Matching full:logicvc
38 struct logicvc_drm *logicvc = logicvc_drm(drm_dev); in logicvc_drm_gem_dma_dumb_create() local
41 args->pitch = logicvc->config.row_stride * DIV_ROUND_UP(args->bpp, 8); in logicvc_drm_gem_dma_dumb_create()
51 .name = "logicvc-drm",
52 .desc = "Xylon LogiCVC DRM driver",
64 .name = "logicvc-drm",
69 struct logicvc_drm *logicvc = data; in logicvc_drm_irq_handler() local
74 regmap_read(logicvc->regmap, LOGICVC_INT_STAT_REG, &stat); in logicvc_drm_irq_handler()
77 regmap_write(logicvc->regmap, LOGICVC_INT_STAT_REG, stat); in logicvc_drm_irq_handler()
80 logicvc_crtc_vblank_handler(logicvc); in logicvc_drm_irq_handler()
87 static int logicvc_drm_config_parse(struct logicvc_drm *logicvc) in logicvc_drm_config_parse() argument
89 struct drm_device *drm_dev = &logicvc->drm_dev; in logicvc_drm_config_parse()
92 struct logicvc_drm_config *config = &logicvc->config; in logicvc_drm_config_parse()
145 static int logicvc_clocks_prepare(struct logicvc_drm *logicvc) in logicvc_clocks_prepare() argument
147 struct drm_device *drm_dev = &logicvc->drm_dev; in logicvc_clocks_prepare()
156 .clk = &logicvc->vclk, in logicvc_clocks_prepare()
161 .clk = &logicvc->vclk2, in logicvc_clocks_prepare()
166 .clk = &logicvc->lvdsclk, in logicvc_clocks_prepare()
171 .clk = &logicvc->lvdsclkn, in logicvc_clocks_prepare()
219 static int logicvc_clocks_unprepare(struct logicvc_drm *logicvc) in logicvc_clocks_unprepare() argument
222 &logicvc->vclk, in logicvc_clocks_unprepare()
223 &logicvc->vclk2, in logicvc_clocks_unprepare()
224 &logicvc->lvdsclk, in logicvc_clocks_unprepare()
225 &logicvc->lvdsclkn, in logicvc_clocks_unprepare()
256 logicvc_drm_caps_match(struct logicvc_drm *logicvc) in logicvc_drm_caps_match() argument
258 struct drm_device *drm_dev = &logicvc->drm_dev; in logicvc_drm_caps_match()
265 regmap_read(logicvc->regmap, LOGICVC_IP_VERSION_REG, &version); in logicvc_drm_caps_match()
287 drm_info(drm_dev, "LogiCVC version %d.%02d.%c\n", major, minor, level); in logicvc_drm_caps_match()
298 struct logicvc_drm *logicvc; in logicvc_drm_probe() local
356 logicvc = devm_drm_dev_alloc(dev, &logicvc_drm_driver, in logicvc_drm_probe()
358 if (IS_ERR(logicvc)) { in logicvc_drm_probe()
359 ret = PTR_ERR(logicvc); in logicvc_drm_probe()
363 platform_set_drvdata(pdev, logicvc); in logicvc_drm_probe()
364 drm_dev = &logicvc->drm_dev; in logicvc_drm_probe()
366 logicvc->regmap = regmap; in logicvc_drm_probe()
367 INIT_LIST_HEAD(&logicvc->layers_list); in logicvc_drm_probe()
369 caps = logicvc_drm_caps_match(logicvc); in logicvc_drm_probe()
375 logicvc->caps = caps; in logicvc_drm_probe()
378 logicvc->reserved_mem_base = reserved_mem->base; in logicvc_drm_probe()
380 ret = logicvc_clocks_prepare(logicvc); in logicvc_drm_probe()
387 dev_name(dev), logicvc); in logicvc_drm_probe()
393 ret = logicvc_drm_config_parse(logicvc); in logicvc_drm_probe()
405 ret = logicvc_layers_init(logicvc); in logicvc_drm_probe()
411 ret = logicvc_crtc_init(logicvc); in logicvc_drm_probe()
417 logicvc_layers_attach_crtc(logicvc); in logicvc_drm_probe()
419 ret = logicvc_interface_init(logicvc); in logicvc_drm_probe()
427 logicvc_interface_attach_crtc(logicvc); in logicvc_drm_probe()
429 ret = logicvc_mode_init(logicvc); in logicvc_drm_probe()
446 logicvc_mode_fini(logicvc); in logicvc_drm_probe()
449 logicvc_clocks_unprepare(logicvc); in logicvc_drm_probe()
460 struct logicvc_drm *logicvc = platform_get_drvdata(pdev); in logicvc_drm_remove() local
462 struct drm_device *drm_dev = &logicvc->drm_dev; in logicvc_drm_remove()
467 logicvc_mode_fini(logicvc); in logicvc_drm_remove()
469 logicvc_clocks_unprepare(logicvc); in logicvc_drm_remove()
477 { .compatible = "xylon,logicvc-3.02.a-display" },
478 { .compatible = "xylon,logicvc-4.01.a-display" },
487 .name = "logicvc-drm",
495 MODULE_DESCRIPTION("Xylon LogiCVC DRM driver");