rockchip/vcodec: drop needless devm_clk_put

Also make sure clk is NULL if get failed.

Change-Id: I102175a108c6e7a91948d82cce97c1a1d88a071e
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
This commit is contained in:
Huang, Tao
2016-12-02 16:18:33 +08:00
parent a0789a0c38
commit ff3e800bfc

View File

@@ -568,6 +568,7 @@ static int vpu_get_clk(struct vpu_service_info *pservice)
pservice->pd_video = devm_clk_get(dev, "pd_hevc");
if (IS_ERR(pservice->pd_video)) {
dev_err(dev, "failed on clk_get pd_hevc\n");
pservice->pd_video = NULL;
return -1;
}
case VCODEC_DEVICE_ID_COMBO:
@@ -580,18 +581,21 @@ static int vpu_get_clk(struct vpu_service_info *pservice)
pservice->clk_core = devm_clk_get(dev, "clk_core");
if (IS_ERR(pservice->clk_core)) {
dev_err(dev, "failed on clk_get clk_core\n");
pservice->clk_core = NULL;
return -1;
}
case VCODEC_DEVICE_ID_VPU:
pservice->aclk_vcodec = devm_clk_get(dev, "aclk_vcodec");
if (IS_ERR(pservice->aclk_vcodec)) {
dev_err(dev, "failed on clk_get aclk_vcodec\n");
pservice->aclk_vcodec = NULL;
return -1;
}
pservice->hclk_vcodec = devm_clk_get(dev, "hclk_vcodec");
if (IS_ERR(pservice->hclk_vcodec)) {
dev_err(dev, "failed on clk_get hclk_vcodec\n");
pservice->hclk_vcodec = NULL;
return -1;
}
if (pservice->pd_video == NULL) {
@@ -612,22 +616,6 @@ static int vpu_get_clk(struct vpu_service_info *pservice)
#endif
}
static void vpu_put_clk(struct vpu_service_info *pservice)
{
#if VCODEC_CLOCK_ENABLE
if (pservice->pd_video)
devm_clk_put(pservice->dev, pservice->pd_video);
if (pservice->aclk_vcodec)
devm_clk_put(pservice->dev, pservice->aclk_vcodec);
if (pservice->hclk_vcodec)
devm_clk_put(pservice->dev, pservice->hclk_vcodec);
if (pservice->clk_core)
devm_clk_put(pservice->dev, pservice->clk_core);
if (pservice->clk_cabac)
devm_clk_put(pservice->dev, pservice->clk_cabac);
#endif
}
static void vpu_reset(struct vpu_subdev_data *data)
{
struct vpu_service_info *pservice = data->pservice;
@@ -2580,7 +2568,6 @@ static int vcodec_probe(struct platform_device *pdev)
err:
pr_info("init failed\n");
vpu_service_power_off(pservice);
vpu_put_clk(pservice);
wake_lock_destroy(&pservice->wake_lock);
return ret;