rga2 on rk3288 FPGA is valid
authorzsq <zsq@rock-chips.com>
Thu, 6 Mar 2014 09:35:38 +0000 (17:35 +0800)
committerzsq <zsq@rock-chips.com>
Thu, 6 Mar 2014 09:35:38 +0000 (17:35 +0800)
arch/arm/boot/dts/rk3288.dtsi
arch/arm/configs/rockchip_defconfig
drivers/video/rockchip/rga2/rga2_drv.c
drivers/video/rockchip/rga2/rga2_mmu_info.c
drivers/video/rockchip/rga2/rga2_reg_info.c

index f581ccf5996a7a9ca7b3d5dacc7f78f698fbe854..20e263e895b0cf0858008369ed295784bdd9b0df 100755 (executable)
                reg = <0xff920000 0x1000>;
                interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
                clock-names = "hclk_rga", "aclk_rga"; 
-               status = "disabled";
-        };
+  };
 
        i2s: rockchip-i2s@0xff890000 {
                compatible = "rockchip-i2s";
index a24aef1992d1b81dacae9e8023755b0d45f0a2c2..7e02d841656b2a24e0917a3a0cf4240c7bb9c875 100755 (executable)
@@ -333,6 +333,7 @@ CONFIG_RK_TRSM=y
 CONFIG_DP_ANX6345=y
 CONFIG_RK32_DP=y
 CONFIG_ROCKCHIP_RGA=y
+# CONFIG_ROCKCHIP_RGA2=y
 CONFIG_LOGO=y
 # CONFIG_LOGO_LINUX_MONO is not set
 # CONFIG_LOGO_LINUX_VGA16 is not set
index 0f622fd70f20ba96ffb4735c2993670df3d3c715..bb23925a8b74413f6df711ef1eaee42ba3811620 100644 (file)
@@ -27,8 +27,6 @@
 #include <asm/io.h>\r
 #include <linux/irq.h>\r
 #include <linux/interrupt.h>\r
-#include <mach/io.h>\r
-#include <mach/irqs.h>\r
 #include <linux/fs.h>\r
 #include <asm/uaccess.h>\r
 #include <linux/miscdevice.h>\r
@@ -253,8 +251,8 @@ static void rga2_power_on(void)
                return;\r
 \r
     //clk_enable(rga2_drvdata->rga2);\r
-       clk_prepare_enable(rga2_drvdata->aclk_rga2);\r
-       clk_prepare_enable(rga2_drvdata->hclk_rga2);\r
+       //clk_prepare_enable(rga2_drvdata->aclk_rga2);\r
+       //clk_prepare_enable(rga2_drvdata->hclk_rga2);\r
        //clk_enable(rga2_drvdata->pd_rga2);\r
        wake_lock(&rga2_drvdata->wake_lock);\r
        rga2_service.enable = true;\r
@@ -279,8 +277,8 @@ static void rga2_power_off(void)
 \r
        //clk_disable(rga2_drvdata->pd_rga2);\r
     //clk_disable(rga2_drvdata->rga2);\r
-       clk_disable_unprepare(rga2_drvdata->aclk_rga2);\r
-       clk_disable_unprepare(rga2_drvdata->hclk_rga2);\r
+       //clk_disable_unprepare(rga2_drvdata->aclk_rga2);\r
+       //clk_disable_unprepare(rga2_drvdata->hclk_rga2);\r
        wake_unlock(&rga2_drvdata->wake_lock);\r
        rga2_service.enable = false;\r
 }\r
@@ -548,7 +546,7 @@ static void rga2_try_set_reg(void)
             rga2_write(virt_to_phys(rga2_service.cmd_buff), RGA2_CMD_BASE);\r
 \r
 #if RGA2_TEST\r
-            if(rga2_flag)\r
+            if(1)//rga2_flag)\r
             {\r
                 //printk(KERN_DEBUG "cmd_addr = %.8x\n", rga_read(RGA_CMD_ADDR));\r
                 uint32_t i, *p;\r
@@ -573,7 +571,7 @@ static void rga2_try_set_reg(void)
             atomic_set(&reg->session->done, 0);\r
             rga2_write(0x1, RGA2_CMD_CTRL);\r
 #if RGA2_TEST\r
-            if(rga2_flag)\r
+            if(1)//rga2_flag)\r
             {\r
                 uint32_t i;\r
                 printk("CMD_READ_BACK_REG\n");\r
@@ -665,20 +663,13 @@ static void rga2_del_running_list_timeout(void)
     }\r
 }\r
 \r
