Lines Matching refs:state

80 				  struct intel_global_state *state,
85 state->obj = obj;
87 kref_init(&state->ref);
89 obj->state = state;
101 drm_WARN_ON(&dev_priv->drm, kref_read(&obj->state->ref) != 1);
102 intel_atomic_global_state_put(obj->state);
127 static void assert_global_state_read_locked(struct intel_atomic_state *state)
129 struct drm_modeset_acquire_ctx *ctx = state->base.acquire_ctx;
130 struct drm_i915_private *dev_priv = to_i915(state->base.dev);
138 drm_WARN(&dev_priv->drm, 1, "Global state not read locked\n");
142 intel_atomic_get_global_obj_state(struct intel_atomic_state *state,
145 struct drm_i915_private *i915 = to_i915(state->base.dev);
151 for (i = 0; i < state->num_global_objs; i++)
152 if (obj == state->global_objs[i].ptr)
153 return state->global_objs[i].state;
155 assert_global_state_read_locked(state);
157 num_objs = state->num_global_objs + 1;
158 size = sizeof(*state->global_objs) * num_objs;
159 arr = krealloc(state->global_objs, size, GFP_KERNEL);
163 state->global_objs = arr;
164 index = state->num_global_objs;
165 memset(&state->global_objs[index], 0, sizeof(*state->global_objs));
178 state->global_objs[index].state = obj_state;
179 state->global_objs[index].old_state =
180 intel_atomic_global_state_get(obj->state);
181 state->global_objs[index].new_state = obj_state;
182 state->global_objs[index].ptr = obj;
183 obj_state->state = state;
185 state->num_global_objs = num_objs;
187 drm_dbg_atomic(&i915->drm, "Added new global object %p state %p to %p\n",
188 obj, obj_state, state);
194 intel_atomic_get_old_global_obj_state(struct intel_atomic_state *state,
199 for (i = 0; i < state->num_global_objs; i++)
200 if (obj == state->global_objs[i].ptr)
201 return state->global_objs[i].old_state;
207 intel_atomic_get_new_global_obj_state(struct intel_atomic_state *state,
212 for (i = 0; i < state->num_global_objs; i++)
213 if (obj == state->global_objs[i].ptr)
214 return state->global_objs[i].new_state;
219 void intel_atomic_swap_global_state(struct intel_atomic_state *state)
221 struct drm_i915_private *dev_priv = to_i915(state->base.dev);
226 for_each_oldnew_global_obj_in_state(state, obj, old_obj_state,
228 drm_WARN_ON(&dev_priv->drm, obj->state != old_obj_state);
231 * If the new state wasn't modified (and properly
239 old_obj_state->state = state;
240 new_obj_state->state = NULL;
242 state->global_objs[i].state = old_obj_state;
244 intel_atomic_global_state_put(obj->state);
245 obj->state = intel_atomic_global_state_get(new_obj_state);
249 void intel_atomic_clear_global_state(struct intel_atomic_state *state)
253 for (i = 0; i < state->num_global_objs; i++) {
254 intel_atomic_global_state_put(state->global_objs[i].old_state);
255 intel_atomic_global_state_put(state->global_objs[i].new_state);
257 state->global_objs[i].ptr = NULL;
258 state->global_objs[i].state = NULL;
259 state->global_objs[i].old_state = NULL;
260 state->global_objs[i].new_state = NULL;
262 state->num_global_objs = 0;
267 struct intel_atomic_state *state = obj_state->state;
268 struct drm_i915_private *dev_priv = to_i915(state->base.dev);
275 state->base.acquire_ctx);
299 intel_atomic_global_state_is_serialized(struct intel_atomic_state *state)
301 struct drm_i915_private *i915 = to_i915(state->base.dev);
305 if (!intel_atomic_get_new_crtc_state(state, crtc))
311 intel_atomic_global_state_setup_commit(struct intel_atomic_state *state)
318 for_each_oldnew_global_obj_in_state(state, obj, old_obj_state,
332 * We're going to swap to this state, so carry the
345 intel_atomic_global_state_wait_for_dependencies(struct intel_atomic_state *state)
347 struct drm_i915_private *i915 = to_i915(state->base.dev);
352 for_each_old_global_obj_in_state(state, obj, old_obj_state, i) {
361 drm_err(&i915->drm, "global state timed out\n");
370 intel_atomic_global_state_commit_done(struct intel_atomic_state *state)
376 for_each_new_global_obj_in_state(state, obj, new_obj_state, i) {