6.1-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Zack Rusin <zack.ru...@broadcom.com>

[ Upstream commit 4c08f01934ab67d1d283d5cbaa52b923abcfe4cd ]

Enable DMA mappings in vmwgfx after TTM has been fixed in commit
3bf3710e3718 ("drm/ttm: Add a generic TTM memcpy move for page-based iomem")

This enables full guest-backed memory support and in particular allows
usage of screen targets as the presentation mechanism.

Signed-off-by: Zack Rusin <zack.ru...@broadcom.com>
Reported-by: Ye Li <ye...@broadcom.com>
Tested-by: Ye Li <ye...@broadcom.com>
Fixes: 3b0d6458c705 ("drm/vmwgfx: Refuse DMA operation when SEV encryption is 
active")
Cc: Broadcom internal kernel review list <bcm-kernel-feedback-l...@broadcom.com>
Cc: dri-devel@lists.freedesktop.org
Cc: <sta...@vger.kernel.org> # v6.6+
Reviewed-by: Martin Krastev <martin.kras...@broadcom.com>
Link: 
https://patchwork.freedesktop.org/patch/msgid/20240408022802.358641-1-zack.ru...@broadcom.com
Signed-off-by: Sasha Levin <sas...@kernel.org>
---
 drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c 
b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
index 9d7a1b710f48f..53f63ad656a41 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
@@ -663,11 +663,12 @@ static int vmw_dma_select_mode(struct vmw_private 
*dev_priv)
                [vmw_dma_map_populate] = "Caching DMA mappings.",
                [vmw_dma_map_bind] = "Giving up DMA mappings early."};
 
-       /* TTM currently doesn't fully support SEV encryption. */
-       if (cc_platform_has(CC_ATTR_MEM_ENCRYPT))
-               return -EINVAL;
-
-       if (vmw_force_coherent)
+       /*
+        * When running with SEV we always want dma mappings, because
+        * otherwise ttm tt pool pages will bounce through swiotlb running
+        * out of available space.
+        */
+       if (vmw_force_coherent || cc_platform_has(CC_ATTR_MEM_ENCRYPT))
                dev_priv->map_mode = vmw_dma_alloc_coherent;
        else if (vmw_restrict_iommu)
                dev_priv->map_mode = vmw_dma_map_bind;
-- 
2.43.0



Reply via email to