{
        struct i2c_client *client = v4l2_get_subdevdata(sd);
        struct tw9910_priv *priv = to_tw9910(client);
+       const unsigned hact = 720;
+       const unsigned hdelay = 15;
+       unsigned vact;
+       unsigned vdelay;
+       int ret;
 
        if (!(norm & (V4L2_STD_NTSC | V4L2_STD_PAL)))
                return -EINVAL;
 
        priv->norm = norm;
+       if (norm & V4L2_STD_525_60) {
+               vact = 240;
+               vdelay = 18;
+               ret = tw9910_mask_set(client, VVBI, 0x10, 0x10);
+       } else {
+               vact = 288;
+               vdelay = 24;
+               ret = tw9910_mask_set(client, VVBI, 0x10, 0x00);
+       }
+       if (!ret)
+               ret = i2c_smbus_write_byte_data(client, CROP_HI,
+                       ((vdelay >> 2) & 0xc0) |
+                       ((vact >> 4) & 0x30) |
+                       ((hdelay >> 6) & 0x0c) |
+                       ((hact >> 8) & 0x03));
+       if (!ret)
+               ret = i2c_smbus_write_byte_data(client, VDELAY_LO,
+                       vdelay & 0xff);
+       if (!ret)
+               ret = i2c_smbus_write_byte_data(client, VACTIVE_LO,
+                       vact & 0xff);
 
-       return 0;
+       return ret;
 }
 
 #ifdef CONFIG_VIDEO_ADV_DEBUG
                 "tw9910 Product ID %0x:%0x\n", id, priv->revision);
 
        priv->norm = V4L2_STD_NTSC;
+       priv->scale = &tw9910_ntsc_scales[0];
 
 done:
        tw9910_s_power(&priv->subdev, 0);