Lines Matching refs:drm
166 static int mtk_drm_kms_init(struct drm_device *drm) in mtk_drm_kms_init() argument
168 struct mtk_drm_private *private = drm->dev_private; in mtk_drm_kms_init()
179 dev_err(drm->dev, "Waiting for disp-mutex device %pOF\n", in mtk_drm_kms_init()
186 ret = drmm_mode_config_init(drm); in mtk_drm_kms_init()
190 drm->mode_config.min_width = 64; in mtk_drm_kms_init()
191 drm->mode_config.min_height = 64; in mtk_drm_kms_init()
198 drm->mode_config.max_width = 4096; in mtk_drm_kms_init()
199 drm->mode_config.max_height = 4096; in mtk_drm_kms_init()
200 drm->mode_config.funcs = &mtk_drm_mode_config_funcs; in mtk_drm_kms_init()
201 drm->mode_config.helper_private = &mtk_drm_mode_config_helpers; in mtk_drm_kms_init()
203 ret = component_bind_all(drm->dev, drm); in mtk_drm_kms_init()
212 ret = mtk_drm_crtc_create(drm, private->data->main_path, in mtk_drm_kms_init()
217 ret = mtk_drm_crtc_create(drm, private->data->ext_path, in mtk_drm_kms_init()
222 ret = mtk_drm_crtc_create(drm, private->data->third_path, in mtk_drm_kms_init()
233 dev_err(drm->dev, "Need at least one OVL device\n"); in mtk_drm_kms_init()
247 devm_kzalloc(drm->dev, sizeof(*dma_dev->dma_parms), in mtk_drm_kms_init()
266 drm->irq_enabled = true; in mtk_drm_kms_init()
267 ret = drm_vblank_init(drm, MAX_CRTC); in mtk_drm_kms_init()
271 drm_kms_helper_poll_init(drm); in mtk_drm_kms_init()
272 drm_mode_config_reset(drm); in mtk_drm_kms_init()
282 component_unbind_all(drm->dev, drm); in mtk_drm_kms_init()
288 static void mtk_drm_kms_deinit(struct drm_device *drm) in mtk_drm_kms_deinit() argument
290 struct mtk_drm_private *private = drm->dev_private; in mtk_drm_kms_deinit()
292 drm_kms_helper_poll_fini(drm); in mtk_drm_kms_deinit()
293 drm_atomic_helper_shutdown(drm); in mtk_drm_kms_deinit()
298 component_unbind_all(drm->dev, drm); in mtk_drm_kms_deinit()
356 struct drm_device *drm; in mtk_drm_bind() local
359 drm = drm_dev_alloc(&mtk_drm_driver, dev); in mtk_drm_bind()
360 if (IS_ERR(drm)) in mtk_drm_bind()
361 return PTR_ERR(drm); in mtk_drm_bind()
363 drm->dev_private = private; in mtk_drm_bind()
364 private->drm = drm; in mtk_drm_bind()
366 ret = mtk_drm_kms_init(drm); in mtk_drm_bind()
370 ret = drm_dev_register(drm, 0); in mtk_drm_bind()
374 drm_fbdev_generic_setup(drm, 32); in mtk_drm_bind()
379 mtk_drm_kms_deinit(drm); in mtk_drm_bind()
381 drm_dev_put(drm); in mtk_drm_bind()
389 drm_dev_unregister(private->drm); in mtk_drm_unbind()
390 mtk_drm_kms_deinit(private->drm); in mtk_drm_unbind()
391 drm_dev_put(private->drm); in mtk_drm_unbind()
393 private->drm = NULL; in mtk_drm_unbind()
600 struct drm_device *drm = private->drm; in mtk_drm_sys_suspend() local
603 ret = drm_mode_config_helper_suspend(drm); in mtk_drm_sys_suspend()
611 struct drm_device *drm = private->drm; in mtk_drm_sys_resume() local
614 ret = drm_mode_config_helper_resume(drm); in mtk_drm_sys_resume()