Hi Jacopo,

Thank you for the patch.

On Monday 19 Jun 2017 19:04:40 Jacopo Mondi wrote:
> Reads of chip identification code (both on registers 0x00 and 0xff)
> always return 0x00.

This shouldn't be the case. It might mean that your I2C master controller 
doesn't handle reads correctly. I don't think this patch is correct.

> Skip chip identification to have the device complete probing.
>
> Signed-off-by: Jacopo Mondi <[email protected]>
> ---
>  drivers/media/i2c/mt9m111.c | 19 -------------------
>  1 file changed, 19 deletions(-)
> 
> diff --git a/drivers/media/i2c/mt9m111.c b/drivers/media/i2c/mt9m111.c
> index 72e71b7..8e86d51 100644
> --- a/drivers/media/i2c/mt9m111.c
> +++ b/drivers/media/i2c/mt9m111.c
> @@ -890,31 +890,12 @@ static struct v4l2_subdev_ops mt9m111_subdev_ops = {
>  static int mt9m111_video_probe(struct i2c_client *client)
>  {
>       struct mt9m111 *mt9m111 = to_mt9m111(client);
> -     s32 data;
>       int ret;
> 
>       ret = mt9m111_s_power(&mt9m111->subdev, 1);
>       if (ret < 0)
>               return ret;
> 
> -     data = reg_read(CHIP_VERSION);
> -
> -     switch (data) {
> -     case 0x143a: /* MT9M111 or MT9M131 */
> -             dev_info(&client->dev,
> -                     "Detected a MT9M111/MT9M131 chip ID %x\n", data);
> -             break;
> -     case 0x148c: /* MT9M112 */
> -             dev_info(&client->dev, "Detected a MT9M112 chip ID %x\n", 
data);
> -             break;
> -     default:
> -             dev_err(&client->dev,
> -                     "No MT9M111/MT9M112/MT9M131 chip detected register 
read %x\n",
> -                     data);
> -             ret = -ENODEV;
> -             goto done;
> -     }
> -
>       ret = mt9m111_init(mt9m111);
>       if (ret)
>               goto done;

-- 
Regards,

Laurent Pinchart

Reply via email to