Lines Matching refs:drm
42 struct drm_device *drm = arg; in hdlcd_irq() local
43 struct hdlcd_drm_private *hdlcd = drm->dev_private; in hdlcd_irq()
71 static void hdlcd_irq_preinstall(struct drm_device *drm) in hdlcd_irq_preinstall() argument
73 struct hdlcd_drm_private *hdlcd = drm->dev_private; in hdlcd_irq_preinstall()
79 static void hdlcd_irq_postinstall(struct drm_device *drm) in hdlcd_irq_postinstall() argument
82 struct hdlcd_drm_private *hdlcd = drm->dev_private; in hdlcd_irq_postinstall()
92 static int hdlcd_irq_install(struct drm_device *drm, int irq) in hdlcd_irq_install() argument
99 hdlcd_irq_preinstall(drm); in hdlcd_irq_install()
101 ret = request_irq(irq, hdlcd_irq, 0, drm->driver->name, drm); in hdlcd_irq_install()
105 hdlcd_irq_postinstall(drm); in hdlcd_irq_install()
110 static void hdlcd_irq_uninstall(struct drm_device *drm) in hdlcd_irq_uninstall() argument
112 struct hdlcd_drm_private *hdlcd = drm->dev_private; in hdlcd_irq_uninstall()
125 free_irq(hdlcd->irq, drm); in hdlcd_irq_uninstall()
128 static int hdlcd_load(struct drm_device *drm, unsigned long flags) in hdlcd_load() argument
130 struct hdlcd_drm_private *hdlcd = drm->dev_private; in hdlcd_load()
131 struct platform_device *pdev = to_platform_device(drm->dev); in hdlcd_load()
136 hdlcd->clk = devm_clk_get(drm->dev, "pxlclk"); in hdlcd_load()
148 hdlcd->mmio = devm_ioremap_resource(drm->dev, res); in hdlcd_load()
166 ret = of_reserved_mem_device_init(drm->dev); in hdlcd_load()
170 ret = dma_set_mask_and_coherent(drm->dev, DMA_BIT_MASK(32)); in hdlcd_load()
174 ret = hdlcd_setup_crtc(drm); in hdlcd_load()
185 ret = hdlcd_irq_install(drm, hdlcd->irq); in hdlcd_load()
196 of_reserved_mem_device_release(drm->dev); in hdlcd_load()
207 static void hdlcd_setup_mode_config(struct drm_device *drm) in hdlcd_setup_mode_config() argument
209 drm_mode_config_init(drm); in hdlcd_setup_mode_config()
210 drm->mode_config.min_width = 0; in hdlcd_setup_mode_config()
211 drm->mode_config.min_height = 0; in hdlcd_setup_mode_config()
212 drm->mode_config.max_width = HDLCD_MAX_XRES; in hdlcd_setup_mode_config()
213 drm->mode_config.max_height = HDLCD_MAX_YRES; in hdlcd_setup_mode_config()
214 drm->mode_config.funcs = &hdlcd_mode_config_funcs; in hdlcd_setup_mode_config()
221 struct drm_device *drm = node->minor->dev; in hdlcd_show_underrun_count() local
222 struct hdlcd_drm_private *hdlcd = drm->dev_private; in hdlcd_show_underrun_count()
234 struct drm_device *drm = node->minor->dev; in hdlcd_show_pxlclock() local
235 struct hdlcd_drm_private *hdlcd = drm->dev_private; in hdlcd_show_pxlclock()
275 struct drm_device *drm; in hdlcd_drm_bind() local
283 drm = drm_dev_alloc(&hdlcd_driver, dev); in hdlcd_drm_bind()
284 if (IS_ERR(drm)) in hdlcd_drm_bind()
285 return PTR_ERR(drm); in hdlcd_drm_bind()
287 drm->dev_private = hdlcd; in hdlcd_drm_bind()
288 dev_set_drvdata(dev, drm); in hdlcd_drm_bind()
290 hdlcd_setup_mode_config(drm); in hdlcd_drm_bind()
291 ret = hdlcd_load(drm, 0); in hdlcd_drm_bind()
298 ret = component_bind_all(dev, drm); in hdlcd_drm_bind()
310 ret = drm_vblank_init(drm, drm->mode_config.num_crtc); in hdlcd_drm_bind()
316 drm_mode_config_reset(drm); in hdlcd_drm_bind()
317 drm_kms_helper_poll_init(drm); in hdlcd_drm_bind()
319 ret = drm_dev_register(drm, 0); in hdlcd_drm_bind()
323 drm_fbdev_generic_setup(drm, 32); in hdlcd_drm_bind()
328 drm_kms_helper_poll_fini(drm); in hdlcd_drm_bind()
330 pm_runtime_disable(drm->dev); in hdlcd_drm_bind()
332 drm_atomic_helper_shutdown(drm); in hdlcd_drm_bind()
333 component_unbind_all(dev, drm); in hdlcd_drm_bind()
337 hdlcd_irq_uninstall(drm); in hdlcd_drm_bind()
338 of_reserved_mem_device_release(drm->dev); in hdlcd_drm_bind()
340 drm_mode_config_cleanup(drm); in hdlcd_drm_bind()
342 drm_dev_put(drm); in hdlcd_drm_bind()
349 struct drm_device *drm = dev_get_drvdata(dev); in hdlcd_drm_unbind() local
350 struct hdlcd_drm_private *hdlcd = drm->dev_private; in hdlcd_drm_unbind()
352 drm_dev_unregister(drm); in hdlcd_drm_unbind()
353 drm_kms_helper_poll_fini(drm); in hdlcd_drm_unbind()
354 component_unbind_all(dev, drm); in hdlcd_drm_unbind()
358 drm_atomic_helper_shutdown(drm); in hdlcd_drm_unbind()
359 hdlcd_irq_uninstall(drm); in hdlcd_drm_unbind()
364 drm_mode_config_cleanup(drm); in hdlcd_drm_unbind()
365 drm->dev_private = NULL; in hdlcd_drm_unbind()
367 drm_dev_put(drm); in hdlcd_drm_unbind()
411 struct drm_device *drm = dev_get_drvdata(dev); in hdlcd_pm_suspend() local
413 return drm_mode_config_helper_suspend(drm); in hdlcd_pm_suspend()
418 struct drm_device *drm = dev_get_drvdata(dev); in hdlcd_pm_resume() local
420 drm_mode_config_helper_resume(drm); in hdlcd_pm_resume()