mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-06 10:58:48 +09:00
media: i2c: rk628: rk628_clk_set_rate need after version check access
Fixes: dd812e1c19 ("media: i2c: rk628: set CPLL_REF_CLK to 1194M")
Signed-off-by: Jianwei Fan <jianwei.fan@rock-chips.com>
Change-Id: Ib406041a530cea8e86cee36deff267e2ec02719d
This commit is contained in:
@@ -2015,9 +2015,14 @@ static int rk628_bt1120_probe(struct i2c_client *client,
|
||||
|
||||
rk628_bt1120_power_on(bt1120);
|
||||
rk628_cru_initialize(rk628);
|
||||
rk628_clk_set_rate(rk628, CGU_CLK_CPLL, CPLL_REF_CLK);
|
||||
|
||||
rk628_version_parse(rk628);
|
||||
if (rk628->version == RK628_UNKNOWN) {
|
||||
v4l2_err(sd, "can't get rk628 version\n");
|
||||
err = -ENODEV;
|
||||
goto power_off;
|
||||
}
|
||||
rk628_clk_set_rate(rk628, CGU_CLK_CPLL, CPLL_REF_CLK);
|
||||
|
||||
#ifdef CONFIG_VIDEO_V4L2_SUBDEV_API
|
||||
v4l2_i2c_subdev_init(sd, client, &rk628_bt1120_ops);
|
||||
@@ -2166,6 +2171,7 @@ err_hdl:
|
||||
mutex_destroy(&bt1120->confctl_mutex);
|
||||
media_entity_cleanup(&sd->entity);
|
||||
v4l2_ctrl_handler_free(&bt1120->hdl);
|
||||
power_off:
|
||||
rk628_bt1120_power_off(bt1120);
|
||||
return err;
|
||||
}
|
||||
|
||||
@@ -3439,9 +3439,14 @@ static int rk628_csi_probe(struct i2c_client *client,
|
||||
|
||||
rk628_csi_power_on(csi);
|
||||
rk628_cru_initialize(csi->rk628);
|
||||
rk628_clk_set_rate(rk628, CGU_CLK_CPLL, CPLL_REF_CLK);
|
||||
|
||||
rk628_version_parse(rk628);
|
||||
if (rk628->version == RK628_UNKNOWN) {
|
||||
v4l2_err(sd, "can't get rk628 version\n");
|
||||
err = -ENODEV;
|
||||
goto power_off;
|
||||
}
|
||||
rk628_clk_set_rate(rk628, CGU_CLK_CPLL, CPLL_REF_CLK);
|
||||
|
||||
if (rk628->version >= RK628F_VERSION) {
|
||||
err = rk628_csi_get_multi_dev_info(csi);
|
||||
|
||||
Reference in New Issue
Block a user