forked from pool/virtualbox
47 lines
1.5 KiB
Diff
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;
|