Lines Matching defs:drm

16 #include <drm/drm_atomic_helper.h>
17 #include <drm/drm_drv.h>
18 #include <drm/drm_fbdev_dma.h>
19 #include <drm/drm_gem_dma_helper.h>
20 #include <drm/drm_gem_framebuffer_helper.h>
21 #include <drm/drm_module.h>
22 #include <drm/drm_probe_helper.h>
23 #include <drm/drm_vblank.h>
35 drm_err(&kmb->drm, "Failed to enable LCD clock: %d\n", ret);
49 drm_err(&kmb->drm, "clk_get() failed clk_lcd\n");
55 drm_err(&kmb->drm, "clk_get() failed clk_pll0 ");
59 drm_info(&kmb->drm, "system clk = %d Mhz", kmb->sys_clk_mhz);
66 drm_err(&kmb->drm, "failed to set to clk_lcd to %d\n",
70 drm_dbg(&kmb->drm, "clk_lcd = %ld\n", clk_get_rate(kmb->kmb_clk.clk_lcd));
78 drm_err(&kmb->drm, "failed to get msscam syscon");
93 static void __iomem *kmb_map_mmio(struct drm_device *drm,
102 drm_err(drm, "failed to get resource for %s", name);
105 mem = devm_ioremap_resource(drm->dev, res);
107 drm_err(drm, "failed to ioremap %s registers", name);
111 static int kmb_hw_init(struct drm_device *drm, unsigned long flags)
113 struct kmb_drm_private *kmb = to_kmb(drm);
114 struct platform_device *pdev = to_platform_device(drm->dev);
119 kmb->lcd_mmio = kmb_map_mmio(drm, pdev, "lcd");
121 drm_err(&kmb->drm, "failed to map LCD registers\n");
142 drm_err(&kmb->drm, "irq_lcd not found");
147 ret = of_reserved_mem_device_init(drm->dev);
158 of_reserved_mem_device_release(drm->dev);
169 static int kmb_setup_mode_config(struct drm_device *drm)
172 struct kmb_drm_private *kmb = to_kmb(drm);
174 ret = drmm_mode_config_init(drm);
177 drm->mode_config.min_width = KMB_FB_MIN_WIDTH;
178 drm->mode_config.min_height = KMB_FB_MIN_HEIGHT;
179 drm->mode_config.max_width = KMB_FB_MAX_WIDTH;
180 drm->mode_config.max_height = KMB_FB_MAX_HEIGHT;
181 drm->mode_config.preferred_depth = 24;
182 drm->mode_config.funcs = &kmb_mode_config_funcs;
184 ret = kmb_setup_crtc(drm);
186 drm_err(drm, "failed to create crtc\n");
189 ret = kmb_dsi_encoder_init(drm, kmb->kmb_dsi);
191 kmb->crtc.port = of_graph_get_port_by_id(drm->dev->of_node, 0);
192 ret = drm_vblank_init(drm, drm->mode_config.num_crtc);
194 drm_err(drm, "failed to initialize vblank\n");
195 pm_runtime_disable(drm->dev);
199 drm_mode_config_reset(drm);
311 drm_info(&kmb->drm,
331 drm_dbg(&kmb->drm,
334 drm_dbg(&kmb->drm,
337 drm_dbg(&kmb->drm,
345 drm_info(&kmb->drm,
365 drm_dbg(&kmb->drm,
368 drm_dbg(&kmb->drm,
371 drm_dbg(&kmb->drm,
376 drm_dbg(&kmb->drm,
379 drm_dbg(&kmb->drm,
384 drm_dbg(&kmb->drm,
387 drm_dbg(&kmb->drm,
412 static void kmb_irq_reset(struct drm_device *drm)
414 kmb_write_lcd(to_kmb(drm), LCD_INT_CLEAR, 0xFFFF);
415 kmb_write_lcd(to_kmb(drm), LCD_INT_ENABLE, 0);
418 static int kmb_irq_install(struct drm_device *drm, unsigned int irq)
423 kmb_irq_reset(drm);
425 return request_irq(irq, kmb_isr, 0, drm->driver->name, drm);
428 static void kmb_irq_uninstall(struct drm_device *drm)
430 struct kmb_drm_private *kmb = to_kmb(drm);
432 kmb_irq_reset(drm);
433 free_irq(kmb->irq_lcd, drm);
444 .name = "kmb-drm",
454 struct drm_device *drm = dev_get_drvdata(dev);
455 struct kmb_drm_private *kmb = to_kmb(drm);
457 drm_dev_unregister(drm);
458 drm_kms_helper_poll_fini(drm);
461 pm_runtime_get_sync(drm->dev);
462 kmb_irq_uninstall(drm);
463 pm_runtime_put_sync(drm->dev);
464 pm_runtime_disable(drm->dev);
466 of_reserved_mem_device_release(drm->dev);
475 drm_atomic_helper_shutdown(drm);
527 struct kmb_drm_private, drm);
531 dev_set_drvdata(dev, &kmb->drm);
536 drm_err(&kmb->drm, "failed to initialize DSI\n");
543 ret = kmb_hw_init(&kmb->drm, 0);
547 ret = kmb_setup_mode_config(&kmb->drm);
551 ret = kmb_irq_install(&kmb->drm, kmb->irq_lcd);
553 drm_err(&kmb->drm, "failed to install IRQ handler\n");
557 drm_kms_helper_poll_init(&kmb->drm);
560 ret = drm_dev_register(&kmb->drm, 0);
564 drm_fbdev_dma_setup(&kmb->drm, 0);
569 drm_kms_helper_poll_fini(&kmb->drm);
571 pm_runtime_disable(kmb->drm.dev);
574 drm_mode_config_cleanup(&kmb->drm);
591 struct drm_device *drm = dev_get_drvdata(dev);
592 struct kmb_drm_private *kmb = to_kmb(drm);
594 drm_kms_helper_poll_disable(drm);
596 kmb->state = drm_atomic_helper_suspend(drm);
598 drm_kms_helper_poll_enable(drm);
607 struct drm_device *drm = dev_get_drvdata(dev);
608 struct kmb_drm_private *kmb = drm ? to_kmb(drm) : NULL;
613 drm_atomic_helper_resume(drm, kmb->state);
614 drm_kms_helper_poll_enable(drm);
625 .name = "kmb-drm",