Lines Matching refs:dev
52 static struct drm_framebuffer *tilcdc_fb_create(struct drm_device *dev, in tilcdc_fb_create() argument
55 return drm_fb_cma_create(dev, file_priv, mode_cmd); in tilcdc_fb_create()
58 static void tilcdc_fb_output_poll_changed(struct drm_device *dev) in tilcdc_fb_output_poll_changed() argument
60 struct tilcdc_drm_private *priv = dev->dev_private; in tilcdc_fb_output_poll_changed()
69 static int modeset_init(struct drm_device *dev) in modeset_init() argument
71 struct tilcdc_drm_private *priv = dev->dev_private; in modeset_init()
74 drm_mode_config_init(dev); in modeset_init()
76 priv->crtc = tilcdc_crtc_create(dev); in modeset_init()
80 mod->funcs->modeset_init(mod, dev); in modeset_init()
85 dev_err(dev->dev, "no encoders/connectors found\n"); in modeset_init()
86 drm_mode_config_cleanup(dev); in modeset_init()
90 dev->mode_config.min_width = 0; in modeset_init()
91 dev->mode_config.min_height = 0; in modeset_init()
92 dev->mode_config.max_width = tilcdc_crtc_max_width(priv->crtc); in modeset_init()
93 dev->mode_config.max_height = 2048; in modeset_init()
94 dev->mode_config.funcs = &mode_config_funcs; in modeset_init()
120 static int tilcdc_unload(struct drm_device *dev) in tilcdc_unload() argument
122 struct tilcdc_drm_private *priv = dev->dev_private; in tilcdc_unload()
125 drm_kms_helper_poll_fini(dev); in tilcdc_unload()
126 drm_mode_config_cleanup(dev); in tilcdc_unload()
127 drm_vblank_cleanup(dev); in tilcdc_unload()
129 pm_runtime_get_sync(dev->dev); in tilcdc_unload()
130 drm_irq_uninstall(dev); in tilcdc_unload()
131 pm_runtime_put_sync(dev->dev); in tilcdc_unload()
147 dev->dev_private = NULL; in tilcdc_unload()
149 pm_runtime_disable(dev->dev); in tilcdc_unload()
156 static int tilcdc_load(struct drm_device *dev, unsigned long flags) in tilcdc_load() argument
158 struct platform_device *pdev = dev->platformdev; in tilcdc_load()
159 struct device_node *node = pdev->dev.of_node; in tilcdc_load()
168 dev_err(dev->dev, "failed to allocate private data\n"); in tilcdc_load()
172 dev->dev_private = priv; in tilcdc_load()
182 dev_err(dev->dev, "failed to get memory resource\n"); in tilcdc_load()
189 dev_err(dev->dev, "failed to ioremap\n"); in tilcdc_load()
194 priv->clk = clk_get(dev->dev, "fck"); in tilcdc_load()
196 dev_err(dev->dev, "failed to get functional clock\n"); in tilcdc_load()
201 priv->disp_clk = clk_get(dev->dev, "dpll_disp_ck"); in tilcdc_load()
203 dev_err(dev->dev, "failed to get display clock\n"); in tilcdc_load()
214 dev_err(dev->dev, "failed to register cpufreq notifier\n"); in tilcdc_load()
235 pm_runtime_enable(dev->dev); in tilcdc_load()
238 pm_runtime_get_sync(dev->dev); in tilcdc_load()
239 switch (tilcdc_read(dev, LCDC_PID_REG)) { in tilcdc_load()
248 dev_warn(dev->dev, "Unknown PID Reg value 0x%08x, " in tilcdc_load()
250 tilcdc_read(dev, LCDC_PID_REG)); in tilcdc_load()
255 pm_runtime_put_sync(dev->dev); in tilcdc_load()
257 ret = modeset_init(dev); in tilcdc_load()
259 dev_err(dev->dev, "failed to initialize mode setting\n"); in tilcdc_load()
263 ret = drm_vblank_init(dev, 1); in tilcdc_load()
265 dev_err(dev->dev, "failed to initialize vblank\n"); in tilcdc_load()
269 pm_runtime_get_sync(dev->dev); in tilcdc_load()
270 ret = drm_irq_install(dev, platform_get_irq(dev->platformdev, 0)); in tilcdc_load()
271 pm_runtime_put_sync(dev->dev); in tilcdc_load()
273 dev_err(dev->dev, "failed to install IRQ handler\n"); in tilcdc_load()
277 platform_set_drvdata(pdev, dev); in tilcdc_load()
287 priv->fbdev = drm_fbdev_cma_init(dev, bpp, in tilcdc_load()
288 dev->mode_config.num_crtc, in tilcdc_load()
289 dev->mode_config.num_connector); in tilcdc_load()
295 drm_kms_helper_poll_init(dev); in tilcdc_load()
300 pm_runtime_get_sync(dev->dev); in tilcdc_load()
301 drm_irq_uninstall(dev); in tilcdc_load()
302 pm_runtime_put_sync(dev->dev); in tilcdc_load()
305 drm_vblank_cleanup(dev); in tilcdc_load()
308 drm_mode_config_cleanup(dev); in tilcdc_load()
311 pm_runtime_disable(dev->dev); in tilcdc_load()
330 dev->dev_private = NULL; in tilcdc_load()
335 static void tilcdc_preclose(struct drm_device *dev, struct drm_file *file) in tilcdc_preclose() argument
337 struct tilcdc_drm_private *priv = dev->dev_private; in tilcdc_preclose()
342 static void tilcdc_lastclose(struct drm_device *dev) in tilcdc_lastclose() argument
344 struct tilcdc_drm_private *priv = dev->dev_private; in tilcdc_lastclose()
350 struct drm_device *dev = arg; in tilcdc_irq() local
351 struct tilcdc_drm_private *priv = dev->dev_private; in tilcdc_irq()
355 static void tilcdc_irq_preinstall(struct drm_device *dev) in tilcdc_irq_preinstall() argument
357 tilcdc_clear_irqstatus(dev, 0xffffffff); in tilcdc_irq_preinstall()
360 static int tilcdc_irq_postinstall(struct drm_device *dev) in tilcdc_irq_postinstall() argument
362 struct tilcdc_drm_private *priv = dev->dev_private; in tilcdc_irq_postinstall()
366 tilcdc_set(dev, LCDC_RASTER_CTRL_REG, LCDC_V1_UNDERFLOW_INT_ENA); in tilcdc_irq_postinstall()
368 tilcdc_set(dev, LCDC_INT_ENABLE_SET_REG, LCDC_V2_UNDERFLOW_INT_ENA); in tilcdc_irq_postinstall()
373 static void tilcdc_irq_uninstall(struct drm_device *dev) in tilcdc_irq_uninstall() argument
375 struct tilcdc_drm_private *priv = dev->dev_private; in tilcdc_irq_uninstall()
379 tilcdc_clear(dev, LCDC_RASTER_CTRL_REG, in tilcdc_irq_uninstall()
381 tilcdc_clear(dev, LCDC_DMA_CTRL_REG, LCDC_V1_END_OF_FRAME_INT_ENA); in tilcdc_irq_uninstall()
383 tilcdc_clear(dev, LCDC_INT_ENABLE_SET_REG, in tilcdc_irq_uninstall()
391 static void enable_vblank(struct drm_device *dev, bool enable) in enable_vblank() argument
393 struct tilcdc_drm_private *priv = dev->dev_private; in enable_vblank()
406 tilcdc_set(dev, reg, mask); in enable_vblank()
408 tilcdc_clear(dev, reg, mask); in enable_vblank()
411 static int tilcdc_enable_vblank(struct drm_device *dev, int crtc) in tilcdc_enable_vblank() argument
413 enable_vblank(dev, true); in tilcdc_enable_vblank()
417 static void tilcdc_disable_vblank(struct drm_device *dev, int crtc) in tilcdc_disable_vblank() argument
419 enable_vblank(dev, false); in tilcdc_disable_vblank()
459 struct drm_device *dev = node->minor->dev; in tilcdc_regs_show() local
460 struct tilcdc_drm_private *priv = dev->dev_private; in tilcdc_regs_show()
463 pm_runtime_get_sync(dev->dev); in tilcdc_regs_show()
470 tilcdc_read(dev, registers[i].reg)); in tilcdc_regs_show()
472 pm_runtime_put_sync(dev->dev); in tilcdc_regs_show()
480 struct drm_device *dev = node->minor->dev; in tilcdc_mm_show() local
481 return drm_mm_dump_table(m, &dev->vma_offset_manager->vm_addr_space_mm); in tilcdc_mm_show()
492 struct drm_device *dev = minor->dev; in tilcdc_debugfs_init() local
505 dev_err(dev->dev, "could not install tilcdc_debugfs_list\n"); in tilcdc_debugfs_init()
574 static int tilcdc_pm_suspend(struct device *dev) in tilcdc_pm_suspend() argument
576 struct drm_device *ddev = dev_get_drvdata(dev); in tilcdc_pm_suspend()
590 static int tilcdc_pm_resume(struct device *dev) in tilcdc_pm_resume() argument
592 struct drm_device *ddev = dev_get_drvdata(dev); in tilcdc_pm_resume()
618 if (!pdev->dev.of_node) { in tilcdc_pdev_probe()
619 dev_err(&pdev->dev, "device-tree data is missing\n"); in tilcdc_pdev_probe()