Lines Matching full:vc4
7 * DOC: VC4 KMS
74 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_get_ctm_state() local
78 ret = drm_modeset_lock(&vc4->ctm_state_lock, state->acquire_ctx); in vc4_get_ctm_state()
118 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_ctm_obj_fini() local
120 drm_atomic_private_obj_fini(&vc4->ctm_manager); in vc4_ctm_obj_fini()
123 static int vc4_ctm_obj_init(struct vc4_dev *vc4) in vc4_ctm_obj_init() argument
127 drm_modeset_lock_init(&vc4->ctm_state_lock); in vc4_ctm_obj_init()
133 drm_atomic_private_obj_init(&vc4->base, &vc4->ctm_manager, &ctm_state->base, in vc4_ctm_obj_init()
136 return drmm_add_action_or_reset(&vc4->base, vc4_ctm_obj_fini, NULL); in vc4_ctm_obj_init()
159 vc4_ctm_commit(struct vc4_dev *vc4, struct drm_atomic_state *state) in vc4_ctm_commit() argument
161 struct vc4_hvs *hvs = vc4->hvs; in vc4_ctm_commit()
162 struct vc4_ctm_state *ctm_state = to_vc4_ctm_state(vc4->ctm_manager.state); in vc4_ctm_commit()
196 struct vc4_dev *vc4 = to_vc4_dev(state->dev); in vc4_hvs_get_new_global_state() local
199 priv_state = drm_atomic_get_new_private_obj_state(state, &vc4->hvs_channels); in vc4_hvs_get_new_global_state()
209 struct vc4_dev *vc4 = to_vc4_dev(state->dev); in vc4_hvs_get_old_global_state() local
212 priv_state = drm_atomic_get_old_private_obj_state(state, &vc4->hvs_channels); in vc4_hvs_get_old_global_state()
222 struct vc4_dev *vc4 = to_vc4_dev(state->dev); in vc4_hvs_get_global_state() local
225 priv_state = drm_atomic_get_private_obj_state(state, &vc4->hvs_channels); in vc4_hvs_get_global_state()
232 static void vc4_hvs_pv_muxing_commit(struct vc4_dev *vc4, in vc4_hvs_pv_muxing_commit() argument
235 struct vc4_hvs *hvs = vc4->hvs; in vc4_hvs_pv_muxing_commit()
273 static void vc5_hvs_pv_muxing_commit(struct vc4_dev *vc4, in vc5_hvs_pv_muxing_commit() argument
276 struct vc4_hvs *hvs = vc4->hvs; in vc5_hvs_pv_muxing_commit()
293 drm_WARN_ON(&vc4->base, in vc5_hvs_pv_muxing_commit()
350 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_atomic_commit_tail() local
351 struct vc4_hvs *hvs = vc4->hvs; in vc4_atomic_commit_tail()
396 if (vc4->is_vc5) { in vc4_atomic_commit_tail()
413 vc4_ctm_commit(vc4, state); in vc4_atomic_commit_tail()
415 if (vc4->is_vc5) in vc4_atomic_commit_tail()
416 vc5_hvs_pv_muxing_commit(vc4, state); in vc4_atomic_commit_tail()
418 vc4_hvs_pv_muxing_commit(vc4, state); in vc4_atomic_commit_tail()
433 if (vc4->is_vc5) { in vc4_atomic_commit_tail()
482 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_fb_create() local
485 if (WARN_ON_ONCE(vc4->is_vc5)) in vc4_fb_create()
528 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_ctm_atomic_check() local
538 ctm_state = vc4_get_ctm_state(state, &vc4->ctm_manager); in vc4_ctm_atomic_check()
550 ctm_state = vc4_get_ctm_state(state, &vc4->ctm_manager); in vc4_ctm_atomic_check()
595 struct vc4_dev *vc4 = to_vc4_dev(state->dev); in vc4_load_tracker_atomic_check() local
602 &vc4->load_tracker); in vc4_load_tracker_atomic_check()
625 if (!vc4->load_tracker_enabled) in vc4_load_tracker_atomic_check()
673 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_load_tracker_obj_fini() local
675 drm_atomic_private_obj_fini(&vc4->load_tracker); in vc4_load_tracker_obj_fini()
678 static int vc4_load_tracker_obj_init(struct vc4_dev *vc4) in vc4_load_tracker_obj_init() argument
686 drm_atomic_private_obj_init(&vc4->base, &vc4->load_tracker, in vc4_load_tracker_obj_init()
690 return drmm_add_action_or_reset(&vc4->base, vc4_load_tracker_obj_fini, NULL); in vc4_load_tracker_obj_init()
756 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_hvs_channels_obj_fini() local
758 drm_atomic_private_obj_fini(&vc4->hvs_channels); in vc4_hvs_channels_obj_fini()
761 static int vc4_hvs_channels_obj_init(struct vc4_dev *vc4) in vc4_hvs_channels_obj_init() argument
769 drm_atomic_private_obj_init(&vc4->base, &vc4->hvs_channels, in vc4_hvs_channels_obj_init()
773 return drmm_add_action_or_reset(&vc4->base, vc4_hvs_channels_obj_fini, NULL); in vc4_hvs_channels_obj_init()
902 struct vc4_dev *vc4 = to_vc4_dev(state->dev); in vc4_core_clock_atomic_check() local
914 &vc4->load_tracker); in vc4_core_clock_atomic_check()
1014 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_kms_load() local
1022 if (!vc4->is_vc5) { in vc4_kms_load()
1026 vc4->load_tracker_enabled = true; in vc4_kms_load()
1038 if (vc4->is_vc5) { in vc4_kms_load()
1046 dev->mode_config.funcs = vc4->is_vc5 ? &vc5_mode_funcs : &vc4_mode_funcs; in vc4_kms_load()
1051 ret = vc4_ctm_obj_init(vc4); in vc4_kms_load()
1055 ret = vc4_load_tracker_obj_init(vc4); in vc4_kms_load()
1059 ret = vc4_hvs_channels_obj_init(vc4); in vc4_kms_load()