summaryrefslogtreecommitdiffstats
path: root/debian/patches-rt/0058-drm-nouveau-device-Replace-io_mapping_map_atomic_wc.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches-rt/0058-drm-nouveau-device-Replace-io_mapping_map_atomic_wc.patch')
-rw-r--r--debian/patches-rt/0058-drm-nouveau-device-Replace-io_mapping_map_atomic_wc.patch54
1 files changed, 54 insertions, 0 deletions
diff --git a/debian/patches-rt/0058-drm-nouveau-device-Replace-io_mapping_map_atomic_wc.patch b/debian/patches-rt/0058-drm-nouveau-device-Replace-io_mapping_map_atomic_wc.patch
new file mode 100644
index 000000000..1fbd4e19c
--- /dev/null
+++ b/debian/patches-rt/0058-drm-nouveau-device-Replace-io_mapping_map_atomic_wc.patch
@@ -0,0 +1,54 @@
+From fa246d15bcd167ad99886a776912530c0ca8d6a7 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Tue, 3 Nov 2020 10:27:47 +0100
+Subject: [PATCH 058/323] drm/nouveau/device: Replace
+ io_mapping_map_atomic_wc()
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz
+
+Neither fbmem_peek() nor fbmem_poke() require to disable pagefaults and
+preemption as a side effect of io_mapping_map_atomic_wc().
+
+Use io_mapping_map_local_wc() instead.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+Cc: Ben Skeggs <bskeggs@redhat.com>
+Cc: David Airlie <airlied@linux.ie>
+Cc: Daniel Vetter <daniel@ffwll.ch>
+Cc: dri-devel@lists.freedesktop.org
+Cc: nouveau@lists.freedesktop.org
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ drivers/gpu/drm/nouveau/nvkm/subdev/devinit/fbmem.h | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/fbmem.h b/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/fbmem.h
+index 6c5bbff12eb4..411f91ee20fa 100644
+--- a/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/fbmem.h
++++ b/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/fbmem.h
+@@ -60,19 +60,19 @@ fbmem_fini(struct io_mapping *fb)
+ static inline u32
+ fbmem_peek(struct io_mapping *fb, u32 off)
+ {
+- u8 __iomem *p = io_mapping_map_atomic_wc(fb, off & PAGE_MASK);
++ u8 __iomem *p = io_mapping_map_local_wc(fb, off & PAGE_MASK);
+ u32 val = ioread32(p + (off & ~PAGE_MASK));
+- io_mapping_unmap_atomic(p);
++ io_mapping_unmap_local(p);
+ return val;
+ }
+
+ static inline void
+ fbmem_poke(struct io_mapping *fb, u32 off, u32 val)
+ {
+- u8 __iomem *p = io_mapping_map_atomic_wc(fb, off & PAGE_MASK);
++ u8 __iomem *p = io_mapping_map_local_wc(fb, off & PAGE_MASK);
+ iowrite32(val, p + (off & ~PAGE_MASK));
+ wmb();
+- io_mapping_unmap_atomic(p);
++ io_mapping_unmap_local(p);
+ }
+
+ static inline bool
+--
+2.43.0
+