drm/rockchip: vop: add vop full series of vop support
[firefly-linux-kernel-4.4.55.git] / drivers / gpu / drm / rockchip / rockchip_drm_drv.c
index 73745ef7722b0cd4cb883a8ec387c6beee8a24f4..d0cb8b62afea7376b7451b18130629c5e12b086d 100644 (file)
@@ -416,16 +416,16 @@ void rockchip_drm_lastclose(struct drm_device *dev)
 
 static const struct drm_ioctl_desc rockchip_ioctls[] = {
        DRM_IOCTL_DEF_DRV(ROCKCHIP_GEM_CREATE, rockchip_gem_create_ioctl,
-                         DRM_UNLOCKED | DRM_AUTH),
+                         DRM_UNLOCKED | DRM_AUTH | DRM_RENDER_ALLOW),
        DRM_IOCTL_DEF_DRV(ROCKCHIP_GEM_MAP_OFFSET,
                          rockchip_gem_map_offset_ioctl,
-                         DRM_UNLOCKED | DRM_AUTH),
+                         DRM_UNLOCKED | DRM_AUTH | DRM_RENDER_ALLOW),
        DRM_IOCTL_DEF_DRV(ROCKCHIP_GEM_CPU_ACQUIRE,
                          rockchip_gem_cpu_acquire_ioctl,
-                         DRM_UNLOCKED | DRM_AUTH),
+                         DRM_UNLOCKED | DRM_AUTH | DRM_RENDER_ALLOW),
        DRM_IOCTL_DEF_DRV(ROCKCHIP_GEM_CPU_RELEASE,
                          rockchip_gem_cpu_release_ioctl,
-                         DRM_UNLOCKED | DRM_AUTH),
+                         DRM_UNLOCKED | DRM_AUTH | DRM_RENDER_ALLOW),
        DRM_IOCTL_DEF_DRV(ROCKCHIP_RGA_GET_VER, rockchip_rga_get_ver_ioctl,
                          DRM_AUTH | DRM_RENDER_ALLOW),
        DRM_IOCTL_DEF_DRV(ROCKCHIP_RGA_SET_CMDLIST,
@@ -455,7 +455,8 @@ const struct vm_operations_struct rockchip_drm_vm_ops = {
 
 static struct drm_driver rockchip_drm_driver = {
        .driver_features        = DRIVER_MODESET | DRIVER_GEM |
-                                 DRIVER_PRIME | DRIVER_ATOMIC,
+                                 DRIVER_PRIME | DRIVER_ATOMIC |
+                                 DRIVER_RENDER,
        .load                   = rockchip_drm_load,
        .unload                 = rockchip_drm_unload,
        .preclose               = rockchip_drm_preclose,
@@ -473,6 +474,7 @@ static struct drm_driver rockchip_drm_driver = {
        .prime_handle_to_fd     = drm_gem_prime_handle_to_fd,
        .prime_fd_to_handle     = drm_gem_prime_fd_to_handle,
        .gem_prime_import       = drm_gem_prime_import,
+       .gem_prime_import_sg_table = rockchip_gem_prime_import_sg_table,
        .gem_prime_export       = drm_gem_prime_export,
        .gem_prime_get_sg_table = rockchip_gem_prime_get_sg_table,
        .gem_prime_vmap         = rockchip_gem_prime_vmap,
@@ -566,36 +568,6 @@ static const struct dev_pm_ops rockchip_drm_pm_ops = {
                                rockchip_drm_sys_resume)
 };
 
-/*
- * @node: device tree node containing encoder input ports
- * @encoder: drm_encoder
- */
-int rockchip_drm_encoder_get_mux_id(struct device_node *node,
-                                   struct drm_encoder *encoder)
-{
-       struct device_node *ep;
-       struct drm_crtc *crtc = encoder->crtc;
-       struct of_endpoint endpoint;
-       struct device_node *port;
-       int ret;
-
-       if (!node || !crtc)
-               return -EINVAL;
-
-       for_each_endpoint_of_node(node, ep) {
-               port = of_graph_get_remote_port(ep);
-               of_node_put(port);
-               if (port == crtc->port) {
-                       ret = of_graph_parse_endpoint(ep, &endpoint);
-                       of_node_put(ep);
-                       return ret ?: endpoint.id;
-               }
-       }
-
-       return -EINVAL;
-}
-EXPORT_SYMBOL_GPL(rockchip_drm_encoder_get_mux_id);
-
 static int compare_of(struct device *dev, void *data)
 {
        struct device_node *np = data;