From 071106ecf68c401173c58808b1cf5f68cc50d390 Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Fri, 05 Jan 2024 08:39:27 +0000
Subject: [PATCH] change wifi driver to cypress
---
kernel/drivers/gpu/drm/vmwgfx/vmwgfx_blit.c | 30 ++++++++++++++++++------------
1 files changed, 18 insertions(+), 12 deletions(-)
diff --git a/kernel/drivers/gpu/drm/vmwgfx/vmwgfx_blit.c b/kernel/drivers/gpu/drm/vmwgfx/vmwgfx_blit.c
index 71dba22..e8d6618 100644
--- a/kernel/drivers/gpu/drm/vmwgfx/vmwgfx_blit.c
+++ b/kernel/drivers/gpu/drm/vmwgfx/vmwgfx_blit.c
@@ -375,12 +375,12 @@
copy_size = min_t(u32, copy_size, PAGE_SIZE - src_page_offset);
if (unmap_src) {
- kunmap_local(d->src_addr);
+ kunmap_atomic(d->src_addr);
d->src_addr = NULL;
}
if (unmap_dst) {
- kunmap_local(d->dst_addr);
+ kunmap_atomic(d->dst_addr);
d->dst_addr = NULL;
}
@@ -388,8 +388,12 @@
if (WARN_ON_ONCE(dst_page >= d->dst_num_pages))
return -EINVAL;
- d->dst_addr = kmap_local_page_prot(d->dst_pages[dst_page],
- d->dst_prot);
+ d->dst_addr =
+ kmap_atomic_prot(d->dst_pages[dst_page],
+ d->dst_prot);
+ if (!d->dst_addr)
+ return -ENOMEM;
+
d->mapped_dst = dst_page;
}
@@ -397,8 +401,12 @@
if (WARN_ON_ONCE(src_page >= d->src_num_pages))
return -EINVAL;
- d->src_addr = kmap_local_page_prot(d->src_pages[src_page],
- d->src_prot);
+ d->src_addr =
+ kmap_atomic_prot(d->src_pages[src_page],
+ d->src_prot);
+ if (!d->src_addr)
+ return -ENOMEM;
+
d->mapped_src = src_page;
}
diff->do_cpy(diff, d->dst_addr + dst_page_offset,
@@ -428,10 +436,8 @@
*
* Performs a CPU blit from one buffer object to another avoiding a full
* bo vmap which may exhaust- or fragment vmalloc space.
- *
- * On supported architectures (x86), we're using kmap_local_prot() which
- * avoids cross-processor TLB- and cache flushes. kmap_local_prot() will
- * either map a highmem page with the proper pgprot on HIGHMEM=y systems or
+ * On supported architectures (x86), we're using kmap_atomic which avoids
+ * cross-processor TLB- and cache flushes and may, on non-HIGHMEM systems
* reference already set-up mappings.
*
* Neither of the buffer objects may be placed in PCI memory
@@ -494,9 +500,9 @@
}
out:
if (d.src_addr)
- kunmap_local(d.src_addr);
+ kunmap_atomic(d.src_addr);
if (d.dst_addr)
- kunmap_local(d.dst_addr);
+ kunmap_atomic(d.dst_addr);
return ret;
}
--
Gitblit v1.6.2