Commit 24644035 authored by Sakari Ailus's avatar Sakari Ailus Committed by Mauro Carvalho Chehab

[media] smiapp: Return correct return value in smiapp_registered()

Prepare for supporting systems using the Device tree. Should the resources
not be available at the time of driver probe(), the EPROBE_DEFER error code
must be also returned from its probe function.
Signed-off-by: default avatarSakari Ailus <sakari.ailus@iki.fi>
Acked-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: default avatarMauro Carvalho Chehab <m.chehab@samsung.com>
parent 9945374e
...@@ -2358,14 +2358,14 @@ static int smiapp_registered(struct v4l2_subdev *subdev) ...@@ -2358,14 +2358,14 @@ static int smiapp_registered(struct v4l2_subdev *subdev)
sensor->vana = devm_regulator_get(&client->dev, "vana"); sensor->vana = devm_regulator_get(&client->dev, "vana");
if (IS_ERR(sensor->vana)) { if (IS_ERR(sensor->vana)) {
dev_err(&client->dev, "could not get regulator for vana\n"); dev_err(&client->dev, "could not get regulator for vana\n");
return -ENODEV; return PTR_ERR(sensor->vana);
} }
if (!sensor->platform_data->set_xclk) { if (!sensor->platform_data->set_xclk) {
sensor->ext_clk = devm_clk_get(&client->dev, "ext_clk"); sensor->ext_clk = devm_clk_get(&client->dev, "ext_clk");
if (IS_ERR(sensor->ext_clk)) { if (IS_ERR(sensor->ext_clk)) {
dev_err(&client->dev, "could not get clock\n"); dev_err(&client->dev, "could not get clock\n");
return -ENODEV; return PTR_ERR(sensor->ext_clk);
} }
rval = clk_set_rate(sensor->ext_clk, rval = clk_set_rate(sensor->ext_clk,
...@@ -2374,18 +2374,19 @@ static int smiapp_registered(struct v4l2_subdev *subdev) ...@@ -2374,18 +2374,19 @@ static int smiapp_registered(struct v4l2_subdev *subdev)
dev_err(&client->dev, dev_err(&client->dev,
"unable to set clock freq to %u\n", "unable to set clock freq to %u\n",
sensor->platform_data->ext_clk); sensor->platform_data->ext_clk);
return -ENODEV; return rval;
} }
} }
if (gpio_is_valid(sensor->platform_data->xshutdown)) { if (gpio_is_valid(sensor->platform_data->xshutdown)) {
if (devm_gpio_request_one(&client->dev, rval = devm_gpio_request_one(
sensor->platform_data->xshutdown, 0, &client->dev, sensor->platform_data->xshutdown, 0,
"SMIA++ xshutdown") != 0) { "SMIA++ xshutdown");
if (rval < 0) {
dev_err(&client->dev, dev_err(&client->dev,
"unable to acquire reset gpio %d\n", "unable to acquire reset gpio %d\n",
sensor->platform_data->xshutdown); sensor->platform_data->xshutdown);
return -ENODEV; return rval;
} }
} }
......
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