-\r
-static void rga2_mem_addr_sel(struct rga2_req *req)\r
-{\r
-}\r
-\r
-\r
 static int rga2_blit(rga2_session *session, struct rga2_req *req)\r
 {\r
     int ret = -1;\r
     int num = 0;\r
     struct rga2_reg *reg;\r
 \r
-    do\r
-    {\r
+    do {\r
         /* check value if legal */\r
         ret = rga2_check_param(req);\r
        if(ret == -EINVAL) {\r
@@ -709,7 +700,6 @@ static int rga2_blit_async(rga2_session *session, struct rga2_req *req)
        int ret = -1;\r
 \r
     #if RGA2_TEST_MSG\r
-    //printk("*** rga_blit_async proc ***\n");\r
     if (req->src.format >= 0x10) {\r
         print_info(req);\r
         rga2_flag = 1;\r
@@ -995,16 +985,15 @@ static struct miscdevice rga2_dev ={
     .fops  = &rga2_fops,\r
 };\r
 \r
-static const struct of_device_id rockchip_rga_of_match[] = {\r
-       { .compatible = "rockchip,rga", .data = NULL, },\r
+static const struct of_device_id rockchip_rga_dt_ids[] = {\r
+       { .compatible = "rockchip,rga", },\r
        {},\r
 };\r
 \r
-static int __devinit rga2_drv_probe(struct platform_device *pdev)\r
+static int rga2_drv_probe(struct platform_device *pdev)\r
 {\r
        struct rga2_drvdata_t *data;\r
     struct resource *res;\r
-    struct device_node *np = pdev->dev.of_node;\r
        int ret = 0;\r
 \r
        mutex_init(&rga2_service.lock);\r
@@ -1026,8 +1015,8 @@ static int __devinit rga2_drv_probe(struct platform_device *pdev)
 \r
        //data->pd_rga2 = clk_get(NULL, "pd_rga");\r
     //data->rga2 = clk_get(NULL, "rga");\r
-       data->aclk_rga = devm_clk_get(&pdev->dev, "aclk_rga");\r
-    data->hclk_rga = devm_clk_get(&pdev->dev, "hclk_rga");\r
+       //data->aclk_rga2 = devm_clk_get(&pdev->dev, "aclk_rga");\r
+    //data->hclk_rga2 = devm_clk_get(&pdev->dev, "hclk_rga");\r
 \r
        /* map the registers */\r
        res = platform_get_resource(pdev, IORESOURCE_MEM, 0);\r
@@ -1091,8 +1080,8 @@ static int rga2_drv_remove(struct platform_device *pdev)
 \r
        //clk_put(data->pd_rga2);\r
     //clk_put(data->rga2);\r
-       devm_clk_put(&pdev->dev, data->aclk_rga2);\r
-       devm_clk_put(&pdev->dev, data->hclk_rga2);\r
+       //devm_clk_put(&pdev->dev, data->aclk_rga2);\r
+       //devm_clk_put(&pdev->dev, data->hclk_rga2);\r
 \r
        kfree(data);\r
        return 0;\r
@@ -1100,10 +1089,11 @@ static int rga2_drv_remove(struct platform_device *pdev)
 \r
 static struct platform_driver rga2_driver = {\r
        .probe          = rga2_drv_probe,\r
-       .remove         = __devexit_p(rga2_drv_remove),\r
+       .remove         = rga2_drv_remove,\r
        .driver         = {\r
                .owner  = THIS_MODULE,\r
                .name   = "rga",\r
+               .of_match_table = of_match_ptr(rockchip_rga_dt_ids),\r
        },\r
 };\r
 \r
@@ -1202,7 +1192,7 @@ void rga2_test_0(void)
     atomic_set(&session.num_done, 0);\r
        //file->private_data = (void *)session;\r
 \r
-    fb = rk_get_fb(0);\r
+    //fb = rk_get_fb(0);\r
 \r
     memset(&req, 0, sizeof(struct rga2_req));\r
     src = kmalloc(800*480*4, GFP_KERNEL);\r
index f29353e8543c31d9802210366668a06d41805691..35529aeac04676c18b17cfcdf145f4f9a77fd817 100644 (file)
@@ -85,7 +85,7 @@ static int rga2_mmu_buf_get_try(struct rga2_mmu_buf_t *t, uint32_t size)
     return 0;\r
 }\r
 \r
-\r
+#if 0\r
 static int rga2_mmu_buf_cal(struct rga2_mmu_buf_t *t, uint32_t size)\r
 {\r
     if((t->front + size) > t->back) {\r
@@ -95,6 +95,7 @@ static int rga2_mmu_buf_cal(struct rga2_mmu_buf_t *t, uint32_t size)
         return 0;\r
     }\r
 }\r
+#endif\r
 \r
 \r
 \r
index bc38091e9a4e09bd2f88c994b386f43991682c95..934bb6d204a8a53ea5a9032f507b09df5524c315 100644 (file)
@@ -15,8 +15,6 @@
 #include <asm/io.h>\r
 #include <linux/irq.h>\r
 #include <linux/interrupt.h>\r
-#include <mach/io.h>\r
-#include <mach/irqs.h>\r
 #include <linux/fs.h>\r
 #include <asm/uaccess.h>\r
 #include <linux/miscdevice.h>\r