summaryrefslogtreecommitdiff
path: root/sys-kernel/linux-image-redcore/files/0001-Revert-swiotlb-remove-various-exports.patch
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2018-04-12 03:15:50 +0100
committerV3n3RiX <venerix@redcorelinux.org>2018-04-12 03:15:50 +0100
commit05dd9a296958364794a0b4910bf9623f51b083f9 (patch)
tree448e3c1f8e93ed9301b99124da2636fca71a968b /sys-kernel/linux-image-redcore/files/0001-Revert-swiotlb-remove-various-exports.patch
parent120066f9e16553b0569c6a94336b6b688e7a91c1 (diff)
- Workaround amdgpu and radeon issues by adding a new swiotlb option.
defaults to disabled ( old way ) while still possible to enable and test the new way / code. The newer code does not work good or does not work at all on some HW ( mine as example ) see: https://lkml.org/lkml/2018/4/5/737 https://bugzilla.kernel.org/show_bug.cgi?id=198511 https://bugs.freedesktop.org/show_bug.cgi?id=105038
Diffstat (limited to 'sys-kernel/linux-image-redcore/files/0001-Revert-swiotlb-remove-various-exports.patch')
-rw-r--r--sys-kernel/linux-image-redcore/files/0001-Revert-swiotlb-remove-various-exports.patch125
1 files changed, 125 insertions, 0 deletions
diff --git a/sys-kernel/linux-image-redcore/files/0001-Revert-swiotlb-remove-various-exports.patch b/sys-kernel/linux-image-redcore/files/0001-Revert-swiotlb-remove-various-exports.patch
new file mode 100644
index 00000000..71133922
--- /dev/null
+++ b/sys-kernel/linux-image-redcore/files/0001-Revert-swiotlb-remove-various-exports.patch
@@ -0,0 +1,125 @@
+From f79f0faf65fedc6d8ef44c5aff3b673ae0d1793c Mon Sep 17 00:00:00 2001
+From: Gabriel Craciunescu <crazy@frugalware.org>
+Date: Mon, 9 Apr 2018 20:57:38 +0200
+Subject: [PATCH] Revert "swiotlb: remove various exports"
+
+This reverts commit 4bd89ed39b2ab8dc4ac4b6c59b07d420b0213bec.
+
+I know NVIDIA ... but lets be nice..
+Until sorted revert the whole commit
+see : https://bugzilla.kernel.org/show_bug.cgi?id=198997
+
+---
+ lib/swiotlb.c | 13 +++++++++++++
+ 1 file changed, 13 insertions(+)
+
+diff --git a/lib/swiotlb.c b/lib/swiotlb.c
+index c43ec2271469..0039b7c5e690 100644
+--- a/lib/swiotlb.c
++++ b/lib/swiotlb.c
+@@ -605,6 +605,7 @@ phys_addr_t swiotlb_tbl_map_single(struct device *hwdev,
+
+ return tlb_addr;
+ }
++EXPORT_SYMBOL_GPL(swiotlb_tbl_map_single);
+
+ /*
+ * Allocates bounce buffer and returns its kernel virtual address.
+@@ -674,6 +675,7 @@ void swiotlb_tbl_unmap_single(struct device *hwdev, phys_addr_t tlb_addr,
+ }
+ spin_unlock_irqrestore(&io_tlb_lock, flags);
+ }
++EXPORT_SYMBOL_GPL(swiotlb_tbl_unmap_single);
+
+ void swiotlb_tbl_sync_single(struct device *hwdev, phys_addr_t tlb_addr,
+ size_t size, enum dma_data_direction dir,
+@@ -705,6 +707,7 @@ void swiotlb_tbl_sync_single(struct device *hwdev, phys_addr_t tlb_addr,
+ BUG();
+ }
+ }
++EXPORT_SYMBOL_GPL(swiotlb_tbl_sync_single);
+
+ static inline bool dma_coherent_ok(struct device *dev, dma_addr_t addr,
+ size_t size)
+@@ -881,6 +884,7 @@ dma_addr_t swiotlb_map_page(struct device *dev, struct page *page,
+
+ return swiotlb_phys_to_dma(dev, io_tlb_overflow_buffer);
+ }
++EXPORT_SYMBOL_GPL(swiotlb_map_page);
+
+ /*
+ * Unmap a single streaming mode DMA translation. The dma_addr and size must
+@@ -921,6 +925,7 @@ void swiotlb_unmap_page(struct device *hwdev, dma_addr_t dev_addr,
+ {
+ unmap_single(hwdev, dev_addr, size, dir, attrs);
+ }
++EXPORT_SYMBOL_GPL(swiotlb_unmap_page);
+
+ /*
+ * Make physical memory consistent for a single streaming mode DMA translation
+@@ -958,6 +963,7 @@ swiotlb_sync_single_for_cpu(struct device *hwdev, dma_addr_t dev_addr,
+ {
+ swiotlb_sync_single(hwdev, dev_addr, size, dir, SYNC_FOR_CPU);
+ }
++EXPORT_SYMBOL(swiotlb_sync_single_for_cpu);
+
+ void
+ swiotlb_sync_single_for_device(struct device *hwdev, dma_addr_t dev_addr,
+@@ -965,6 +971,7 @@ swiotlb_sync_single_for_device(struct device *hwdev, dma_addr_t dev_addr,
+ {
+ swiotlb_sync_single(hwdev, dev_addr, size, dir, SYNC_FOR_DEVICE);
+ }
++EXPORT_SYMBOL(swiotlb_sync_single_for_device);
+
+ /*
+ * Map a set of buffers described by scatterlist in streaming mode for DMA.
+@@ -1016,6 +1023,7 @@ swiotlb_map_sg_attrs(struct device *hwdev, struct scatterlist *sgl, int nelems,
+ }
+ return nelems;
+ }
++EXPORT_SYMBOL(swiotlb_map_sg_attrs);
+
+ /*
+ * Unmap a set of streaming mode DMA translations. Again, cpu read rules
+@@ -1035,6 +1043,7 @@ swiotlb_unmap_sg_attrs(struct device *hwdev, struct scatterlist *sgl,
+ unmap_single(hwdev, sg->dma_address, sg_dma_len(sg), dir,
+ attrs);
+ }
++EXPORT_SYMBOL(swiotlb_unmap_sg_attrs);
+
+ /*
+ * Make physical memory consistent for a set of streaming mode DMA translations
+@@ -1062,6 +1071,7 @@ swiotlb_sync_sg_for_cpu(struct device *hwdev, struct scatterlist *sg,
+ {
+ swiotlb_sync_sg(hwdev, sg, nelems, dir, SYNC_FOR_CPU);
+ }
++EXPORT_SYMBOL(swiotlb_sync_sg_for_cpu);
+
+ void
+ swiotlb_sync_sg_for_device(struct device *hwdev, struct scatterlist *sg,
+@@ -1069,12 +1079,14 @@ swiotlb_sync_sg_for_device(struct device *hwdev, struct scatterlist *sg,
+ {
+ swiotlb_sync_sg(hwdev, sg, nelems, dir, SYNC_FOR_DEVICE);
+ }
++EXPORT_SYMBOL(swiotlb_sync_sg_for_device);
+
+ int
+ swiotlb_dma_mapping_error(struct device *hwdev, dma_addr_t dma_addr)
+ {
+ return (dma_addr == swiotlb_phys_to_dma(hwdev, io_tlb_overflow_buffer));
+ }
++EXPORT_SYMBOL(swiotlb_dma_mapping_error);
+
+ /*
+ * Return whether the given device DMA address mask can be supported
+@@ -1087,6 +1099,7 @@ swiotlb_dma_supported(struct device *hwdev, u64 mask)
+ {
+ return swiotlb_phys_to_dma(hwdev, io_tlb_end - 1) <= mask;
+ }
++EXPORT_SYMBOL(swiotlb_dma_supported);
+
+ #ifdef CONFIG_DMA_DIRECT_OPS
+ void *swiotlb_alloc(struct device *dev, size_t size, dma_addr_t *dma_handle,
+--
+2.17.0
+