rk3288: iep enable pd clk operation
authorljf <ljf@rock-chips.com>
Wed, 16 Apr 2014 06:43:59 +0000 (14:43 +0800)
committerljf <ljf@rock-chips.com>
Wed, 16 Apr 2014 06:45:38 +0000 (14:45 +0800)
drivers/video/rockchip/iep/iep_drv.c

index 130c681d21507dccceb667738732bd23f85f23d4..55fcf2ddfcbd52c81333c054e18cbd8bea0c8150 100755 (executable)
@@ -202,10 +202,9 @@ static void iep_power_on(void)
     //iep_soft_rst(iep_drvdata1->iep_base);\r
 \r
 #ifdef IEP_CLK_ENABLE\r
-    //clk_prepare_enable(iep_drvdata1->pd_iep);\r
+    clk_prepare_enable(iep_drvdata1->pd_iep);\r
     clk_prepare_enable(iep_drvdata1->aclk_iep);\r
     clk_prepare_enable(iep_drvdata1->hclk_iep);\r
-    //clk_prepare_enable(iep_drvdata1->aclk_vio1);\r
 #endif\r
 \r
     wake_lock(&iep_drvdata1->wake_lock);\r
@@ -233,7 +232,7 @@ static void iep_power_off(void)
 #ifdef IEP_CLK_ENABLE\r
     clk_disable_unprepare(iep_drvdata1->aclk_iep);\r
     clk_disable_unprepare(iep_drvdata1->hclk_iep);\r
-    //clk_disable(iep_drvdata1->pd_iep);\r
+    clk_disable_unprepare(iep_drvdata1->pd_iep);\r
 #endif\r
 \r
     wake_unlock(&iep_drvdata1->wake_lock);\r
@@ -788,11 +787,11 @@ static int iep_drv_probe(struct platform_device *pdev)
     iep_service.enable = false;\r
 \r
 #ifdef IEP_CLK_ENABLE\r
-    /*data->pd_iep = clk_get(NULL, "pd_display");\r
+    data->pd_iep = devm_clk_get(&pdev->dev, "pd_iep");\r
     if (IS_ERR(data->pd_iep)) {\r
         IEP_ERR("failed to find iep power down clock source.\n");\r
         goto err_clock;\r
-    }*/\r
+    }\r
 \r
     data->aclk_iep = devm_clk_get(&pdev->dev, "aclk_iep");\r
     if (IS_ERR(data->aclk_iep)) {\r
@@ -807,13 +806,6 @@ static int iep_drv_probe(struct platform_device *pdev)
         ret = -ENOENT;\r
         goto err_clock;\r
     }\r
-\r
-    /*data->aclk_vio1 = clk_get(NULL, "aclk_lcdc1_pre");\r
-    if (IS_ERR(data->aclk_vio1)) {\r
-        IEP_ERR("failed to find vio1 axi clock source.\n");\r
-        ret = -ENOENT;\r
-        goto err_clock;\r
-    }*/\r
 #endif\r
 \r
     iep_service.enable = false;\r
@@ -842,7 +834,7 @@ static int iep_drv_probe(struct platform_device *pdev)
     }\r
 \r
     /* request the IRQ */\r
-    ret = devm_request_threaded_irq(&pdev->dev, data->irq0, iep_irq, iep_isr, 0, dev_name(&pdev->dev), pdev);\r
+    ret = devm_request_threaded_irq(&pdev->dev, data->irq0, iep_irq, iep_isr, IRQF_SHARED, dev_name(&pdev->dev), pdev);\r
     if (ret) {\r
         IEP_ERR("iep request_irq failed (%d).\n", ret);\r
         goto err_irq;\r
@@ -903,11 +895,11 @@ static int iep_drv_remove(struct platform_device *pdev)
 \r
     /*if (data->aclk_vio1) {\r
         clk_put(data->aclk_vio1);\r
-    }\r
+    }*/\r
 \r
     if (data->pd_iep) {\r
-        clk_put(data->pd_iep);\r
-    }*/\r
+        devm_clk_put(&pdev->dev, data->pd_iep);\r
+    }\r
 #endif\r
 \r
     //devm_kfree(data);\r