From 0139668219f0469230fd9d5836db616f9d13a6a6 Mon Sep 17 00:00:00 2001 From: zsq Date: Thu, 6 Mar 2014 17:35:38 +0800 Subject: [PATCH] rga2 on rk3288 FPGA is valid --- arch/arm/boot/dts/rk3288.dtsi | 3 +- arch/arm/configs/rockchip_defconfig | 1 + drivers/video/rockchip/rga2/rga2_drv.c | 44 ++++++++------------- drivers/video/rockchip/rga2/rga2_mmu_info.c | 3 +- drivers/video/rockchip/rga2/rga2_reg_info.c | 2 - 5 files changed, 21 insertions(+), 32 deletions(-) diff --git a/arch/arm/boot/dts/rk3288.dtsi b/arch/arm/boot/dts/rk3288.dtsi index f581ccf5996a..20e263e895b0 100755 --- a/arch/arm/boot/dts/rk3288.dtsi +++ b/arch/arm/boot/dts/rk3288.dtsi @@ -222,8 +222,7 @@ reg = <0xff920000 0x1000>; interrupts = ; clock-names = "hclk_rga", "aclk_rga"; - status = "disabled"; - }; + }; i2s: rockchip-i2s@0xff890000 { compatible = "rockchip-i2s"; diff --git a/arch/arm/configs/rockchip_defconfig b/arch/arm/configs/rockchip_defconfig index a24aef1992d1..7e02d841656b 100755 --- a/arch/arm/configs/rockchip_defconfig +++ b/arch/arm/configs/rockchip_defconfig @@ -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 diff --git a/drivers/video/rockchip/rga2/rga2_drv.c b/drivers/video/rockchip/rga2/rga2_drv.c index 0f622fd70f20..bb23925a8b74 100644 --- a/drivers/video/rockchip/rga2/rga2_drv.c +++ b/drivers/video/rockchip/rga2/rga2_drv.c @@ -27,8 +27,6 @@ #include #include #include -#include -#include #include #include #include @@ -253,8 +251,8 @@ static void rga2_power_on(void) return; //clk_enable(rga2_drvdata->rga2); - clk_prepare_enable(rga2_drvdata->aclk_rga2); - clk_prepare_enable(rga2_drvdata->hclk_rga2); + //clk_prepare_enable(rga2_drvdata->aclk_rga2); + //clk_prepare_enable(rga2_drvdata->hclk_rga2); //clk_enable(rga2_drvdata->pd_rga2); wake_lock(&rga2_drvdata->wake_lock); rga2_service.enable = true; @@ -279,8 +277,8 @@ static void rga2_power_off(void) //clk_disable(rga2_drvdata->pd_rga2); //clk_disable(rga2_drvdata->rga2); - clk_disable_unprepare(rga2_drvdata->aclk_rga2); - clk_disable_unprepare(rga2_drvdata->hclk_rga2); + //clk_disable_unprepare(rga2_drvdata->aclk_rga2); + //clk_disable_unprepare(rga2_drvdata->hclk_rga2); wake_unlock(&rga2_drvdata->wake_lock); rga2_service.enable = false; } @@ -548,7 +546,7 @@ static void rga2_try_set_reg(void) rga2_write(virt_to_phys(rga2_service.cmd_buff), RGA2_CMD_BASE); #if RGA2_TEST - if(rga2_flag) + if(1)//rga2_flag) { //printk(KERN_DEBUG "cmd_addr = %.8x\n", rga_read(RGA_CMD_ADDR)); uint32_t i, *p; @@ -573,7 +571,7 @@ static void rga2_try_set_reg(void) atomic_set(®->session->done, 0); rga2_write(0x1, RGA2_CMD_CTRL); #if RGA2_TEST - if(rga2_flag) + if(1)//rga2_flag) { uint32_t i; printk("CMD_READ_BACK_REG\n"); @@ -665,20 +663,13 @@ static void rga2_del_running_list_timeout(void) } } - -static void rga2_mem_addr_sel(struct rga2_req *req) -{ -} - - static int rga2_blit(rga2_session *session, struct rga2_req *req) { int ret = -1; int num = 0; struct rga2_reg *reg; - do - { + do { /* check value if legal */ ret = rga2_check_param(req); if(ret == -EINVAL) { @@ -709,7 +700,6 @@ static int rga2_blit_async(rga2_session *session, struct rga2_req *req) int ret = -1; #if RGA2_TEST_MSG - //printk("*** rga_blit_async proc ***\n"); if (req->src.format >= 0x10) { print_info(req); rga2_flag = 1; @@ -995,16 +985,15 @@ static struct miscdevice rga2_dev ={ .fops = &rga2_fops, }; -static const struct of_device_id rockchip_rga_of_match[] = { - { .compatible = "rockchip,rga", .data = NULL, }, +static const struct of_device_id rockchip_rga_dt_ids[] = { + { .compatible = "rockchip,rga", }, {}, }; -static int __devinit rga2_drv_probe(struct platform_device *pdev) +static int rga2_drv_probe(struct platform_device *pdev) { struct rga2_drvdata_t *data; struct resource *res; - struct device_node *np = pdev->dev.of_node; int ret = 0; mutex_init(&rga2_service.lock); @@ -1026,8 +1015,8 @@ static int __devinit rga2_drv_probe(struct platform_device *pdev) //data->pd_rga2 = clk_get(NULL, "pd_rga"); //data->rga2 = clk_get(NULL, "rga"); - data->aclk_rga = devm_clk_get(&pdev->dev, "aclk_rga"); - data->hclk_rga = devm_clk_get(&pdev->dev, "hclk_rga"); + //data->aclk_rga2 = devm_clk_get(&pdev->dev, "aclk_rga"); + //data->hclk_rga2 = devm_clk_get(&pdev->dev, "hclk_rga"); /* map the registers */ res = platform_get_resource(pdev, IORESOURCE_MEM, 0); @@ -1091,8 +1080,8 @@ static int rga2_drv_remove(struct platform_device *pdev) //clk_put(data->pd_rga2); //clk_put(data->rga2); - devm_clk_put(&pdev->dev, data->aclk_rga2); - devm_clk_put(&pdev->dev, data->hclk_rga2); + //devm_clk_put(&pdev->dev, data->aclk_rga2); + //devm_clk_put(&pdev->dev, data->hclk_rga2); kfree(data); return 0; @@ -1100,10 +1089,11 @@ static int rga2_drv_remove(struct platform_device *pdev) static struct platform_driver rga2_driver = { .probe = rga2_drv_probe, - .remove = __devexit_p(rga2_drv_remove), + .remove = rga2_drv_remove, .driver = { .owner = THIS_MODULE, .name = "rga", + .of_match_table = of_match_ptr(rockchip_rga_dt_ids), }, }; @@ -1202,7 +1192,7 @@ void rga2_test_0(void) atomic_set(&session.num_done, 0); //file->private_data = (void *)session; - fb = rk_get_fb(0); + //fb = rk_get_fb(0); memset(&req, 0, sizeof(struct rga2_req)); src = kmalloc(800*480*4, GFP_KERNEL); diff --git a/drivers/video/rockchip/rga2/rga2_mmu_info.c b/drivers/video/rockchip/rga2/rga2_mmu_info.c index f29353e8543c..35529aeac046 100644 --- a/drivers/video/rockchip/rga2/rga2_mmu_info.c +++ b/drivers/video/rockchip/rga2/rga2_mmu_info.c @@ -85,7 +85,7 @@ static int rga2_mmu_buf_get_try(struct rga2_mmu_buf_t *t, uint32_t size) return 0; } - +#if 0 static int rga2_mmu_buf_cal(struct rga2_mmu_buf_t *t, uint32_t size) { if((t->front + size) > t->back) { @@ -95,6 +95,7 @@ static int rga2_mmu_buf_cal(struct rga2_mmu_buf_t *t, uint32_t size) return 0; } } +#endif diff --git a/drivers/video/rockchip/rga2/rga2_reg_info.c b/drivers/video/rockchip/rga2/rga2_reg_info.c index bc38091e9a4e..934bb6d204a8 100644 --- a/drivers/video/rockchip/rga2/rga2_reg_info.c +++ b/drivers/video/rockchip/rga2/rga2_reg_info.c @@ -15,8 +15,6 @@ #include #include #include -#include -#include #include #include #include -- 2.34.1