Commit 65dd3e59 authored by Lubomir Rintel's avatar Lubomir Rintel Committed by Greg Kroah-Hartman

media: ov7670: make "xclk" clock optional

commit 786fa584 upstream.

When the "xclk" clock was added, it was made mandatory. This broke the
driver on an OLPC plaform which doesn't know such clock. Make it
optional.

Tested on a OLPC XO-1 laptop.

Fixes: 0a024d63 ("[media] ov7670: get xclk")

Cc: stable@vger.kernel.org # 4.11+
Signed-off-by: default avatarLubomir Rintel <lkundrak@v3.sk>
Signed-off-by: default avatarSakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent d2aaeb9a
......@@ -1612,22 +1612,28 @@ static int ov7670_probe(struct i2c_client *client,
info->pclk_hb_disable = true;
}
info->clk = devm_clk_get(&client->dev, "xclk");
if (IS_ERR(info->clk))
return PTR_ERR(info->clk);
info->clk = devm_clk_get(&client->dev, "xclk"); /* optional */
if (IS_ERR(info->clk)) {
ret = PTR_ERR(info->clk);
if (ret == -ENOENT)
info->clk = NULL;
else
return ret;
}
if (info->clk) {
ret = clk_prepare_enable(info->clk);
if (ret)
return ret;
ret = ov7670_init_gpio(client, info);
if (ret)
goto clk_disable;
info->clock_speed = clk_get_rate(info->clk) / 1000000;
if (info->clock_speed < 10 || info->clock_speed > 48) {
ret = -EINVAL;
goto clk_disable;
}
}
ret = ov7670_init_gpio(client, info);
if (ret)
goto clk_disable;
/* Make sure it's an ov7670 */
ret = ov7670_detect(sd);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment