Lines Matching refs:dev_priv
88 static int vmw_overlay_send_put(struct vmw_private *dev_priv, in vmw_overlay_send_put() argument
95 bool have_so = (dev_priv->active_display_unit != vmw_du_legacy); in vmw_overlay_send_put()
119 cmds = VMW_CMD_RESERVE(dev_priv, fifo_size); in vmw_overlay_send_put()
166 vmw_cmd_commit(dev_priv, fifo_size); in vmw_overlay_send_put()
177 static int vmw_overlay_send_stop(struct vmw_private *dev_priv, in vmw_overlay_send_stop() argument
189 cmds = VMW_CMD_RESERVE(dev_priv, sizeof(*cmds)); in vmw_overlay_send_stop()
193 ret = vmw_fallback_wait(dev_priv, false, true, 0, in vmw_overlay_send_stop()
208 vmw_cmd_commit(dev_priv, sizeof(*cmds)); in vmw_overlay_send_stop()
219 static int vmw_overlay_move_buffer(struct vmw_private *dev_priv, in vmw_overlay_move_buffer() argument
224 return vmw_bo_unpin(dev_priv, buf, inter); in vmw_overlay_move_buffer()
226 if (dev_priv->active_display_unit == vmw_du_legacy) in vmw_overlay_move_buffer()
227 return vmw_bo_pin_in_vram(dev_priv, buf, inter); in vmw_overlay_move_buffer()
229 return vmw_bo_pin_in_vram_or_gmr(dev_priv, buf, inter); in vmw_overlay_move_buffer()
244 static int vmw_overlay_stop(struct vmw_private *dev_priv, in vmw_overlay_stop() argument
248 struct vmw_overlay *overlay = dev_priv->overlay_priv; in vmw_overlay_stop()
258 ret = vmw_overlay_send_stop(dev_priv, stream_id, in vmw_overlay_stop()
264 ret = vmw_overlay_move_buffer(dev_priv, stream->buf, false, in vmw_overlay_stop()
291 static int vmw_overlay_update_stream(struct vmw_private *dev_priv, in vmw_overlay_update_stream() argument
296 struct vmw_overlay *overlay = dev_priv->overlay_priv; in vmw_overlay_update_stream()
307 ret = vmw_overlay_stop(dev_priv, arg->stream_id, in vmw_overlay_update_stream()
315 ret = vmw_overlay_send_put(dev_priv, buf, arg, interruptible); in vmw_overlay_update_stream()
327 ret = vmw_overlay_move_buffer(dev_priv, buf, true, interruptible); in vmw_overlay_update_stream()
331 ret = vmw_overlay_send_put(dev_priv, buf, arg, interruptible); in vmw_overlay_update_stream()
336 BUG_ON(vmw_overlay_move_buffer(dev_priv, buf, false, false) in vmw_overlay_update_stream()
357 int vmw_overlay_resume_all(struct vmw_private *dev_priv) in vmw_overlay_resume_all() argument
359 struct vmw_overlay *overlay = dev_priv->overlay_priv; in vmw_overlay_resume_all()
372 ret = vmw_overlay_update_stream(dev_priv, stream->buf, in vmw_overlay_resume_all()
391 int vmw_overlay_pause_all(struct vmw_private *dev_priv) in vmw_overlay_pause_all() argument
393 struct vmw_overlay *overlay = dev_priv->overlay_priv; in vmw_overlay_pause_all()
405 ret = vmw_overlay_stop(dev_priv, i, true, false); in vmw_overlay_pause_all()
415 static bool vmw_overlay_available(const struct vmw_private *dev_priv) in vmw_overlay_available() argument
417 return (dev_priv->overlay_priv != NULL && in vmw_overlay_available()
418 ((vmw_fifo_caps(dev_priv) & VMW_OVERLAY_CAP_MASK) == in vmw_overlay_available()
426 struct vmw_private *dev_priv = vmw_priv(dev); in vmw_overlay_ioctl() local
427 struct vmw_overlay *overlay = dev_priv->overlay_priv; in vmw_overlay_ioctl()
434 if (!vmw_overlay_available(dev_priv)) in vmw_overlay_ioctl()
437 ret = vmw_user_stream_lookup(dev_priv, tfile, &arg->stream_id, &res); in vmw_overlay_ioctl()
444 ret = vmw_overlay_stop(dev_priv, arg->stream_id, false, true); in vmw_overlay_ioctl()
452 ret = vmw_overlay_update_stream(dev_priv, buf, arg, true); in vmw_overlay_ioctl()
463 int vmw_overlay_num_overlays(struct vmw_private *dev_priv) in vmw_overlay_num_overlays() argument
465 if (!vmw_overlay_available(dev_priv)) in vmw_overlay_num_overlays()
471 int vmw_overlay_num_free_overlays(struct vmw_private *dev_priv) in vmw_overlay_num_free_overlays() argument
473 struct vmw_overlay *overlay = dev_priv->overlay_priv; in vmw_overlay_num_free_overlays()
476 if (!vmw_overlay_available(dev_priv)) in vmw_overlay_num_free_overlays()
490 int vmw_overlay_claim(struct vmw_private *dev_priv, uint32_t *out) in vmw_overlay_claim() argument
492 struct vmw_overlay *overlay = dev_priv->overlay_priv; in vmw_overlay_claim()
515 int vmw_overlay_unref(struct vmw_private *dev_priv, uint32_t stream_id) in vmw_overlay_unref() argument
517 struct vmw_overlay *overlay = dev_priv->overlay_priv; in vmw_overlay_unref()
527 vmw_overlay_stop(dev_priv, stream_id, false, false); in vmw_overlay_unref()
534 int vmw_overlay_init(struct vmw_private *dev_priv) in vmw_overlay_init() argument
539 if (dev_priv->overlay_priv) in vmw_overlay_init()
553 dev_priv->overlay_priv = overlay; in vmw_overlay_init()
558 int vmw_overlay_close(struct vmw_private *dev_priv) in vmw_overlay_close() argument
560 struct vmw_overlay *overlay = dev_priv->overlay_priv; in vmw_overlay_close()
570 vmw_overlay_stop(dev_priv, i, false, false); in vmw_overlay_close()
576 dev_priv->overlay_priv = NULL; in vmw_overlay_close()