--- /dev/null
+#ifndef __BACKPORT_LINUX_SWIOTLB_H
+#define __BACKPORT_LINUX_SWIOTLB_H
+
+#include <linux/version.h>
+
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,28))
+#include_next <linux/swiotlb.h>
+#endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,28)) */
+
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0))
+static inline unsigned long swiotlb_nr_tbl(void)
+{
+ return 0;
+}
+#endif
+
+#endif /* __BACKPORT_LINUX_SWIOTLB_H */
+++ /dev/null
---- a/drivers/gpu/drm/nouveau/nouveau_bo.c
-+++ b/drivers/gpu/drm/nouveau/nouveau_bo.c
-@@ -1374,11 +1374,13 @@ nouveau_ttm_tt_populate(struct ttm_tt *t
- }
- #endif
-
-+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
- #ifdef CONFIG_SWIOTLB
- if (swiotlb_nr_tbl()) {
- return ttm_dma_populate((void *)ttm, dev->dev);
- }
- #endif
-+#endif
-
- r = ttm_pool_populate(ttm);
- if (r) {
-@@ -1424,12 +1426,14 @@ nouveau_ttm_tt_unpopulate(struct ttm_tt
- }
- #endif
-
-+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
- #ifdef CONFIG_SWIOTLB
- if (swiotlb_nr_tbl()) {
- ttm_dma_unpopulate((void *)ttm, dev->dev);
- return;
- }
- #endif
-+#endif
-
- for (i = 0; i < ttm->num_pages; i++) {
- if (ttm_dma->dma_address[i]) {
+++ /dev/null
---- a/drivers/gpu/drm/radeon/radeon_ttm.c
-+++ b/drivers/gpu/drm/radeon/radeon_ttm.c
-@@ -603,11 +603,13 @@ static int radeon_ttm_tt_populate(struct
- }
- #endif
-
-+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
- #ifdef CONFIG_SWIOTLB
- if (swiotlb_nr_tbl()) {
- return ttm_dma_populate(>t->ttm, rdev->dev);
- }
- #endif
-+#endif
-
- r = ttm_pool_populate(ttm);
- if (r) {
-@@ -649,12 +651,14 @@ static void radeon_ttm_tt_unpopulate(str
- }
- #endif
-
-+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
- #ifdef CONFIG_SWIOTLB
- if (swiotlb_nr_tbl()) {
- ttm_dma_unpopulate(>t->ttm, rdev->dev);
- return;
- }
- #endif
-+#endif
-
- for (i = 0; i < ttm->num_pages; i++) {
- if (gtt->ttm.dma_address[i]) {
-@@ -877,6 +881,7 @@ static int radeon_ttm_debugfs_init(struc
- radeon_mem_types_list[i].show = &ttm_page_alloc_debugfs;
- radeon_mem_types_list[i].driver_features = 0;
- radeon_mem_types_list[i++].data = NULL;
-+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
- #ifdef CONFIG_SWIOTLB
- if (swiotlb_nr_tbl()) {
- sprintf(radeon_mem_types_names[i], "ttm_dma_page_pool");
-@@ -886,6 +891,7 @@ static int radeon_ttm_debugfs_init(struc
- radeon_mem_types_list[i++].data = NULL;
- }
- #endif
-+#endif
- return radeon_debugfs_add_files(rdev, radeon_mem_types_list, i);
-
- #endif