diff --git a/drivers/media/video/gspca/m5602/m5602_po1030.c b/drivers/media/video/gspca/m5602/m5602_po1030.c
index ee8e496..af0e937 100644
--- a/drivers/media/video/gspca/m5602/m5602_po1030.c
+++ b/drivers/media/video/gspca/m5602/m5602_po1030.c
@@ -321,7 +321,34 @@
 
 int po1030_start(struct sd *sd)
 {
+	struct cam *cam = &sd->gspca_dev.cam;
 	int i, err = 0;
+	int width = cam->cam_mode[sd->gspca_dev.curr_mode].width;
+	int height = cam->cam_mode[sd->gspca_dev.curr_mode].height;
+	u8 data;
+
+	switch (width) {
+	case 640:
+		data = ((width + 7) >> 8) & 0xff;
+		err = m5602_write_sensor(sd, PO1030_WINDOWWIDTH_H, &data, 1);
+		if (err < 0)
+			return err;
+
+		data = (width + 7) & 0xff;
+		err = m5602_write_sensor(sd, PO1030_WINDOWWIDTH_L, &data, 1);
+		if (err < 0)
+			return err;
+
+		data = ((height + 3) >> 8) & 0xff;
+		err = m5602_write_sensor(sd, PO1030_WINDOWHEIGHT_H, &data, 1);
+		if (err < 0)
+			return err;
+
+		data = (height + 3) & 0xff;
+		err = m5602_write_sensor(sd, PO1030_WINDOWHEIGHT_L, &data, 1);
+		break;
+	}
+
 	/* Synthesize the vsync/hsync setup */
 	for (i = 0; i < ARRAY_SIZE(start_po1030) && !err; i++) {
 		if (start_po1030[i][0] == BRIDGE)
@@ -330,7 +357,7 @@
 		else if (start_po1030[i][0] == SENSOR) {
 			u8 data = start_po1030[i][2];
 			err = m5602_write_sensor(sd,
-					start_po1030[i][1], &data, 1);
+				start_po1030[i][1], &data, 1);
 		}
 	}
 	return err;
diff --git a/drivers/media/video/gspca/m5602/m5602_po1030.h b/drivers/media/video/gspca/m5602/m5602_po1030.h
index fb0accf..b47f590 100644
--- a/drivers/media/video/gspca/m5602/m5602_po1030.h
+++ b/drivers/media/video/gspca/m5602/m5602_po1030.h
@@ -272,17 +272,6 @@
 
 static const unsigned char start_po1030[][3] =
 {
-	/* Set the window width to 647 */
-	{SENSOR, PO1030_WINDOWWIDTH_H, 0x02},
-	{SENSOR, PO1030_WINDOWWIDTH_L, 0x87},
-
-	/* Set the window height to 483 */
-	{SENSOR, PO1030_WINDOWHEIGHT_H, 0x01},
-	{SENSOR, PO1030_WINDOWHEIGHT_L, 0xe3},
-
-	{BRIDGE, M5602_XB_SEN_CLK_DIV, 0x06},
-	{BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0},
-	{BRIDGE, M5602_XB_ADC_CTRL, 0xc0},
 	{BRIDGE, M5602_XB_SENSOR_TYPE, 0x0c},
 	{BRIDGE, M5602_XB_LINE_OF_FRAME_H, 0x81},
 	{BRIDGE, M5602_XB_PIX_OF_LINE_H, 0x82},
