forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-01-31 f70575805708cabdedea7498aaa3f710fde4d920
kernel/drivers/gpu/drm/drm_ioc32.c
....@@ -31,10 +31,13 @@
3131 #include <linux/ratelimit.h>
3232 #include <linux/export.h>
3333
34
-#include <drm/drmP.h>
35
-#include "drm_legacy.h"
36
-#include "drm_internal.h"
34
+#include <drm/drm_agpsupport.h>
35
+#include <drm/drm_file.h>
36
+#include <drm/drm_print.h>
37
+
3738 #include "drm_crtc_internal.h"
39
+#include "drm_internal.h"
40
+#include "drm_legacy.h"
3841
3942 #define DRM_IOCTL_VERSION32 DRM_IOWR(0x00, drm_version32_t)
4043 #define DRM_IOCTL_GET_UNIQUE32 DRM_IOWR(0x01, drm_unique32_t)
....@@ -107,7 +110,7 @@
107110 .desc = compat_ptr(v32.desc),
108111 };
109112 err = drm_ioctl_kernel(file, drm_version, &v,
110
- DRM_UNLOCKED|DRM_RENDER_ALLOW);
113
+ DRM_RENDER_ALLOW);
111114 if (err)
112115 return err;
113116
....@@ -144,7 +147,7 @@
144147 .unique = compat_ptr(uq32.unique),
145148 };
146149
147
- err = drm_ioctl_kernel(file, drm_getunique, &uq, DRM_UNLOCKED);
150
+ err = drm_ioctl_kernel(file, drm_getunique, &uq, 0);
148151 if (err)
149152 return err;
150153
....@@ -161,6 +164,7 @@
161164 return -EINVAL;
162165 }
163166
167
+#if IS_ENABLED(CONFIG_DRM_LEGACY)
164168 typedef struct drm_map32 {
165169 u32 offset; /* Requested physical address (0 for SAREA) */
166170 u32 size; /* Requested physical size (bytes) */
....@@ -182,7 +186,7 @@
182186 return -EFAULT;
183187
184188 map.offset = m32.offset;
185
- err = drm_ioctl_kernel(file, drm_legacy_getmap_ioctl, &map, DRM_UNLOCKED);
189
+ err = drm_ioctl_kernel(file, drm_legacy_getmap_ioctl, &map, 0);
186190 if (err)
187191 return err;
188192
....@@ -244,6 +248,7 @@
244248 map.handle = compat_ptr(handle);
245249 return drm_ioctl_kernel(file, drm_legacy_rmmap_ioctl, &map, DRM_AUTH);
246250 }
251
+#endif
247252
248253 typedef struct drm_client32 {
249254 int idx; /* Which client desired? */
....@@ -269,7 +274,7 @@
269274
270275 client.idx = c32.idx;
271276
272
- err = drm_ioctl_kernel(file, drm_getclient, &client, DRM_UNLOCKED);
277
+ err = drm_ioctl_kernel(file, drm_getclient, &client, 0);
273278 if (err)
274279 return err;
275280
....@@ -299,7 +304,7 @@
299304 drm_stats32_t __user *argp = (void __user *)arg;
300305 int err;
301306
302
- err = drm_ioctl_kernel(file, drm_noop, NULL, DRM_UNLOCKED);
307
+ err = drm_ioctl_kernel(file, drm_noop, NULL, 0);
303308 if (err)
304309 return err;
305310
....@@ -308,6 +313,7 @@
308313 return 0;
309314 }
310315
316
+#if IS_ENABLED(CONFIG_DRM_LEGACY)
311317 typedef struct drm_buf_desc32 {
312318 int count; /* Number of buffers of this size */
313319 int size; /* Size in bytes */
....@@ -389,6 +395,7 @@
389395 struct drm_file *file_priv)
390396 {
391397 drm_buf_info32_t *request = data;
398
+
392399 return __drm_legacy_infobufs(dev, data, &request->count, copy_one_buf32);
393400 }
394401
....@@ -614,6 +621,7 @@
614621
615622 return 0;
616623 }
624
+#endif
617625
618626 #if IS_ENABLED(CONFIG_AGP)
619627 typedef struct drm_agp_mode32 {
....@@ -758,6 +766,7 @@
758766 }
759767 #endif /* CONFIG_AGP */
760768
769
+#if IS_ENABLED(CONFIG_DRM_LEGACY)
761770 typedef struct drm_scatter_gather32 {
762771 u32 size; /**< In bytes -- will round to page boundary */
763772 u32 handle; /**< Used for mapping / unmapping */
....@@ -798,7 +807,7 @@
798807 return drm_ioctl_kernel(file, drm_legacy_sg_free, &request,
799808 DRM_AUTH|DRM_MASTER|DRM_ROOT_ONLY);
800809 }
801
-
810
+#endif
802811 #if defined(CONFIG_X86)
803812 typedef struct drm_update_draw32 {
804813 drm_drawable_t handle;
....@@ -812,6 +821,7 @@
812821 unsigned long arg)
813822 {
814823 drm_update_draw32_t update32;
824
+
815825 if (copy_from_user(&update32, (void __user *)arg, sizeof(update32)))
816826 return -EFAULT;
817827
....@@ -896,8 +906,7 @@
896906 sizeof(req64.modifier)))
897907 return -EFAULT;
898908
899
- err = drm_ioctl_kernel(file, drm_mode_addfb2, &req64,
900
- DRM_UNLOCKED);
909
+ err = drm_ioctl_kernel(file, drm_mode_addfb2, &req64, 0);
901910 if (err)
902911 return err;
903912
....@@ -915,10 +924,13 @@
915924 #define DRM_IOCTL32_DEF(n, f) [DRM_IOCTL_NR(n##32)] = {.fn = f, .name = #n}
916925 DRM_IOCTL32_DEF(DRM_IOCTL_VERSION, compat_drm_version),
917926 DRM_IOCTL32_DEF(DRM_IOCTL_GET_UNIQUE, compat_drm_getunique),
927
+#if IS_ENABLED(CONFIG_DRM_LEGACY)
918928 DRM_IOCTL32_DEF(DRM_IOCTL_GET_MAP, compat_drm_getmap),
929
+#endif
919930 DRM_IOCTL32_DEF(DRM_IOCTL_GET_CLIENT, compat_drm_getclient),
920931 DRM_IOCTL32_DEF(DRM_IOCTL_GET_STATS, compat_drm_getstats),
921932 DRM_IOCTL32_DEF(DRM_IOCTL_SET_UNIQUE, compat_drm_setunique),
933
+#if IS_ENABLED(CONFIG_DRM_LEGACY)
922934 DRM_IOCTL32_DEF(DRM_IOCTL_ADD_MAP, compat_drm_addmap),
923935 DRM_IOCTL32_DEF(DRM_IOCTL_ADD_BUFS, compat_drm_addbufs),
924936 DRM_IOCTL32_DEF(DRM_IOCTL_MARK_BUFS, compat_drm_markbufs),
....@@ -930,6 +942,7 @@
930942 DRM_IOCTL32_DEF(DRM_IOCTL_GET_SAREA_CTX, compat_drm_getsareactx),
931943 DRM_IOCTL32_DEF(DRM_IOCTL_RES_CTX, compat_drm_resctx),
932944 DRM_IOCTL32_DEF(DRM_IOCTL_DMA, compat_drm_dma),
945
+#endif
933946 #if IS_ENABLED(CONFIG_AGP)
934947 DRM_IOCTL32_DEF(DRM_IOCTL_AGP_ENABLE, compat_drm_agp_enable),
935948 DRM_IOCTL32_DEF(DRM_IOCTL_AGP_INFO, compat_drm_agp_info),
....@@ -938,8 +951,10 @@
938951 DRM_IOCTL32_DEF(DRM_IOCTL_AGP_BIND, compat_drm_agp_bind),
939952 DRM_IOCTL32_DEF(DRM_IOCTL_AGP_UNBIND, compat_drm_agp_unbind),
940953 #endif
954
+#if IS_ENABLED(CONFIG_DRM_LEGACY)
941955 DRM_IOCTL32_DEF(DRM_IOCTL_SG_ALLOC, compat_drm_sg_alloc),
942956 DRM_IOCTL32_DEF(DRM_IOCTL_SG_FREE, compat_drm_sg_free),
957
+#endif
943958 #if defined(CONFIG_X86) || defined(CONFIG_IA64)
944959 DRM_IOCTL32_DEF(DRM_IOCTL_UPDATE_DRAW, compat_drm_update_draw),
945960 #endif
....@@ -981,8 +996,8 @@
981996 if (!fn)
982997 return drm_ioctl(filp, cmd, arg);
983998
984
- DRM_DEBUG("pid=%d, dev=0x%lx, auth=%d, %s\n",
985
- task_pid_nr(current),
999
+ DRM_DEBUG("comm=\"%s\", pid=%d, dev=0x%lx, auth=%d, %s\n",
1000
+ current->comm, task_pid_nr(current),
9861001 (long)old_encode_dev(file_priv->minor->kdev->devt),
9871002 file_priv->authenticated,
9881003 drm_compat_ioctls[nr].name);