From 118ec0fa144daaec93107d11acada9a4e1565b7b Mon Sep 17 00:00:00 2001 From: Cai YiWei Date: Tue, 29 Mar 2022 14:50:51 +0800 Subject: [PATCH] media: rockchip: isp: vicap->isp online set clk according to sensor rate Change-Id: I28afea949121509221e2b4ef355455eefdf39dbb Signed-off-by: Cai YiWei --- drivers/media/platform/rockchip/isp/dev.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/media/platform/rockchip/isp/dev.c b/drivers/media/platform/rockchip/isp/dev.c index 3999cfed37dc..70b5558ae737 100644 --- a/drivers/media/platform/rockchip/isp/dev.c +++ b/drivers/media/platform/rockchip/isp/dev.c @@ -174,7 +174,7 @@ static int __isp_pipeline_s_isp_clk(struct rkisp_pipeline *p) u64 data_rate; int i; - if (dev->isp_inp & (INP_RAWRD0 | INP_RAWRD1 | INP_RAWRD2 | INP_CIF)) { + if (dev->isp_inp & (INP_RAWRD0 | INP_RAWRD1 | INP_RAWRD2)) { for (i = 0; i < hw_dev->num_clk_rate_tbl; i++) { if (w <= hw_dev->clk_rate_tbl[i].refer_data) break; @@ -191,11 +191,12 @@ static int __isp_pipeline_s_isp_clk(struct rkisp_pipeline *p) return 0; } - /* find the subdev of active sensor */ + /* find the subdev of active sensor or vicap itf */ sd = p->subdevs[0]; for (i = 0; i < p->num_subdevs; i++) { sd = p->subdevs[i]; - if (sd->entity.function == MEDIA_ENT_F_CAM_SENSOR) + if (sd->entity.function == MEDIA_ENT_F_CAM_SENSOR || + sd->entity.function == MEDIA_ENT_F_PROC_VIDEO_COMPOSER) break; } @@ -230,7 +231,7 @@ end: rkisp_set_clk_rate(hw_dev->clks[0], hw_dev->clk_rate_tbl[i].clk_rate * 1000000UL); if (hw_dev->is_unite) rkisp_set_clk_rate(hw_dev->clks[5], hw_dev->clk_rate_tbl[i].clk_rate * 1000000UL); - dev_dbg(hw_dev->dev, "set isp clk = %luHz\n", clk_get_rate(hw_dev->clks[0])); + dev_info(hw_dev->dev, "set isp clk = %luHz\n", clk_get_rate(hw_dev->clks[0])); return 0; }