forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-05-13 9d77db3c730780c8ef5ccd4b66403ff5675cfe4e
kernel/drivers/gpu/drm/drm_vm.c
....@@ -1,4 +1,4 @@
1
-/**
1
+/*
22 * \file drm_vm.c
33 * Memory mapping for DRM
44 *
....@@ -33,15 +33,26 @@
3333 * OTHER DEALINGS IN THE SOFTWARE.
3434 */
3535
36
-#include <drm/drmP.h>
3736 #include <linux/export.h>
37
+#include <linux/pci.h>
3838 #include <linux/seq_file.h>
39
+#include <linux/vmalloc.h>
40
+#include <linux/pgtable.h>
41
+
3942 #if defined(__ia64__)
4043 #include <linux/efi.h>
4144 #include <linux/slab.h>
4245 #endif
4346 #include <linux/mem_encrypt.h>
44
-#include <asm/pgtable.h>
47
+
48
+
49
+#include <drm/drm_agpsupport.h>
50
+#include <drm/drm_device.h>
51
+#include <drm/drm_drv.h>
52
+#include <drm/drm_file.h>
53
+#include <drm/drm_framebuffer.h>
54
+#include <drm/drm_print.h>
55
+
4556 #include "drm_internal.h"
4657 #include "drm_legacy.h"
4758
....@@ -62,7 +73,8 @@
6273 /* We don't want graphics memory to be mapped encrypted */
6374 tmp = pgprot_decrypted(tmp);
6475
65
-#if defined(__i386__) || defined(__x86_64__) || defined(__powerpc__)
76
+#if defined(__i386__) || defined(__x86_64__) || defined(__powerpc__) || \
77
+ defined(__mips__)
6678 if (map->type == _DRM_REGISTERS && !(map->flags & _DRM_WRITE_COMBINING))
6779 tmp = pgprot_noncached(tmp);
6880 else
....@@ -73,7 +85,7 @@
7385 tmp = pgprot_writecombine(tmp);
7486 else
7587 tmp = pgprot_noncached(tmp);
76
-#elif defined(__sparc__) || defined(__arm__) || defined(__mips__)
88
+#elif defined(__sparc__) || defined(__arm__)
7789 tmp = pgprot_noncached(tmp);
7890 #endif
7991 return tmp;
....@@ -89,7 +101,7 @@
89101 return tmp;
90102 }
91103
92
-/**
104
+/*
93105 * \c fault method for AGP virtual memory.
94106 *
95107 * \param vma virtual memory area.
....@@ -179,7 +191,7 @@
179191 }
180192 #endif
181193
182
-/**
194
+/*
183195 * \c nopage method for shared virtual memory.
184196 *
185197 * \param vma virtual memory area.
....@@ -212,7 +224,7 @@
212224 return 0;
213225 }
214226
215
-/**
227
+/*
216228 * \c close method for shared virtual memory.
217229 *
218230 * \param vma virtual memory area.
....@@ -256,8 +268,6 @@
256268 }
257269
258270 if (!found_maps) {
259
- drm_dma_handle_t dmah;
260
-
261271 switch (map->type) {
262272 case _DRM_REGISTERS:
263273 case _DRM_FRAME_BUFFER:
....@@ -271,10 +281,10 @@
271281 case _DRM_SCATTER_GATHER:
272282 break;
273283 case _DRM_CONSISTENT:
274
- dmah.vaddr = map->handle;
275
- dmah.busaddr = map->offset;
276
- dmah.size = map->size;
277
- __drm_legacy_pci_free(dev, &dmah);
284
+ dma_free_coherent(&dev->pdev->dev,
285
+ map->size,
286
+ map->handle,
287
+ map->offset);
278288 break;
279289 }
280290 kfree(map);
....@@ -283,7 +293,7 @@
283293 mutex_unlock(&dev->struct_mutex);
284294 }
285295
286
-/**
296
+/*
287297 * \c fault method for DMA virtual memory.
288298 *
289299 * \param address access address.
....@@ -318,7 +328,7 @@
318328 return 0;
319329 }
320330
321
-/**
331
+/*
322332 * \c fault method for scatter-gather virtual memory.
323333 *
324334 * \param address access address.
....@@ -424,7 +434,7 @@
424434 }
425435 }
426436
427
-/**
437
+/*
428438 * \c close method for all virtual memory types.
429439 *
430440 * \param vma virtual memory area.
....@@ -442,7 +452,7 @@
442452 mutex_unlock(&dev->struct_mutex);
443453 }
444454
445
-/**
455
+/*
446456 * mmap DMA memory.
447457 *
448458 * \param file_priv DRM file private.
....@@ -502,7 +512,7 @@
502512 #endif
503513 }
504514
505
-/**
515
+/*
506516 * mmap DMA memory.
507517 *
508518 * \param file_priv DRM file private.
....@@ -584,7 +594,7 @@
584594 vma->vm_ops = &drm_vm_ops;
585595 break;
586596 }
587
- /* fall through to _DRM_FRAME_BUFFER... */
597
+ fallthrough; /* to _DRM_FRAME_BUFFER... */
588598 #endif
589599 case _DRM_FRAME_BUFFER:
590600 case _DRM_REGISTERS:
....@@ -610,7 +620,7 @@
610620 vma->vm_end - vma->vm_start, vma->vm_page_prot))
611621 return -EAGAIN;
612622 vma->vm_page_prot = drm_dma_prot(map->type, vma);
613
- /* fall through to _DRM_SHM */
623
+ fallthrough; /* to _DRM_SHM */
614624 case _DRM_SHM:
615625 vma->vm_ops = &drm_vm_shm_ops;
616626 vma->vm_private_data = (void *)map;
....@@ -646,6 +656,7 @@
646656 }
647657 EXPORT_SYMBOL(drm_legacy_mmap);
648658
659
+#if IS_ENABLED(CONFIG_DRM_LEGACY)
649660 void drm_legacy_vma_flush(struct drm_device *dev)
650661 {
651662 struct drm_vma_entry *vma, *vma_temp;
....@@ -656,3 +667,4 @@
656667 kfree(vma);
657668 }
658669 }
670
+#endif