[media] tw9910: Don't access the device in the g_mbus_fmt operation
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Wed, 18 Jul 2012 13:54:00 +0000 (10:54 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Mon, 30 Jul 2012 22:15:53 +0000 (19:15 -0300)
The g_mbus_fmt operation only needs to return the current mbus frame
format and doesn't need to configure the hardware to do so. Fix it to
avoid requiring the chip to be powered on when calling the operation.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/video/tw9910.c

index 8768efb8508ad6125e8ed534d42732d8f4e664a5..9f53eacb66e3cd89a75f14ec08b0ced3ea752385 100644 (file)
@@ -699,11 +699,9 @@ static int tw9910_g_fmt(struct v4l2_subdev *sd,
        struct tw9910_priv *priv = to_tw9910(client);
 
        if (!priv->scale) {
-               int ret;
-               u32 width = 640, height = 480;
-               ret = tw9910_set_frame(sd, &width, &height);
-               if (ret < 0)
-                       return ret;
+               priv->scale = tw9910_select_norm(priv->norm, 640, 480);
+               if (!priv->scale)
+                       return -EINVAL;
        }
 
        mf->width       = priv->scale->width;