Lines Matching refs:drm

41 	struct drm_device			*drm;  member
62 static void imx_drm_driver_lastclose(struct drm_device *drm) in imx_drm_driver_lastclose() argument
65 struct imx_drm_device *imxdrm = drm->dev_private; in imx_drm_driver_lastclose()
71 static int imx_drm_driver_unload(struct drm_device *drm) in imx_drm_driver_unload() argument
74 struct imx_drm_device *imxdrm = drm->dev_private; in imx_drm_driver_unload()
77 drm_kms_helper_poll_fini(drm); in imx_drm_driver_unload()
84 component_unbind_all(drm->dev, drm); in imx_drm_driver_unload()
86 drm_vblank_cleanup(drm); in imx_drm_driver_unload()
87 drm_mode_config_cleanup(drm); in imx_drm_driver_unload()
89 platform_set_drvdata(drm->platformdev, NULL); in imx_drm_driver_unload()
148 static int imx_drm_enable_vblank(struct drm_device *drm, unsigned int pipe) in imx_drm_enable_vblank() argument
150 struct imx_drm_device *imxdrm = drm->dev_private; in imx_drm_enable_vblank()
166 static void imx_drm_disable_vblank(struct drm_device *drm, unsigned int pipe) in imx_drm_disable_vblank() argument
168 struct imx_drm_device *imxdrm = drm->dev_private; in imx_drm_disable_vblank()
180 static void imx_drm_driver_preclose(struct drm_device *drm, in imx_drm_driver_preclose() argument
189 imx_drm_disable_vblank(drm, i); in imx_drm_driver_preclose()
216 static void imx_drm_output_poll_changed(struct drm_device *drm) in imx_drm_output_poll_changed() argument
219 struct imx_drm_device *imxdrm = drm->dev_private; in imx_drm_output_poll_changed()
234 static int imx_drm_driver_load(struct drm_device *drm, unsigned long flags) in imx_drm_driver_load() argument
240 imxdrm = devm_kzalloc(drm->dev, sizeof(*imxdrm), GFP_KERNEL); in imx_drm_driver_load()
244 imxdrm->drm = drm; in imx_drm_driver_load()
246 drm->dev_private = imxdrm; in imx_drm_driver_load()
257 drm->irq_enabled = true; in imx_drm_driver_load()
264 drm->mode_config.min_width = 64; in imx_drm_driver_load()
265 drm->mode_config.min_height = 64; in imx_drm_driver_load()
266 drm->mode_config.max_width = 4096; in imx_drm_driver_load()
267 drm->mode_config.max_height = 4096; in imx_drm_driver_load()
268 drm->mode_config.funcs = &imx_drm_mode_config_funcs; in imx_drm_driver_load()
270 drm_mode_config_init(drm); in imx_drm_driver_load()
272 ret = drm_vblank_init(drm, MAX_CRTC); in imx_drm_driver_load()
281 drm->vblank_disable_allowed = true; in imx_drm_driver_load()
283 platform_set_drvdata(drm->platformdev, drm); in imx_drm_driver_load()
286 ret = component_bind_all(drm->dev, drm); in imx_drm_driver_load()
295 list_for_each_entry(connector, &drm->mode_config.connector_list, head) { in imx_drm_driver_load()
298 dev_err(drm->dev, in imx_drm_driver_load()
313 dev_warn(drm->dev, "Invalid legacyfb_depth. Defaulting to 16bpp\n"); in imx_drm_driver_load()
316 imxdrm->fbhelper = drm_fbdev_cma_init(drm, legacyfb_depth, in imx_drm_driver_load()
317 drm->mode_config.num_crtc, MAX_CRTC); in imx_drm_driver_load()
325 drm_kms_helper_poll_init(drm); in imx_drm_driver_load()
330 component_unbind_all(drm->dev, drm); in imx_drm_driver_load()
332 drm_vblank_cleanup(drm); in imx_drm_driver_load()
334 drm_mode_config_cleanup(drm); in imx_drm_driver_load()
342 int imx_drm_add_crtc(struct drm_device *drm, struct drm_crtc *crtc, in imx_drm_add_crtc() argument
347 struct imx_drm_device *imxdrm = drm->dev_private; in imx_drm_add_crtc()
358 if (imxdrm->drm->open_count) in imx_drm_add_crtc()
382 drm_crtc_init_with_planes(drm, crtc, primary_plane, NULL, in imx_drm_add_crtc()
411 int imx_drm_encoder_parse_of(struct drm_device *drm, in imx_drm_encoder_parse_of() argument
414 uint32_t crtc_mask = drm_of_find_possible_crtcs(drm, np); in imx_drm_encoder_parse_of()