|
@@ -1146,7 +1146,7 @@ static int ov772x_set_fmt(struct v4l2_subdev *sd,
|
|
|
static int ov772x_video_probe(struct ov772x_priv *priv)
|
|
|
{
|
|
|
struct i2c_client *client = v4l2_get_subdevdata(&priv->subdev);
|
|
|
- u8 pid, ver;
|
|
|
+ int pid, ver, midh, midl;
|
|
|
const char *devname;
|
|
|
int ret;
|
|
|
|
|
@@ -1156,7 +1156,11 @@ static int ov772x_video_probe(struct ov772x_priv *priv)
|
|
|
|
|
|
/* Check and show product ID and manufacturer ID. */
|
|
|
pid = ov772x_read(client, PID);
|
|
|
+ if (pid < 0)
|
|
|
+ return pid;
|
|
|
ver = ov772x_read(client, VER);
|
|
|
+ if (ver < 0)
|
|
|
+ return ver;
|
|
|
|
|
|
switch (VERSION(pid, ver)) {
|
|
|
case OV7720:
|
|
@@ -1172,13 +1176,17 @@ static int ov772x_video_probe(struct ov772x_priv *priv)
|
|
|
goto done;
|
|
|
}
|
|
|
|
|
|
+ midh = ov772x_read(client, MIDH);
|
|
|
+ if (midh < 0)
|
|
|
+ return midh;
|
|
|
+ midl = ov772x_read(client, MIDL);
|
|
|
+ if (midl < 0)
|
|
|
+ return midl;
|
|
|
+
|
|
|
dev_info(&client->dev,
|
|
|
"%s Product ID %0x:%0x Manufacturer ID %x:%x\n",
|
|
|
- devname,
|
|
|
- pid,
|
|
|
- ver,
|
|
|
- ov772x_read(client, MIDH),
|
|
|
- ov772x_read(client, MIDL));
|
|
|
+ devname, pid, ver, midh, midl);
|
|
|
+
|
|
|
ret = v4l2_ctrl_handler_setup(&priv->hdl);
|
|
|
|
|
|
done:
|