Web lists-archives.org

[PATCH] Add x_skip_left to soc_camera_device




Add x_skip_left to soc_camera_device and use it as "Beginning-of-Line
Pixel Clock Wait Count" in pxa_camera driver

Signed-off-by: Stefan Herbrechtsmeier <hbmeier@xxxxxxxxxxxxxxxxxxxx>
---
diff -r ead7cbcb4e49 linux/drivers/media/video/mt9m001.c
--- a/linux/drivers/media/video/mt9m001.c	Tue May 06 07:50:51 2008 -0300
+++ b/linux/drivers/media/video/mt9m001.c	Tue May 06 13:56:27 2008 +0200
@@ -649,18 +649,19 @@ static int mt9m001_probe(struct i2c_clie
 
 	/* Second stage probe - when a capture adapter is there */
 	icd = &mt9m001->icd;
-	icd->ops	= &mt9m001_ops;
-	icd->control	= &client->dev;
-	icd->x_min	= 20;
-	icd->y_min	= 12;
-	icd->x_current	= 20;
-	icd->y_current	= 12;
-	icd->width_min	= 48;
-	icd->width_max	= 1280;
-	icd->height_min	= 32;
-	icd->height_max	= 1024;
-	icd->y_skip_top	= 1;
-	icd->iface	= icl->bus_id;
+	icd->ops = &mt9m001_ops;
+	icd->control = &client->dev;
+	icd->x_min = 20;
+	icd->y_min = 12;
+	icd->x_current = 20;
+	icd->y_current = 12;
+	icd->width_min = 48;
+	icd->width_max = 1280;
+	icd->height_min = 32;
+	icd->height_max = 1024;
+	icd->x_skip_left = 0;
+	icd->y_skip_top = 1;
+	icd->iface = icl->bus_id;
 	/* Default datawidth - this is the only width this camera (normally)
 	 * supports. It is only with extra logic that it can support
 	 * other widths. Therefore it seems to be a sensible default. */
diff -r ead7cbcb4e49 linux/drivers/media/video/mt9v022.c
--- a/linux/drivers/media/video/mt9v022.c	Tue May 06 07:50:51 2008 -0300
+++ b/linux/drivers/media/video/mt9v022.c	Tue May 06 13:56:26 2008 +0200
@@ -774,18 +774,19 @@ static int mt9v022_probe(struct i2c_clie
 	i2c_set_clientdata(client, mt9v022);
 
 	icd = &mt9v022->icd;
-	icd->ops	= &mt9v022_ops;
-	icd->control	= &client->dev;
-	icd->x_min	= 1;
-	icd->y_min	= 4;
-	icd->x_current	= 1;
-	icd->y_current	= 4;
-	icd->width_min	= 48;
-	icd->width_max	= 752;
-	icd->height_min	= 32;
-	icd->height_max	= 480;
-	icd->y_skip_top	= 1;
-	icd->iface	= icl->bus_id;
+	icd->ops = &mt9v022_ops;
+	icd->control = &client->dev;
+	icd->x_min = 1;
+	icd->y_min = 4;
+	icd->x_current = 1;
+	icd->y_current = 4;
+	icd->width_min = 48;
+	icd->width_max = 752;
+	icd->height_min = 32;
+	icd->height_max = 480;
+	icd->x_skip_left = 0;
+	icd->y_skip_top = 1;
+	icd->iface = icl->bus_id;
 	/* Default datawidth - this is the only width this camera (normally)
 	 * supports. It is only with extra logic that it can support
 	 * other widths. Therefore it seems to be a sensible default. */
diff -r ead7cbcb4e49 linux/drivers/media/video/pxa_camera.c
--- a/linux/drivers/media/video/pxa_camera.c	Tue May 06 07:50:51 2008 -0300
+++ b/linux/drivers/media/video/pxa_camera.c	Tue May 06 13:51:28 2008 +0200
@@ -883,7 +883,7 @@ static int pxa_camera_set_bus_param(stru
 	}
 
 	CICR1 = cicr1;
-	CICR2 = 0;
+	CICR2 = CICR2_BLW_VAL(min((unsigned short)255, icd->x_skip_left));
 	CICR3 = CICR3_LPF_VAL(icd->height - 1) |
 		CICR3_BFW_VAL(min((unsigned short)255, icd->y_skip_top));
 	CICR4 = mclk_get_divisor(pcdev) | cicr4;
diff -r ead7cbcb4e49 linux/include/media/soc_camera.h
--- a/linux/include/media/soc_camera.h	Tue May 06 07:50:51 2008 -0300
+++ b/linux/include/media/soc_camera.h	Tue May 06 13:51:28 2008 +0200
@@ -29,6 +29,7 @@ struct soc_camera_device {
 	unsigned short width_max;
 	unsigned short height_min;
 	unsigned short height_max;
+	unsigned short x_skip_left;	/* Pixel to skip at the left */
 	unsigned short y_skip_top;	/* Lines to skip at the top */
 	unsigned short gain;
 	unsigned short exposure;

--
video4linux-list mailing list
Unsubscribe mailto:video4linux-list-request@xxxxxxxxxx?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/video4linux-list