fix rga copy DMA_buf error
[firefly-linux-kernel-4.4.55.git] / drivers / video / rockchip / rga / rga_mmu_info.c
index f79eb64e8cdccc8e0124ba945638cc8032007828..de1a60ee034fd8ae41c718e1b790668a904cb453 100755 (executable)
@@ -78,57 +78,49 @@ static int rga_buf_size_cal(uint32_t yrgb_addr, uint32_t uv_addr, uint32_t v_add
         case RK_FORMAT_RGBA_8888 :\r
             stride = (w * 4 + 3) & (~3);\r
             size_yrgb = stride*h;\r
-            end = (yrgb_addr + (size_yrgb + PAGE_SIZE - 1)) >> PAGE_SHIFT;\r
             start = yrgb_addr >> PAGE_SHIFT;\r
-            pageCount = end - start;\r
+            pageCount = (size_yrgb + PAGE_SIZE - 1) >> PAGE_SHIFT;\r
             break;\r
         case RK_FORMAT_RGBX_8888 :\r
             stride = (w * 4 + 3) & (~3);\r
             size_yrgb = stride*h;\r
-            end = (yrgb_addr + (size_yrgb + PAGE_SIZE - 1)) >> PAGE_SHIFT;\r
             start = yrgb_addr >> PAGE_SHIFT;\r
-            pageCount = end - start;\r
+            pageCount = (size_yrgb + PAGE_SIZE - 1) >> PAGE_SHIFT;\r
             break;\r
         case RK_FORMAT_RGB_888 :\r
             stride = (w * 3 + 3) & (~3);\r
             size_yrgb = stride*h;\r
-            end = (yrgb_addr + (size_yrgb + PAGE_SIZE - 1)) >> PAGE_SHIFT;\r
             start = yrgb_addr >> PAGE_SHIFT;\r
-            pageCount = end - start;\r
+            pageCount = (size_yrgb + PAGE_SIZE - 1) >> PAGE_SHIFT;\r
             break;\r
         case RK_FORMAT_BGRA_8888 :\r
             size_yrgb = w*h*4;\r
-            end = (yrgb_addr + (size_yrgb + PAGE_SIZE - 1)) >> PAGE_SHIFT;\r
             start = yrgb_addr >> PAGE_SHIFT;\r
-            pageCount = end - start;\r
+            pageCount = (size_yrgb + PAGE_SIZE - 1) >> PAGE_SHIFT;\r
             break;\r
         case RK_FORMAT_RGB_565 :\r
             stride = (w*2 + 3) & (~3);\r
             size_yrgb = stride * h;\r
-            end = (yrgb_addr + (size_yrgb + PAGE_SIZE - 1)) >> PAGE_SHIFT;\r
             start = yrgb_addr >> PAGE_SHIFT;\r
-            pageCount = end - start;\r
+            pageCount = (size_yrgb + PAGE_SIZE - 1) >> PAGE_SHIFT;\r
             break;\r
         case RK_FORMAT_RGBA_5551 :\r
             stride = (w*2 + 3) & (~3);\r
             size_yrgb = stride * h;\r
-            end = (yrgb_addr + (size_yrgb + PAGE_SIZE - 1)) >> PAGE_SHIFT;\r
             start = yrgb_addr >> PAGE_SHIFT;\r
-            pageCount = end - start;\r
+            pageCount = (size_yrgb + PAGE_SIZE - 1) >> PAGE_SHIFT;\r
             break;\r
         case RK_FORMAT_RGBA_4444 :\r
             stride = (w*2 + 3) & (~3);\r
             size_yrgb = stride * h;\r
-            end = (yrgb_addr + (size_yrgb + PAGE_SIZE - 1)) >> PAGE_SHIFT;\r
             start = yrgb_addr >> PAGE_SHIFT;\r
-            pageCount = end - start;\r
+            pageCount = (size_yrgb + PAGE_SIZE - 1) >> PAGE_SHIFT;\r
             break;\r
         case RK_FORMAT_BGR_888 :\r
             stride = (w*3 + 3) & (~3);\r
             size_yrgb = stride * h;\r
-            end = (yrgb_addr + (size_yrgb + PAGE_SIZE - 1)) >> PAGE_SHIFT;\r
             start = yrgb_addr >> PAGE_SHIFT;\r
-            pageCount = end - start;\r
+            pageCount = (size_yrgb + PAGE_SIZE - 1) >> PAGE_SHIFT;\r
             break;\r
 \r
         /* YUV FORMAT */\r
@@ -137,6 +129,7 @@ static int rga_buf_size_cal(uint32_t yrgb_addr, uint32_t uv_addr, uint32_t v_add
             size_yrgb = stride * h;\r
             size_uv = stride * h;\r
             start = MIN(yrgb_addr, uv_addr);\r
+\r
             start >>= PAGE_SHIFT;\r
             end = MAX((yrgb_addr + size_yrgb), (uv_addr + size_uv));\r
             end = (end + (PAGE_SIZE - 1)) >> PAGE_SHIFT;\r
@@ -344,7 +337,6 @@ static int rga_MapUserMemory(struct page **pages,
                     while (0);\r
 \r
                     #else\r
-\r
                     do\r
                     {\r
                         pte_t       * pte;\r