Lines Matching refs:drm
45 static inline struct zynqmp_dpsub *to_zynqmp_dpsub(struct drm_device *drm) in to_zynqmp_dpsub() argument
47 return container_of(drm, struct zynqmp_dpsub_drm, dev)->dpsub; in to_zynqmp_dpsub()
153 for (i = 0; i < ARRAY_SIZE(dpsub->drm->planes); i++) { in zynqmp_dpsub_create_planes()
155 struct drm_plane *plane = &dpsub->drm->planes[i]; in zynqmp_dpsub_create_planes()
167 ret = drm_universal_plane_init(&dpsub->drm->dev, plane, 0, in zynqmp_dpsub_create_planes()
319 struct drm_plane *plane = &dpsub->drm->planes[ZYNQMP_DPSUB_LAYER_GFX]; in zynqmp_dpsub_create_crtc()
320 struct drm_crtc *crtc = &dpsub->drm->crtc; in zynqmp_dpsub_create_crtc()
323 ret = drm_crtc_init_with_planes(&dpsub->drm->dev, crtc, plane, in zynqmp_dpsub_create_crtc()
338 u32 possible_crtcs = drm_crtc_mask(&dpsub->drm->crtc); in zynqmp_dpsub_map_crtc_to_plane()
341 for (i = 0; i < ARRAY_SIZE(dpsub->drm->planes); i++) in zynqmp_dpsub_map_crtc_to_plane()
342 dpsub->drm->planes[i].possible_crtcs = possible_crtcs; in zynqmp_dpsub_map_crtc_to_plane()
354 drm_crtc_handle_vblank(&dpsub->drm->crtc); in zynqmp_dpsub_drm_handle_vblank()
362 struct drm_device *drm, in zynqmp_dpsub_dumb_create() argument
365 struct zynqmp_dpsub *dpsub = to_zynqmp_dpsub(drm); in zynqmp_dpsub_dumb_create()
371 return drm_gem_dma_dumb_create_internal(file_priv, drm, args); in zynqmp_dpsub_dumb_create()
375 zynqmp_dpsub_fb_create(struct drm_device *drm, struct drm_file *file_priv, in zynqmp_dpsub_fb_create() argument
379 struct zynqmp_dpsub *dpsub = to_zynqmp_dpsub(drm); in zynqmp_dpsub_fb_create()
387 return drm_gem_fb_create(drm, file_priv, info, &cmd); in zynqmp_dpsub_fb_create()
419 struct drm_encoder *encoder = &dpsub->drm->encoder; in zynqmp_dpsub_kms_init()
435 encoder->possible_crtcs |= drm_crtc_mask(&dpsub->drm->crtc); in zynqmp_dpsub_kms_init()
436 drm_simple_encoder_init(&dpsub->drm->dev, encoder, DRM_MODE_ENCODER_NONE); in zynqmp_dpsub_kms_init()
446 connector = drm_bridge_connector_init(&dpsub->drm->dev, encoder); in zynqmp_dpsub_kms_init()
466 static void zynqmp_dpsub_drm_release(struct drm_device *drm, void *res) in zynqmp_dpsub_drm_release() argument
476 struct drm_device *drm; in zynqmp_dpsub_drm_init() local
491 drm = &dpdrm->dev; in zynqmp_dpsub_drm_init()
493 ret = drmm_add_action(drm, zynqmp_dpsub_drm_release, dpdrm); in zynqmp_dpsub_drm_init()
497 dpsub->drm = dpdrm; in zynqmp_dpsub_drm_init()
500 ret = drmm_mode_config_init(drm); in zynqmp_dpsub_drm_init()
504 drm->mode_config.funcs = &zynqmp_dpsub_mode_config_funcs; in zynqmp_dpsub_drm_init()
505 drm->mode_config.min_width = 0; in zynqmp_dpsub_drm_init()
506 drm->mode_config.min_height = 0; in zynqmp_dpsub_drm_init()
507 drm->mode_config.max_width = ZYNQMP_DISP_MAX_WIDTH; in zynqmp_dpsub_drm_init()
508 drm->mode_config.max_height = ZYNQMP_DISP_MAX_HEIGHT; in zynqmp_dpsub_drm_init()
510 ret = drm_vblank_init(drm, 1); in zynqmp_dpsub_drm_init()
518 drm_kms_helper_poll_init(drm); in zynqmp_dpsub_drm_init()
521 drm_mode_config_reset(drm); in zynqmp_dpsub_drm_init()
523 ret = drm_dev_register(drm, 0); in zynqmp_dpsub_drm_init()
528 drm_client_setup_with_fourcc(drm, DRM_FORMAT_RGB888); in zynqmp_dpsub_drm_init()
533 drm_kms_helper_poll_fini(drm); in zynqmp_dpsub_drm_init()
539 struct drm_device *drm = &dpsub->drm->dev; in zynqmp_dpsub_drm_cleanup() local
541 drm_dev_unplug(drm); in zynqmp_dpsub_drm_cleanup()
542 drm_atomic_helper_shutdown(drm); in zynqmp_dpsub_drm_cleanup()
543 drm_encoder_cleanup(&dpsub->drm->encoder); in zynqmp_dpsub_drm_cleanup()
544 drm_kms_helper_poll_fini(drm); in zynqmp_dpsub_drm_cleanup()