Lines Matching defs:vc4
67 struct vc4_dev *vc4 = to_vc4_dev(dev);
71 ret = drm_modeset_lock(&vc4->ctm_state_lock, state->acquire_ctx);
111 struct vc4_dev *vc4 = to_vc4_dev(dev);
113 drm_atomic_private_obj_fini(&vc4->ctm_manager);
116 static int vc4_ctm_obj_init(struct vc4_dev *vc4)
120 drm_modeset_lock_init(&vc4->ctm_state_lock);
126 drm_atomic_private_obj_init(&vc4->base, &vc4->ctm_manager, &ctm_state->base,
129 return drmm_add_action_or_reset(&vc4->base, vc4_ctm_obj_fini, NULL);
152 vc4_ctm_commit(struct vc4_dev *vc4, struct drm_atomic_state *state)
154 struct vc4_ctm_state *ctm_state = to_vc4_ctm_state(vc4->ctm_manager.state);
188 struct vc4_dev *vc4 = to_vc4_dev(state->dev);
191 priv_state = drm_atomic_get_private_obj_state(state, &vc4->hvs_channels);
198 static void vc4_hvs_pv_muxing_commit(struct vc4_dev *vc4,
237 static void vc5_hvs_pv_muxing_commit(struct vc4_dev *vc4,
309 struct vc4_dev *vc4 = to_vc4_dev(dev);
310 struct vc4_hvs *hvs = vc4->hvs;
325 if (vc4->hvs->hvs5)
334 vc4_ctm_commit(vc4, state);
336 if (vc4->hvs->hvs5)
337 vc5_hvs_pv_muxing_commit(vc4, state);
339 vc4_hvs_pv_muxing_commit(vc4, state);
355 if (vc4->hvs->hvs5)
360 up(&vc4->async_modeset);
388 struct vc4_dev *vc4 = to_vc4_dev(dev);
392 ret = down_interruptible(&vc4->async_modeset);
398 up(&vc4->async_modeset);
406 up(&vc4->async_modeset);
423 ret = down_interruptible(&vc4->async_modeset);
429 up(&vc4->async_modeset);
437 up(&vc4->async_modeset);
521 struct vc4_dev *vc4 = to_vc4_dev(dev);
531 ctm_state = vc4_get_ctm_state(state, &vc4->ctm_manager);
543 ctm_state = vc4_get_ctm_state(state, &vc4->ctm_manager);
588 struct vc4_dev *vc4 = to_vc4_dev(state->dev);
594 if (!vc4->load_tracker_available)
598 &vc4->load_tracker);
621 if (!vc4->load_tracker_enabled)
669 struct vc4_dev *vc4 = to_vc4_dev(dev);
671 if (!vc4->load_tracker_available)
674 drm_atomic_private_obj_fini(&vc4->load_tracker);
677 static int vc4_load_tracker_obj_init(struct vc4_dev *vc4)
681 if (!vc4->load_tracker_available)
688 drm_atomic_private_obj_init(&vc4->base, &vc4->load_tracker,
692 return drmm_add_action_or_reset(&vc4->base, vc4_load_tracker_obj_fini, NULL);
727 struct vc4_dev *vc4 = to_vc4_dev(dev);
729 drm_atomic_private_obj_fini(&vc4->hvs_channels);
732 static int vc4_hvs_channels_obj_init(struct vc4_dev *vc4)
741 drm_atomic_private_obj_init(&vc4->base, &vc4->hvs_channels,
745 return drmm_add_action_or_reset(&vc4->base, vc4_hvs_channels_obj_fini, NULL);
878 struct vc4_dev *vc4 = to_vc4_dev(dev);
884 vc4->load_tracker_available = true;
889 vc4->load_tracker_enabled = true;
892 sema_init(&vc4->async_modeset, 1);
917 ret = vc4_ctm_obj_init(vc4);
921 ret = vc4_load_tracker_obj_init(vc4);
925 ret = vc4_hvs_channels_obj_init(vc4);