fix rga support DMA buf error
authorzsq <zsq@rock-chips.com>
Fri, 14 Mar 2014 01:01:50 +0000 (09:01 +0800)
committerzsq <zsq@rock-chips.com>
Fri, 14 Mar 2014 01:01:50 +0000 (09:01 +0800)
drivers/video/rockchip/rga/rga_drv.c

index c2f4a2ccc2f2885331c199aa1ccaf115f3bb1a00..b8e38f5328dd5b95c18747d7c5762ffdf5f1014f 100755 (executable)
@@ -793,18 +793,14 @@ static void rga_mem_addr_sel(struct rga_req *req)
 \r
 static int rga_convert_dma_buf(struct rga_req *req)\r
 {\r
-    int usr_fd;\r
        struct ion_handle *hdl;\r
        ion_phys_addr_t phy_addr;\r
        size_t len;\r
 \r
     if(req->src.yrgb_addr) {\r
-        if (copy_from_user(&usr_fd, &req->src.yrgb_addr, sizeof(usr_fd)))\r
-            return -EFAULT;\r
-        hdl = ion_import_dma_buf(drvdata->ion_client, usr_fd);\r
+        hdl = ion_import_dma_buf(drvdata->ion_client, req->src.yrgb_addr);\r
            ion_phys(drvdata->ion_client, hdl, &phy_addr, &len);\r
         req->src.yrgb_addr = phy_addr;\r
-\r
         req->src.uv_addr = req->src.yrgb_addr + (req->src.vir_w * req->src.vir_h);\r
     }\r
     else {\r
@@ -813,12 +809,9 @@ static int rga_convert_dma_buf(struct rga_req *req)
     }\r
 \r
     if(req->dst.yrgb_addr) {\r
-        if (copy_from_user(&usr_fd, &req->dst.yrgb_addr, sizeof(usr_fd)))\r
-            return -EFAULT;\r
-        hdl = ion_import_dma_buf(drvdata->ion_client, usr_fd);\r
+        hdl = ion_import_dma_buf(drvdata->ion_client, req->dst.yrgb_addr);\r
            ion_phys(drvdata->ion_client, hdl, &phy_addr, &len);\r
         req->dst.yrgb_addr = phy_addr;\r
-\r
         req->dst.uv_addr = req->dst.yrgb_addr + (req->dst.vir_w * req->dst.vir_h);\r
     }\r
     else {\r
@@ -926,7 +919,6 @@ static int rga_blit_async(rga_session *session, struct rga_req *req)
 \r
     atomic_set(&session->done, 0);\r
     ret = rga_blit(session, req);\r
-\r
     return ret;\r
 }\r
 \r
@@ -940,26 +932,19 @@ static int rga_blit_sync(rga_session *session, struct rga_req *req)
     #endif\r
 \r
     atomic_set(&session->done, 0);\r
-\r
     ret = rga_blit(session, req);\r
     if(ret < 0)\r
-    {\r
         return ret;\r
-    }\r
 \r
     ret_timeout = wait_event_timeout(session->wait, atomic_read(&session->done), RGA_TIMEOUT_DELAY);\r
 \r
-    if (unlikely(ret_timeout< 0))\r
-    {\r
-               //pr_err("sync pid %d wait task ret %d\n", session->pid, ret_timeout);\r
+    if (unlikely(ret_timeout< 0)) {\r
         mutex_lock(&rga_service.lock);\r
         rga_del_running_list();\r
         mutex_unlock(&rga_service.lock);\r
         ret = ret_timeout;\r
        }\r
-    else if (0 == ret_timeout)\r
-    {\r
-               //pr_err("sync pid %d wait %d task done timeout\n", session->pid, atomic_read(&session->task_running));\r
+    else if (0 == ret_timeout) {\r
         mutex_lock(&rga_service.lock);\r
         rga_del_running_list_timeout();\r
         rga_try_set_reg();\r
@@ -987,8 +972,7 @@ static long rga_ioctl(struct file *file, uint32_t cmd, unsigned long arg)
 \r
     session = (rga_session *)file->private_data;\r
 \r
-       if (NULL == session)\r
-    {\r
+       if (NULL == session) {\r
         printk("%s [%d] rga thread session is null\n",__FUNCTION__,__LINE__);\r
         mutex_unlock(&rga_service.mutex);\r
                return -EINVAL;\r
@@ -996,8 +980,7 @@ static long rga_ioctl(struct file *file, uint32_t cmd, unsigned long arg)
 \r
     memset(&req, 0x0, sizeof(req));\r
 \r
-       switch (cmd)\r
-       {\r
+       switch (cmd) {\r
                case RGA_BLIT_SYNC:\r
                if (unlikely(copy_from_user(&req, (struct rga_req*)arg, sizeof(struct rga_req))))\r
             {\r
@@ -1055,15 +1038,13 @@ long rga_ioctl_kernel(struct rga_req *req)
 \r
     session = &rga_session_global;\r
 \r
-       if (NULL == session)\r
-    {\r
+       if (NULL == session) {\r
         printk("%s [%d] rga thread session is null\n",__FUNCTION__,__LINE__);\r
         mutex_unlock(&rga_service.mutex);\r
                return -EINVAL;\r
        }\r
 \r
-       switch (RGA_BLIT_SYNC)\r
-       {\r
+       switch (RGA_BLIT_SYNC) {\r
                case RGA_BLIT_SYNC:\r
             ret = rga_blit_sync(session, req);\r
             break;\r