summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/i915/gvt/cmd_parser.c
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2017-02-18 06:35:25 +1000
committerDave Airlie <airlied@redhat.com>2017-02-18 06:35:25 +1000
commit601109c5c74a10e6b89465cb6aa31a40d1efc8e3 (patch)
treebcb9b4beff8005bdf0ef06b6f2de485968247d67 /drivers/gpu/drm/i915/gvt/cmd_parser.c
parent8fd4a62d875945fc8aacdb92fdc90161ec1d9bae (diff)
parent998d75730b40afc218c059d811869abe9676b305 (diff)
Merge tag 'drm-intel-next-fixes-2017-02-17' of git://anongit.freedesktop.org/git/drm-intel into drm-next
i915 and GVT fixes for v4.11 merge window * tag 'drm-intel-next-fixes-2017-02-17' of git://anongit.freedesktop.org/git/drm-intel: (32 commits) drm/i915: Fix not finding the VBT when it overlaps with OPREGION_ASLE_EXT drm/i915: Pass timeout==0 on to i915_gem_object_wait_fence() drm/i915/gvt: Disable access to stolen memory as a guest drm/i915: Avoid spurious WARNs about the wrong pipe in the PPS code drm/i915: Check for timeout completion when waiting for the rq to submitted drm/i915: A hotfix for making aliasing PPGTT work for GVT-g drm/i915: Restore context and pd for ringbuffer submission after reset drm/i915: Let execlist_update_context() cover !FULL_PPGTT mode. drm/i915/lspcon: Fix resume time initialization due to unasserted HPD drm/i915/gen9+: Enable hotplug detection early drm/i915: Reject set-tiling-ioctl with stride==0 and a tiling mode drm/i915: Recreate internal objects with single page segments if dmar fails drm/i915/gvt: return error code if dma map iova failed drm/i915/gvt: optimize the inhibit context mmio load drm/i915/gvt: add sprite plane flip done support. drm/i915/gvt: add missing display part reset for vGPU reset drm/i915/gvt: Fix shadow context descriptor drm/i915/gvt: Fix alignment for GTT allocation drm/i915/gvt: fix crash at function release_shadow_wa_ctx drm/i915/gvt: enable IOMMU for gvt ...
Diffstat (limited to 'drivers/gpu/drm/i915/gvt/cmd_parser.c')
-rw-r--r--drivers/gpu/drm/i915/gvt/cmd_parser.c20
1 files changed, 19 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/gvt/cmd_parser.c b/drivers/gpu/drm/i915/gvt/cmd_parser.c
index 9a4b23c3ee97..7bb11a555b76 100644
--- a/drivers/gpu/drm/i915/gvt/cmd_parser.c
+++ b/drivers/gpu/drm/i915/gvt/cmd_parser.c
@@ -1135,6 +1135,8 @@ static int skl_decode_mi_display_flip(struct parser_exec_state *s,
u32 dword2 = cmd_val(s, 2);
u32 plane = (dword0 & GENMASK(12, 8)) >> 8;
+ info->plane = PRIMARY_PLANE;
+
switch (plane) {
case MI_DISPLAY_FLIP_SKL_PLANE_1_A:
info->pipe = PIPE_A;
@@ -1148,12 +1150,28 @@ static int skl_decode_mi_display_flip(struct parser_exec_state *s,
info->pipe = PIPE_C;
info->event = PRIMARY_C_FLIP_DONE;
break;
+
+ case MI_DISPLAY_FLIP_SKL_PLANE_2_A:
+ info->pipe = PIPE_A;
+ info->event = SPRITE_A_FLIP_DONE;
+ info->plane = SPRITE_PLANE;
+ break;
+ case MI_DISPLAY_FLIP_SKL_PLANE_2_B:
+ info->pipe = PIPE_B;
+ info->event = SPRITE_B_FLIP_DONE;
+ info->plane = SPRITE_PLANE;
+ break;
+ case MI_DISPLAY_FLIP_SKL_PLANE_2_C:
+ info->pipe = PIPE_C;
+ info->event = SPRITE_C_FLIP_DONE;
+ info->plane = SPRITE_PLANE;
+ break;
+
default:
gvt_err("unknown plane code %d\n", plane);
return -EINVAL;
}
- info->pipe = PRIMARY_PLANE;
info->stride_val = (dword1 & GENMASK(15, 6)) >> 6;
info->tile_val = (dword1 & GENMASK(2, 0));
info->surf_val = (dword2 & GENMASK(31, 12)) >> 12;