Lines Matching refs:fifo_state
280 struct vmw_fifo_state *fifo_state = dev_priv->fifo; in vmw_local_fifo_reserve() local
285 uint32_t reserveable = fifo_state->capabilities & SVGA_FIFO_CAP_RESERVE; in vmw_local_fifo_reserve()
288 mutex_lock(&fifo_state->fifo_mutex); in vmw_local_fifo_reserve()
296 BUG_ON(fifo_state->reserved_size != 0); in vmw_local_fifo_reserve()
297 BUG_ON(fifo_state->dynamic_buffer != NULL); in vmw_local_fifo_reserve()
299 fifo_state->reserved_size = bytes; in vmw_local_fifo_reserve()
333 fifo_state->using_bounce_buffer = false; in vmw_local_fifo_reserve()
347 fifo_state->using_bounce_buffer = true; in vmw_local_fifo_reserve()
348 if (bytes < fifo_state->static_buffer_size) in vmw_local_fifo_reserve()
349 return fifo_state->static_buffer; in vmw_local_fifo_reserve()
351 fifo_state->dynamic_buffer = vmalloc(bytes); in vmw_local_fifo_reserve()
352 if (!fifo_state->dynamic_buffer) in vmw_local_fifo_reserve()
354 return fifo_state->dynamic_buffer; in vmw_local_fifo_reserve()
359 fifo_state->reserved_size = 0; in vmw_local_fifo_reserve()
360 mutex_unlock(&fifo_state->fifo_mutex); in vmw_local_fifo_reserve()
385 static void vmw_fifo_res_copy(struct vmw_fifo_state *fifo_state, in vmw_fifo_res_copy() argument
393 uint32_t *buffer = (fifo_state->dynamic_buffer != NULL) ? in vmw_fifo_res_copy()
394 fifo_state->dynamic_buffer : fifo_state->static_buffer; in vmw_fifo_res_copy()
407 static void vmw_fifo_slow_copy(struct vmw_fifo_state *fifo_state, in vmw_fifo_slow_copy() argument
412 uint32_t *buffer = (fifo_state->dynamic_buffer != NULL) ? in vmw_fifo_slow_copy()
413 fifo_state->dynamic_buffer : fifo_state->static_buffer; in vmw_fifo_slow_copy()
429 struct vmw_fifo_state *fifo_state = dev_priv->fifo; in vmw_local_fifo_commit() local
433 bool reserveable = fifo_state->capabilities & SVGA_FIFO_CAP_RESERVE; in vmw_local_fifo_commit()
436 BUG_ON(bytes > fifo_state->reserved_size); in vmw_local_fifo_commit()
438 fifo_state->reserved_size = 0; in vmw_local_fifo_commit()
440 if (fifo_state->using_bounce_buffer) { in vmw_local_fifo_commit()
442 vmw_fifo_res_copy(fifo_state, dev_priv, in vmw_local_fifo_commit()
445 vmw_fifo_slow_copy(fifo_state, dev_priv, in vmw_local_fifo_commit()
448 if (fifo_state->dynamic_buffer) { in vmw_local_fifo_commit()
449 vfree(fifo_state->dynamic_buffer); in vmw_local_fifo_commit()
450 fifo_state->dynamic_buffer = NULL; in vmw_local_fifo_commit()
455 down_write(&fifo_state->rwsem); in vmw_local_fifo_commit()
456 if (fifo_state->using_bounce_buffer || reserveable) { in vmw_local_fifo_commit()
467 up_write(&fifo_state->rwsem); in vmw_local_fifo_commit()
469 mutex_unlock(&fifo_state->fifo_mutex); in vmw_local_fifo_commit()