drm/rockchip: vop: split dclk_pol from pin_pol
[firefly-linux-kernel-4.4.55.git] / drivers / gpu / drm / drm_ioctl.c
index 8ce2a0c591165018c49392e7ad2b828a1fb3b94b..34757168ffaa81100398a9e22e5f41c93e52a8d6 100644 (file)
@@ -312,6 +312,9 @@ static int drm_getcap(struct drm_device *dev, void *data, struct drm_file *file_
        case DRM_CAP_ADDFB2_MODIFIERS:
                req->value = dev->mode_config.allow_fb_modifiers;
                break;
+       case DRM_CAP_CRTC_IN_VBLANK_EVENT:
+               req->value = 1;
+               break;
        default:
                return -EINVAL;
        }
@@ -337,6 +340,11 @@ drm_setclientcap(struct drm_device *dev, void *data, struct drm_file *file_priv)
                        return -EINVAL;
                file_priv->universal_planes = req->value;
                break;
+       case DRM_CLIENT_CAP_SHARE_PLANES:
+               if (req->value > 1)
+                       return -EINVAL;
+               file_priv->share_planes = req->value;
+               break;
        case DRM_CLIENT_CAP_ATOMIC:
                if (!drm_core_check_feature(dev, DRIVER_ATOMIC))
                        return -EINVAL;
@@ -515,6 +523,7 @@ static int drm_version(struct drm_device *dev, void *data,
  */
 int drm_ioctl_permit(u32 flags, struct drm_file *file_priv)
 {
+#ifndef CONFIG_DRM_IGNORE_IOTCL_PERMIT
        /* ROOT_ONLY is only for CAP_SYS_ADMIN */
        if (unlikely((flags & DRM_ROOT_ONLY) && !capable(CAP_SYS_ADMIN)))
                return -EACCES;
@@ -538,6 +547,7 @@ int drm_ioctl_permit(u32 flags, struct drm_file *file_priv)
        if (unlikely(!(flags & DRM_RENDER_ALLOW) &&
                     drm_is_render_client(file_priv)))
                return -EACCES;
+#endif
 
        return 0;
 }