Commit d39af942 authored by Colin Xu's avatar Colin Xu Committed by Zhenyu Wang

drm/i915/gvt: Enable synchronous flip on handling MI_DISPLAY_FLIP

According to Intel GFX PRM on 01.org, the MI_DISPLAY_FLIP command can
either request display plane flip synchronously or asynchronously.
In synchronous flip, flip will be hold until next vsync, which
is not implemented yet in GVT. In asynchronous flip, flip will happen
immediately, which is current implementation.

The patch enables the sync flip on handling MI_DISPLAY_FLIP,
and increment flip count correctly by only increment on primary plane.

v2:
Use bit operation definition for flip mode. (zhenyu)
Reviewed-by: default avatarZhenyu Wang <zhenyuw@linux.intel.com>
Signed-off-by: default avatarColin Xu <colin.xu@intel.com>
Signed-off-by: default avatarZhenyu Wang <zhenyuw@linux.intel.com>
parent aee183ba
...@@ -1321,8 +1321,14 @@ static int gen8_update_plane_mmio_from_mi_display_flip( ...@@ -1321,8 +1321,14 @@ static int gen8_update_plane_mmio_from_mi_display_flip(
info->tile_val << 10); info->tile_val << 10);
} }
vgpu_vreg_t(vgpu, PIPE_FRMCOUNT_G4X(info->pipe))++; if (info->plane == PLANE_PRIMARY)
intel_vgpu_trigger_virtual_event(vgpu, info->event); vgpu_vreg_t(vgpu, PIPE_FLIPCOUNT_G4X(info->pipe))++;
if (info->async_flip)
intel_vgpu_trigger_virtual_event(vgpu, info->event);
else
set_bit(info->event, vgpu->irq.flip_done_event[info->pipe]);
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment