brcm2708: remove linux 4.4 support
[openwrt/staging/yousong.git] / target / linux / brcm2708 / patches-4.4 / 0475-drm-vc4-Add-a-getparam-ioctl-for-getting-the-V3D-ide.patch
diff --git a/target/linux/brcm2708/patches-4.4/0475-drm-vc4-Add-a-getparam-ioctl-for-getting-the-V3D-ide.patch b/target/linux/brcm2708/patches-4.4/0475-drm-vc4-Add-a-getparam-ioctl-for-getting-the-V3D-ide.patch
deleted file mode 100644 (file)
index 2bd7dde..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-From 3150988da4b514d150a5b6b5e4d7e4d5e5e47e24 Mon Sep 17 00:00:00 2001
-From: Eric Anholt <eric@anholt.net>
-Date: Fri, 1 Jul 2016 13:10:38 -0700
-Subject: [PATCH] drm/vc4: Add a getparam ioctl for getting the V3D identity
- regs.
-
-As I extend the driver to support different V3D revisions, userspace
-needs to know what version it's targeting.  This is most easily
-detected using the V3D identity registers.
-
-v2: Make sure V3D is runtime PM on when reading the registers.
-v3: Switch to a 64-bit param value (suggested by Rob Clark in review)
-
-Signed-off-by: Eric Anholt <eric@anholt.net>
-Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> (v2)
-Reviewed-by: Rob Clark <robdclark@gmail.com> (v3, over irc)
-(cherry picked from commit af713795c59fea36161a7debf97dbc10bf652cf7)
-
-v4: Squashed in "drm/vc4: Fix handling of a pm_runtime_get_sync() success case."
----
- drivers/gpu/drm/vc4/vc4_drv.c | 42 ++++++++++++++++++++++++++++++++++++++++++
- include/uapi/drm/vc4_drm.h    | 12 ++++++++++++
- 2 files changed, 54 insertions(+)
-
---- a/drivers/gpu/drm/vc4/vc4_drv.c
-+++ b/drivers/gpu/drm/vc4/vc4_drv.c
-@@ -15,6 +15,7 @@
- #include <linux/module.h>
- #include <linux/of_platform.h>
- #include <linux/platform_device.h>
-+#include <linux/pm_runtime.h>
- #include "drm_fb_cma_helper.h"
- #include "uapi/drm/vc4_drm.h"
-@@ -64,6 +65,46 @@ void vc4_dump_regs32(const struct debugf
-       }
- }
-+static int vc4_get_param_ioctl(struct drm_device *dev, void *data,
-+                             struct drm_file *file_priv)
-+{
-+      struct vc4_dev *vc4 = to_vc4_dev(dev);
-+      struct drm_vc4_get_param *args = data;
-+      int ret;
-+
-+      if (args->pad != 0)
-+              return -EINVAL;
-+
-+      switch (args->param) {
-+      case DRM_VC4_PARAM_V3D_IDENT0:
-+              ret = pm_runtime_get_sync(&vc4->v3d->pdev->dev);
-+              if (ret < 0)
-+                      return ret;
-+              args->value = V3D_READ(V3D_IDENT0);
-+              pm_runtime_put(&vc4->v3d->pdev->dev);
-+              break;
-+      case DRM_VC4_PARAM_V3D_IDENT1:
-+              ret = pm_runtime_get_sync(&vc4->v3d->pdev->dev);
-+              if (ret < 0)
-+                      return ret;
-+              args->value = V3D_READ(V3D_IDENT1);
-+              pm_runtime_put(&vc4->v3d->pdev->dev);
-+              break;
-+      case DRM_VC4_PARAM_V3D_IDENT2:
-+              ret = pm_runtime_get_sync(&vc4->v3d->pdev->dev);
-+              if (ret < 0)
-+                      return ret;
-+              args->value = V3D_READ(V3D_IDENT2);
-+              pm_runtime_put(&vc4->v3d->pdev->dev);
-+              break;
-+      default:
-+              DRM_DEBUG("Unknown parameter %d\n", args->param);
-+              return -EINVAL;
-+      }
-+
-+      return 0;
-+}
-+
- static void vc4_lastclose(struct drm_device *dev)
- {
-       struct vc4_dev *vc4 = to_vc4_dev(dev);
-@@ -95,6 +136,7 @@ static const struct drm_ioctl_desc vc4_d
-       DRM_IOCTL_DEF_DRV(VC4_CREATE_SHADER_BO, vc4_create_shader_bo_ioctl, DRM_RENDER_ALLOW),
-       DRM_IOCTL_DEF_DRV(VC4_GET_HANG_STATE, vc4_get_hang_state_ioctl,
-                         DRM_ROOT_ONLY),
-+      DRM_IOCTL_DEF_DRV(VC4_GET_PARAM, vc4_get_param_ioctl, DRM_RENDER_ALLOW),
- };
- static struct drm_driver vc4_drm_driver = {
---- a/include/uapi/drm/vc4_drm.h
-+++ b/include/uapi/drm/vc4_drm.h
-@@ -37,6 +37,7 @@ extern "C" {
- #define DRM_VC4_MMAP_BO                           0x04
- #define DRM_VC4_CREATE_SHADER_BO                  0x05
- #define DRM_VC4_GET_HANG_STATE                    0x06
-+#define DRM_VC4_GET_PARAM                         0x07
- #define DRM_IOCTL_VC4_SUBMIT_CL           DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_SUBMIT_CL, struct drm_vc4_submit_cl)
- #define DRM_IOCTL_VC4_WAIT_SEQNO          DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_WAIT_SEQNO, struct drm_vc4_wait_seqno)
-@@ -45,6 +46,7 @@ extern "C" {
- #define DRM_IOCTL_VC4_MMAP_BO             DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_MMAP_BO, struct drm_vc4_mmap_bo)
- #define DRM_IOCTL_VC4_CREATE_SHADER_BO    DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_CREATE_SHADER_BO, struct drm_vc4_create_shader_bo)
- #define DRM_IOCTL_VC4_GET_HANG_STATE      DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_GET_HANG_STATE, struct drm_vc4_get_hang_state)
-+#define DRM_IOCTL_VC4_GET_PARAM           DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_GET_PARAM, struct drm_vc4_get_param)
- struct drm_vc4_submit_rcl_surface {
-       __u32 hindex; /* Handle index, or ~0 if not present. */
-@@ -280,6 +282,16 @@ struct drm_vc4_get_hang_state {
-       __u32 pad[16];
- };
-+#define DRM_VC4_PARAM_V3D_IDENT0              0
-+#define DRM_VC4_PARAM_V3D_IDENT1              1
-+#define DRM_VC4_PARAM_V3D_IDENT2              2
-+
-+struct drm_vc4_get_param {
-+      __u32 param;
-+      __u32 pad;
-+      __u64 value;
-+};
-+
- #if defined(__cplusplus)
- }
- #endif