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