Lines Matching refs:vc4
50 struct vc4_dev *vc4 = to_vc4_dev(dev);
54 ret = drm_modeset_lock(&vc4->ctm_state_lock, state->acquire_ctx);
94 struct vc4_dev *vc4 = to_vc4_dev(dev);
96 drm_atomic_private_obj_fini(&vc4->ctm_manager);
99 static int vc4_ctm_obj_init(struct vc4_dev *vc4)
103 drm_modeset_lock_init(&vc4->ctm_state_lock);
109 drm_atomic_private_obj_init(&vc4->base, &vc4->ctm_manager, &ctm_state->base,
112 return drmm_add_action_or_reset(&vc4->base, vc4_ctm_obj_fini, NULL);
135 vc4_ctm_commit(struct vc4_dev *vc4, struct drm_atomic_state *state)
137 struct vc4_hvs *hvs = vc4->hvs;
138 struct vc4_ctm_state *ctm_state = to_vc4_ctm_state(vc4->ctm_manager.state);
172 struct vc4_dev *vc4 = to_vc4_dev(state->dev);
175 priv_state = drm_atomic_get_new_private_obj_state(state, &vc4->hvs_channels);
185 struct vc4_dev *vc4 = to_vc4_dev(state->dev);
188 priv_state = drm_atomic_get_old_private_obj_state(state, &vc4->hvs_channels);
198 struct vc4_dev *vc4 = to_vc4_dev(state->dev);
201 priv_state = drm_atomic_get_private_obj_state(state, &vc4->hvs_channels);
208 static void vc4_hvs_pv_muxing_commit(struct vc4_dev *vc4,
211 struct vc4_hvs *hvs = vc4->hvs;
249 static void vc5_hvs_pv_muxing_commit(struct vc4_dev *vc4,
252 struct vc4_hvs *hvs = vc4->hvs;
269 drm_WARN_ON(&vc4->base,
326 struct vc4_dev *vc4 = to_vc4_dev(dev);
327 struct vc4_hvs *hvs = vc4->hvs;
372 if (vc4->is_vc5) {
389 vc4_ctm_commit(vc4, state);
391 if (vc4->is_vc5)
392 vc5_hvs_pv_muxing_commit(vc4, state);
394 vc4_hvs_pv_muxing_commit(vc4, state);
409 if (vc4->is_vc5) {
461 struct vc4_dev *vc4 = to_vc4_dev(dev);
464 if (WARN_ON_ONCE(vc4->is_vc5))
507 struct vc4_dev *vc4 = to_vc4_dev(dev);
517 ctm_state = vc4_get_ctm_state(state, &vc4->ctm_manager);
529 ctm_state = vc4_get_ctm_state(state, &vc4->ctm_manager);
574 struct vc4_dev *vc4 = to_vc4_dev(state->dev);
581 &vc4->load_tracker);
604 if (!vc4->load_tracker_enabled)
652 struct vc4_dev *vc4 = to_vc4_dev(dev);
654 drm_atomic_private_obj_fini(&vc4->load_tracker);
657 static int vc4_load_tracker_obj_init(struct vc4_dev *vc4)
665 drm_atomic_private_obj_init(&vc4->base, &vc4->load_tracker,
669 return drmm_add_action_or_reset(&vc4->base, vc4_load_tracker_obj_fini, NULL);
735 struct vc4_dev *vc4 = to_vc4_dev(dev);
737 drm_atomic_private_obj_fini(&vc4->hvs_channels);
740 static int vc4_hvs_channels_obj_init(struct vc4_dev *vc4)
748 drm_atomic_private_obj_init(&vc4->base, &vc4->hvs_channels,
752 return drmm_add_action_or_reset(&vc4->base, vc4_hvs_channels_obj_fini, NULL);
923 struct vc4_dev *vc4 = to_vc4_dev(state->dev);
935 &vc4->load_tracker);
1035 struct vc4_dev *vc4 = to_vc4_dev(dev);
1043 if (!vc4->is_vc5) {
1047 vc4->load_tracker_enabled = true;
1059 if (vc4->is_vc5) {
1067 dev->mode_config.funcs = vc4->is_vc5 ? &vc5_mode_funcs : &vc4_mode_funcs;
1073 ret = vc4_ctm_obj_init(vc4);
1077 ret = vc4_load_tracker_obj_init(vc4);
1081 ret = vc4_hvs_channels_obj_init(vc4);