soc-camera: return -ENODEV if sensor is missing

Update the soc-camera i2c code to return -ENODEV if
a camera sensor is missing instead of -ENOMEM.

Signed-off-by: Magnus Damm <damm@opensource.se>
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
Magnus Damm 2010-02-09 17:40:40 +09:00 committed by Mauro Carvalho Chehab
parent 6b727c68ea
commit d74f841c32

View File

@ -846,10 +846,8 @@ static int soc_camera_init_i2c(struct soc_camera_device *icd,
struct soc_camera_host *ici = to_soc_camera_host(icd->dev.parent); struct soc_camera_host *ici = to_soc_camera_host(icd->dev.parent);
struct i2c_adapter *adap = i2c_get_adapter(icl->i2c_adapter_id); struct i2c_adapter *adap = i2c_get_adapter(icl->i2c_adapter_id);
struct v4l2_subdev *subdev; struct v4l2_subdev *subdev;
int ret;
if (!adap) { if (!adap) {
ret = -ENODEV;
dev_err(&icd->dev, "Cannot get I2C adapter #%d. No driver?\n", dev_err(&icd->dev, "Cannot get I2C adapter #%d. No driver?\n",
icl->i2c_adapter_id); icl->i2c_adapter_id);
goto ei2cga; goto ei2cga;
@ -859,10 +857,8 @@ static int soc_camera_init_i2c(struct soc_camera_device *icd,
subdev = v4l2_i2c_new_subdev_board(&ici->v4l2_dev, adap, subdev = v4l2_i2c_new_subdev_board(&ici->v4l2_dev, adap,
icl->module_name, icl->board_info, NULL); icl->module_name, icl->board_info, NULL);
if (!subdev) { if (!subdev)
ret = -ENOMEM;
goto ei2cnd; goto ei2cnd;
}
client = subdev->priv; client = subdev->priv;
@ -873,7 +869,7 @@ static int soc_camera_init_i2c(struct soc_camera_device *icd,
ei2cnd: ei2cnd:
i2c_put_adapter(adap); i2c_put_adapter(adap);
ei2cga: ei2cga:
return ret; return -ENODEV;
} }
static void soc_camera_free_i2c(struct soc_camera_device *icd) static void soc_camera_free_i2c(struct soc_camera_device *icd)