From 686ec54a7ede93d905ef6e1e0c905718e6880b24 Mon Sep 17 00:00:00 2001 From: Alpha Lin Date: Sun, 4 Jan 2015 16:12:13 +0800 Subject: [PATCH] RK3036: fix vpu probe failed problem. no power domain on rk3036, but trying to enable the power domain in previous driver code. remove the power domain enable in this revision on rk3036 platform. Signed-off-by: Alpha Lin --- arch/arm/mach-rockchip/vcodec_service.c | 77 ++++++++++++------------- 1 file changed, 38 insertions(+), 39 deletions(-) diff --git a/arch/arm/mach-rockchip/vcodec_service.c b/arch/arm/mach-rockchip/vcodec_service.c index e271f60ffc67..293e08ccc8c2 100644 --- a/arch/arm/mach-rockchip/vcodec_service.c +++ b/arch/arm/mach-rockchip/vcodec_service.c @@ -547,49 +547,48 @@ static void vcodec_exit_mode(struct vpu_service_info *pservice) static int vpu_get_clk(struct vpu_service_info *pservice) { #if VCODEC_CLOCK_ENABLE - do { - switch (pservice->dev_id) { - case VCODEC_DEVICE_ID_HEVC: - pservice->clk_cabac = devm_clk_get(pservice->dev, "clk_cabac"); - if (IS_ERR(pservice->clk_cabac)) { - dev_err(pservice->dev, "failed on clk_get clk_cabac\n"); - break; - } - - pservice->pd_video = devm_clk_get(pservice->dev, "pd_hevc"); - if (IS_ERR(pservice->pd_video)) { - dev_err(pservice->dev, "failed on clk_get pd_hevc\n"); - break; - } - case VCODEC_DEVICE_ID_COMBO: - pservice->clk_core = devm_clk_get(pservice->dev, "clk_core"); - if (IS_ERR(pservice->clk_core)) { - dev_err(pservice->dev, "failed on clk_get clk_core\n"); - break; - } - case VCODEC_DEVICE_ID_VPU: - pservice->aclk_vcodec = devm_clk_get(pservice->dev, "aclk_vcodec"); - if (IS_ERR(pservice->aclk_vcodec)) { - dev_err(pservice->dev, "failed on clk_get aclk_vcodec\n"); - break; - } + switch (pservice->dev_id) { + case VCODEC_DEVICE_ID_HEVC: + pservice->clk_cabac = devm_clk_get(pservice->dev, "clk_cabac"); + if (IS_ERR(pservice->clk_cabac)) { + dev_err(pservice->dev, "failed on clk_get clk_cabac\n"); + return -1; + } - pservice->hclk_vcodec = devm_clk_get(pservice->dev, "hclk_vcodec"); - if (IS_ERR(pservice->hclk_vcodec)) { - dev_err(pservice->dev, "failed on clk_get hclk_vcodec\n"); - break; - } - if (pservice->pd_video == NULL) - pservice->pd_video = devm_clk_get(pservice->dev, "pd_video"); - break; - default: - ; + pservice->pd_video = devm_clk_get(pservice->dev, "pd_hevc"); + if (IS_ERR(pservice->pd_video)) { + dev_err(pservice->dev, "failed on clk_get pd_hevc\n"); + return -1; + } + case VCODEC_DEVICE_ID_COMBO: + pservice->clk_core = devm_clk_get(pservice->dev, "clk_core"); + if (IS_ERR(pservice->clk_core)) { + dev_err(pservice->dev, "failed on clk_get clk_core\n"); + return -1; + } + case VCODEC_DEVICE_ID_VPU: + pservice->aclk_vcodec = devm_clk_get(pservice->dev, "aclk_vcodec"); + if (IS_ERR(pservice->aclk_vcodec)) { + dev_err(pservice->dev, "failed on clk_get aclk_vcodec\n"); + return -1; } - return 0; - } while (0); + pservice->hclk_vcodec = devm_clk_get(pservice->dev, "hclk_vcodec"); + if (IS_ERR(pservice->hclk_vcodec)) { + dev_err(pservice->dev, "failed on clk_get hclk_vcodec\n"); + return -1; + } + if (pservice->pd_video == NULL) { + pservice->pd_video = devm_clk_get(pservice->dev, "pd_video"); + if (IS_ERR(pservice->pd_video)) + pservice->pd_video = NULL; + } + break; + default: + ; + } - return -1; + return 0; #else return 0; #endif -- 2.34.1