V4L/DVB (13656): tw9910: tw9910_set_hsync clean up
authorKuninori Morimoto <morimoto.kuninori@renesas.com>
Fri, 11 Dec 2009 14:34:51 +0000 (11:34 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Wed, 16 Dec 2009 11:27:25 +0000 (09:27 -0200)
tw9910_set_hsync should use tw9910_mask_set to set bits 2-0

Signed-off-by: Kuninori Morimoto <morimoto.kuninori@renesas.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 c21acedcf027524c149ee65945f4a691612d0274..2256ba6e614721ad00ddd3a55ad86e2bf6297d40 100644 (file)
@@ -371,6 +371,19 @@ static struct tw9910_priv *to_tw9910(const struct i2c_client *client)
                            subdev);
 }
 
+static int tw9910_mask_set(struct i2c_client *client, u8 command,
+                          u8 mask, u8 set)
+{
+       s32 val = i2c_smbus_read_byte_data(client, command);
+       if (val < 0)
+               return val;
+
+       val &= ~mask;
+       val |= set & mask;
+
+       return i2c_smbus_write_byte_data(client, command, val);
+}
+
 static int tw9910_set_scale(struct i2c_client *client,
                            const struct tw9910_scale_ctrl *scale)
 {
@@ -445,14 +458,9 @@ static int tw9910_set_hsync(struct i2c_client *client,
                return ret;
 
        /* bit 2 - 0 */
-       ret = i2c_smbus_read_byte_data(client, HSLOWCTL);
-       if (ret < 0)
-               return ret;
-
-       ret = i2c_smbus_write_byte_data(client, HSLOWCTL,
-                                       (ret & 0x88)                 |
-                                       (hsync->start & 0x0007) << 4 |
-                                       (hsync->end   & 0x0007));
+       ret = tw9910_mask_set(client, HSLOWCTL, 0x77,
+                             (hsync->start & 0x0007) << 4 |
+                             (hsync->end   & 0x0007));
 
        return ret;
 }
@@ -471,19 +479,6 @@ static int tw9910_write_array(struct i2c_client *client,
        return 0;
 }
 
-static int tw9910_mask_set(struct i2c_client *client, u8 command,
-                          u8 mask, u8 set)
-{
-       s32 val = i2c_smbus_read_byte_data(client, command);
-       if (val < 0)
-               return val;
-
-       val &= ~mask;
-       val |= set & mask;
-
-       return i2c_smbus_write_byte_data(client, command, val);
-}
-
 static void tw9910_reset(struct i2c_client *client)
 {
        tw9910_mask_set(client, ACNTL1, SRESET, SRESET);