Lines Matching refs:mixer_ctx

784 static int mixer_resources_init(struct mixer_context *mixer_ctx)  in mixer_resources_init()  argument
786 struct device *dev = &mixer_ctx->pdev->dev; in mixer_resources_init()
787 struct mixer_resources *mixer_res = &mixer_ctx->mixer_res; in mixer_resources_init()
810 res = platform_get_resource(mixer_ctx->pdev, IORESOURCE_MEM, 0); in mixer_resources_init()
823 res = platform_get_resource(mixer_ctx->pdev, IORESOURCE_IRQ, 0); in mixer_resources_init()
830 0, "drm_mixer", mixer_ctx); in mixer_resources_init()
840 static int vp_resources_init(struct mixer_context *mixer_ctx) in vp_resources_init() argument
842 struct device *dev = &mixer_ctx->pdev->dev; in vp_resources_init()
843 struct mixer_resources *mixer_res = &mixer_ctx->mixer_res; in vp_resources_init()
852 if (mixer_ctx->has_sclk) { in vp_resources_init()
869 res = platform_get_resource(mixer_ctx->pdev, IORESOURCE_MEM, 1); in vp_resources_init()
885 static int mixer_initialize(struct mixer_context *mixer_ctx, in mixer_initialize() argument
892 mixer_ctx->drm_dev = drm_dev; in mixer_initialize()
893 mixer_ctx->pipe = priv->pipe++; in mixer_initialize()
896 ret = mixer_resources_init(mixer_ctx); in mixer_initialize()
902 if (mixer_ctx->vp_enabled) { in mixer_initialize()
904 ret = vp_resources_init(mixer_ctx); in mixer_initialize()
911 ret = drm_iommu_attach_device(drm_dev, mixer_ctx->dev); in mixer_initialize()
918 static void mixer_ctx_remove(struct mixer_context *mixer_ctx) in mixer_ctx_remove() argument
920 drm_iommu_detach_device(mixer_ctx->drm_dev, mixer_ctx->dev); in mixer_ctx_remove()
925 struct mixer_context *mixer_ctx = crtc->ctx; in mixer_enable_vblank() local
926 struct mixer_resources *res = &mixer_ctx->mixer_res; in mixer_enable_vblank()
928 __set_bit(MXR_BIT_VSYNC, &mixer_ctx->flags); in mixer_enable_vblank()
929 if (!test_bit(MXR_BIT_POWERED, &mixer_ctx->flags)) in mixer_enable_vblank()
941 struct mixer_context *mixer_ctx = crtc->ctx; in mixer_disable_vblank() local
942 struct mixer_resources *res = &mixer_ctx->mixer_res; in mixer_disable_vblank()
944 __clear_bit(MXR_BIT_VSYNC, &mixer_ctx->flags); in mixer_disable_vblank()
946 if (!test_bit(MXR_BIT_POWERED, &mixer_ctx->flags)) in mixer_disable_vblank()
957 struct mixer_context *mixer_ctx = crtc->ctx; in mixer_update_plane() local
961 if (!test_bit(MXR_BIT_POWERED, &mixer_ctx->flags)) in mixer_update_plane()
964 if (plane->zpos > 1 && mixer_ctx->vp_enabled) in mixer_update_plane()
965 vp_video_buffer(mixer_ctx, plane); in mixer_update_plane()
967 mixer_graph_buffer(mixer_ctx, plane); in mixer_update_plane()
973 struct mixer_context *mixer_ctx = crtc->ctx; in mixer_disable_plane() local
974 struct mixer_resources *res = &mixer_ctx->mixer_res; in mixer_disable_plane()
979 if (!test_bit(MXR_BIT_POWERED, &mixer_ctx->flags)) in mixer_disable_plane()
983 mixer_vsync_set_update(mixer_ctx, false); in mixer_disable_plane()
985 mixer_cfg_layer(mixer_ctx, plane->zpos, false); in mixer_disable_plane()
987 mixer_vsync_set_update(mixer_ctx, true); in mixer_disable_plane()
993 struct mixer_context *mixer_ctx = crtc->ctx; in mixer_wait_for_vblank() local
996 if (!test_bit(MXR_BIT_POWERED, &mixer_ctx->flags)) in mixer_wait_for_vblank()
999 err = drm_vblank_get(mixer_ctx->drm_dev, mixer_ctx->pipe); in mixer_wait_for_vblank()
1005 atomic_set(&mixer_ctx->wait_vsync_event, 1); in mixer_wait_for_vblank()
1011 if (!wait_event_timeout(mixer_ctx->wait_vsync_queue, in mixer_wait_for_vblank()
1012 !atomic_read(&mixer_ctx->wait_vsync_event), in mixer_wait_for_vblank()
1016 drm_vblank_put(mixer_ctx->drm_dev, mixer_ctx->pipe); in mixer_wait_for_vblank()