V4L/DVB (10676): mt9m111: Call icl->reset() on mt9m111_reset().
authorAntonio Ospite <ospite@studenti.unina.it>
Mon, 23 Feb 2009 15:13:24 +0000 (12:13 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Mon, 30 Mar 2009 15:42:53 +0000 (12:42 -0300)
Call icl->reset() on mt9m111_reset().

Signed-off-by: Antonio Ospite <ospite@studenti.unina.it>
Acked-by: Robert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/video/mt9m111.c

index 6c363af165b7e0b3bafa7ca3e7c1b7263e4beb10..7e6be36f0855955f49df906c60a33438e94489b8 100644 (file)
@@ -393,6 +393,8 @@ static int mt9m111_disable(struct soc_camera_device *icd)
 
 static int mt9m111_reset(struct soc_camera_device *icd)
 {
+       struct mt9m111 *mt9m111 = container_of(icd, struct mt9m111, icd);
+       struct soc_camera_link *icl = mt9m111->client->dev.platform_data;
        int ret;
 
        ret = reg_set(RESET, MT9M111_RESET_RESET_MODE);
@@ -401,6 +403,10 @@ static int mt9m111_reset(struct soc_camera_device *icd)
        if (!ret)
                ret = reg_clear(RESET, MT9M111_RESET_RESET_MODE
                                | MT9M111_RESET_RESET_SOC);
+
+       if (icl->reset)
+               icl->reset(&mt9m111->client->dev);
+
        return ret;
 }