1
0
forked from pool/virtualbox
virtualbox/linux-5.10-framebuffer-fixes.patch

47 lines
1.5 KiB
Diff

Index: b/src/VBox/Additions/linux/drm/vbox_drv.h
===================================================================
--- a/src/VBox/Additions/linux/drm/vbox_drv.h
+++ b/src/VBox/Additions/linux/drm/vbox_drv.h
@@ -205,6 +205,13 @@ static inline void drm_gem_object_put(st
}
#endif
+#ifndef TTM_PL_FLAG_SYSTEM
+#define TTM_PL_FLAG_SYSTEM (1 << TTM_PL_SYSTEM)
+#endif
+#ifndef TTM_PL_FLAG_VRAM
+#define TTM_PL_FLAG_VRAM (1 << TTM_PL_VRAM)
+#endif
+
#define DRIVER_AUTHOR VBOX_VENDOR
#define DRIVER_NAME "vboxvideo"
Index: b/src/VBox/Additions/linux/drm/vbox_ttm.c
===================================================================
--- a/src/VBox/Additions/linux/drm/vbox_ttm.c
+++ b/src/VBox/Additions/linux/drm/vbox_ttm.c
@@ -373,11 +373,23 @@ void vbox_ttm_placement(struct vbox_bo *
bo->placement.busy_placement = bo->placements;
if (domain & TTM_PL_FLAG_VRAM)
+#if RTLNX_VER_MIN(5,10,0)
+ bo->placements[c].mem_type = TTM_PL_VRAM;
+ PLACEMENT_FLAGS(bo->placements[c++]) =
+ TTM_PL_FLAG_WC | TTM_PL_FLAG_UNCACHED;
+#else
PLACEMENT_FLAGS(bo->placements[c++]) =
TTM_PL_FLAG_WC | TTM_PL_FLAG_UNCACHED | TTM_PL_FLAG_VRAM;
+#endif
if (domain & TTM_PL_FLAG_SYSTEM)
+#if RTLNX_VER_MIN(5,10,0)
+ bo->placements[c].mem_type = TTM_PL_SYSTEM;
+ PLACEMENT_FLAGS(bo->placements[c++]) =
+ TTM_PL_MASK_CACHING;
+#else
PLACEMENT_FLAGS(bo->placements[c++]) =
TTM_PL_MASK_CACHING | TTM_PL_FLAG_SYSTEM;
+#endif
if (!c)
PLACEMENT_FLAGS(bo->placements[c++]) =
TTM_PL_MASK_CACHING | TTM_PL_FLAG_SYSTEM;