media: rockchip: isp: vicap->isp online set clk according to sensor rate

Change-Id: I28afea949121509221e2b4ef355455eefdf39dbb
Signed-off-by: Cai YiWei <cyw@rock-chips.com>
This commit is contained in:
Cai YiWei
2022-03-29 14:50:51 +08:00
committed by Tao Huang
parent da211ba628
commit 118ec0fa14

View File

@@ -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;
}