From 0484eb3224b879cffcf87dd862533033233c412a Mon Sep 17 00:00:00 2001 From: Cai YiWei Date: Fri, 2 Nov 2018 18:30:33 +0800 Subject: [PATCH] media: i2c: ov5695: set clk when power on Prevention clk is changed by other sensor Change-Id: I4249cfdc32f7250b8656b9d5787735370e63690d Signed-off-by: Cai YiWei --- drivers/media/i2c/ov5695.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/media/i2c/ov5695.c b/drivers/media/i2c/ov5695.c index 7046b8ad8210..1bb396f2a418 100644 --- a/drivers/media/i2c/ov5695.c +++ b/drivers/media/i2c/ov5695.c @@ -1003,6 +1003,13 @@ static int __ov5695_power_on(struct ov5695 *ov5695) u32 delay_us; struct device *dev = &ov5695->client->dev; + ret = clk_set_rate(ov5695->xvclk, OV5695_XVCLK_FREQ); + if (ret < 0) { + dev_err(dev, "Failed to set xvclk rate (24MHz)\n"); + return ret; + } + if (clk_get_rate(ov5695->xvclk) != OV5695_XVCLK_FREQ) + dev_warn(dev, "xvclk mismatched, modes are based on 24MHz\n"); ret = clk_prepare_enable(ov5695->xvclk); if (ret < 0) { dev_err(dev, "Failed to enable xvclk\n"); @@ -1306,13 +1313,6 @@ static int ov5695_probe(struct i2c_client *client, dev_err(dev, "Failed to get xvclk\n"); return -EINVAL; } - ret = clk_set_rate(ov5695->xvclk, OV5695_XVCLK_FREQ); - if (ret < 0) { - dev_err(dev, "Failed to set xvclk rate (24MHz)\n"); - return ret; - } - if (clk_get_rate(ov5695->xvclk) != OV5695_XVCLK_FREQ) - dev_warn(dev, "xvclk mismatched, modes are based on 24MHz\n"); ov5695->reset_gpio = devm_gpiod_get(dev, "reset", GPIOD_OUT_LOW); if (IS_ERR(ov5695->reset_gpio)) {