From 77b5f37181243bb2b471419335e3a8dbae27bc25 Mon Sep 17 00:00:00 2001
From: Jason Ekstrand <jason@jlekstrand.net>
Date: Thu, 11 Mar 2021 13:59:12 -0600
Subject: [PATCH 3/3] Stop using mos_bo_subdata

This maps to the kernel's PWRITE ioctl but there's no real advantage in
using it since the first thing the kernel does is i915_gem_object_wait().
We may as well do the wait in userspace and just write to it through a
map.  We're attempting to remove PWRITE support from i915 for future
platforms and this prepares the media driver for the move.
---
 .../codec/ddi/media_ddi_decode_base.cpp       |  9 +++-----
 .../common/codec/ddi/media_ddi_decode_vp8.cpp | 21 ++++++-------------
 2 files changed, 9 insertions(+), 21 deletions(-)

diff --git a/media_driver/linux/common/codec/ddi/media_ddi_decode_base.cpp b/media_driver/linux/common/codec/ddi/media_ddi_decode_base.cpp
index 5807066d90a8..3b8307d3ece4 100644
--- a/media_driver/linux/common/codec/ddi/media_ddi_decode_base.cpp
+++ b/media_driver/linux/common/codec/ddi/media_ddi_decode_base.cpp
@@ -1096,13 +1096,10 @@ VAStatus DdiMediaDecode::CreateBuffer(
 
     if( true == buf->bCFlushReq )
     {
-        mos_bo_subdata(buf->bo, buf->uiOffset, size * numElements, data);
-    }
-    else
-    {
-        status = MOS_SecureMemcpy((void *)(buf->pData + buf->uiOffset), size * numElements, data, size * numElements);
-        DDI_CHK_CONDITION((status != MOS_STATUS_SUCCESS), "DDI:Failed to copy buffer data!", VA_STATUS_ERROR_OPERATION_FAILED);
+        mos_bo_wait_rendering(buf->bo);
     }
+    status = MOS_SecureMemcpy((void *)(buf->pData + buf->uiOffset), size * numElements, data, size * numElements);
+    DDI_CHK_CONDITION((status != MOS_STATUS_SUCCESS), "DDI:Failed to copy buffer data!", VA_STATUS_ERROR_OPERATION_FAILED);
     return va;
 
 CleanUpandReturn:
diff --git a/media_driver/linux/common/codec/ddi/media_ddi_decode_vp8.cpp b/media_driver/linux/common/codec/ddi/media_ddi_decode_vp8.cpp
index 02c677ae2add..72891d584334 100644
--- a/media_driver/linux/common/codec/ddi/media_ddi_decode_vp8.cpp
+++ b/media_driver/linux/common/codec/ddi/media_ddi_decode_vp8.cpp
@@ -264,21 +264,12 @@ VAStatus DdiDecodeVP8::ParseProbabilityData(
 {
     if (vp8ProbDataBuff->pData && probInputBuf)
     {
-        MOS_LINUX_BO *boDes = nullptr;
-        boDes               = vp8ProbDataBuff->bo;
-
-        mos_bo_wait_rendering(boDes);
-        if (0 == mos_bo_subdata(boDes,
-                     0,
-                     sizeof(CODECHAL_VP8_COEFFPROB_DATA),
-                     probInputBuf))
-        {
-            return VA_STATUS_SUCCESS;
-        }
-        else
-        {
-            return VA_STATUS_ERROR_INVALID_PARAMETER;
-        }
+        mos_bo_wait_rendering(vp8ProbDataBuff->bo);
+        MOS_SecureMemcpy(vp8ProbDataBuff->pData,
+                         sizeof(CODECHAL_VP8_COEFFPROB_DATA),
+                         probInputBuf,
+                         sizeof(CODECHAL_VP8_COEFFPROB_DATA));
+        return VA_STATUS_SUCCESS;
     }
     else
     {
-- 
2.29.0

