summaryrefslogtreecommitdiffstats
path: root/recipes/linux/linux-omap-psp-2.6.32/cam/0043-mt9v113-Settings-from-Aptima-used-to-increase-FPS.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes/linux/linux-omap-psp-2.6.32/cam/0043-mt9v113-Settings-from-Aptima-used-to-increase-FPS.patch')
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/cam/0043-mt9v113-Settings-from-Aptima-used-to-increase-FPS.patch135
1 files changed, 135 insertions, 0 deletions
diff --git a/recipes/linux/linux-omap-psp-2.6.32/cam/0043-mt9v113-Settings-from-Aptima-used-to-increase-FPS.patch b/recipes/linux/linux-omap-psp-2.6.32/cam/0043-mt9v113-Settings-from-Aptima-used-to-increase-FPS.patch
new file mode 100644
index 0000000000..cbf9788d96
--- /dev/null
+++ b/recipes/linux/linux-omap-psp-2.6.32/cam/0043-mt9v113-Settings-from-Aptima-used-to-increase-FPS.patch
@@ -0,0 +1,135 @@
+From b61ff796dd0bb5bb34d7d2125983baa78f8a3831 Mon Sep 17 00:00:00 2001
+From: Vaibhav Hiremath <hvaibhav@ti.com>
+Date: Wed, 14 Jul 2010 19:07:34 +0530
+Subject: [PATCH 43/71] mt9v113: Settings from Aptima used to increase FPS
+
+The FPS is still low at around ~15FPS, expected one is 30FPS.
+
+Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
+---
+ drivers/media/video/mt9v113.c | 55 +++++++++++++++++++++++++---------------
+ 1 files changed, 34 insertions(+), 21 deletions(-)
+
+diff --git a/drivers/media/video/mt9v113.c b/drivers/media/video/mt9v113.c
+index 9a86cce..466702e 100644
+--- a/drivers/media/video/mt9v113.c
++++ b/drivers/media/video/mt9v113.c
+@@ -119,6 +119,21 @@ static struct mt9v113_reg mt9v113_vga_reg[] = {
+ {TOK_WRITE, 0x0990, 0x0280},
+ {TOK_WRITE, 0x098C, 0x2705},
+ {TOK_WRITE, 0x0990, 0x01E0},
++ {TOK_WRITE, 0x098C, 0x2715},
++ {TOK_WRITE, 0x0990, 0x0001},
++ {TOK_WRITE, 0x098C, 0x2717},
++ {TOK_WRITE, 0x0990, 0x0026},
++ {TOK_WRITE, 0x098C, 0x2719},
++ {TOK_WRITE, 0x0990, 0x001A},
++ {TOK_WRITE, 0x098C, 0x271B},
++ {TOK_WRITE, 0x0990, 0x006B},
++ {TOK_WRITE, 0x098C, 0x271D},
++ {TOK_WRITE, 0x0990, 0x006B},
++ {TOK_WRITE, 0x098C, 0x271F},
++ {TOK_WRITE, 0x0990, 0x0202},
++ {TOK_WRITE, 0x098C, 0x2721},
++ {TOK_WRITE, 0x0990, 0x034A},
++
+ {TOK_WRITE, 0x098C, 0xA103},
+ {TOK_WRITE, 0x0990, 0x0005},
+ {TOK_DELAY, 0, 100},
+@@ -148,8 +163,7 @@ static struct mt9v113_reg mt9v113_reg_list[] = {
+ {TOK_WRITE, 0x001E, 0x0777},
+ {TOK_WRITE, 0x0016, 0x42DF},
+ {TOK_WRITE, 0x0014, 0x2145},
+- {TOK_WRITE, 0x0014, 0x2145},
+- {TOK_WRITE, 0x0010, 0x0231},
++ {TOK_WRITE, 0x0010, 0x0234},
+ {TOK_WRITE, 0x0012, 0x0000},
+ {TOK_WRITE, 0x0014, 0x244B},
+ {TOK_WRITE, 0x0014, 0x304B},
+@@ -267,29 +281,31 @@ static struct mt9v113_reg mt9v113_reg_list[] = {
+ {TOK_WRITE, 0x0990, 0x0005},
+ {TOK_DELAY, 0, 100},
+ {TOK_WRITE, 0x098C, 0x222D},
+- {TOK_WRITE, 0x0990, 0x0088},
++ {TOK_WRITE, 0x0990, 0x0081},
+ {TOK_WRITE, 0x098C, 0xA408},
+- {TOK_WRITE, 0x0990, 0x0020},
++ {TOK_WRITE, 0x0990, 0x001F},
+ {TOK_WRITE, 0x098C, 0xA409},
+- {TOK_WRITE, 0x0990, 0x0023},
++ {TOK_WRITE, 0x0990, 0x0021},
+ {TOK_WRITE, 0x098C, 0xA40A},
+- {TOK_WRITE, 0x0990, 0x0027},
++ {TOK_WRITE, 0x0990, 0x0025},
+ {TOK_WRITE, 0x098C, 0xA40B},
+- {TOK_WRITE, 0x0990, 0x002A},
++ {TOK_WRITE, 0x0990, 0x0027},
+ {TOK_WRITE, 0x098C, 0x2411},
+- {TOK_WRITE, 0x0990, 0x0088},
++ {TOK_WRITE, 0x0990, 0x0081},
+ {TOK_WRITE, 0x098C, 0x2413},
+- {TOK_WRITE, 0x0990, 0x00A4},
++ {TOK_WRITE, 0x0990, 0x009A},
+ {TOK_WRITE, 0x098C, 0x2415},
+- {TOK_WRITE, 0x0990, 0x0088},
++ {TOK_WRITE, 0x0990, 0x0081},
+ {TOK_WRITE, 0x098C, 0x2417},
+- {TOK_WRITE, 0x0990, 0x00A4},
++ {TOK_WRITE, 0x0990, 0x009A},
+ {TOK_WRITE, 0x098C, 0xA404},
+ {TOK_WRITE, 0x0990, 0x0010},
+ {TOK_WRITE, 0x098C, 0xA40D},
+ {TOK_WRITE, 0x0990, 0x0002},
+ {TOK_WRITE, 0x098C, 0xA40E},
+ {TOK_WRITE, 0x0990, 0x0003},
++ {TOK_WRITE, 0x098C, 0xA410},
++ {TOK_WRITE, 0x0990, 0x000A},
+ {TOK_WRITE, 0x098C, 0xA103},
+ {TOK_WRITE, 0x0990, 0x0006},
+ {TOK_DELAY, 0, 100},
+@@ -1216,13 +1232,10 @@ static int ioctl_s_power(struct v4l2_int_device *s, enum v4l2_power on)
+ struct mt9v113_decoder *decoder = s->priv;
+ int err = 0;
+
+- if (decoder->state == STATE_DETECTED)
+- return 0;
+-
+ switch (on) {
+ case V4L2_POWER_OFF:
+ /* Power Down Sequence */
+-/* TODO: FIXME: implement proper OFF and Standby code here */
++ /* TODO: FIXME: implement proper OFF and Standby code here */
+ #if 0
+ err = mt9v113_write_reg(decoder->client, REG_OPERATION_MODE,
+ 0x01);
+@@ -1240,10 +1253,10 @@ static int ioctl_s_power(struct v4l2_int_device *s, enum v4l2_power on)
+
+ case V4L2_POWER_ON:
+ /* Enable mux for mt9v113 data path */
+- if ((decoder->pdata->power_set) &&
+- (decoder->state == STATE_NOT_DETECTED)) {
++ if (decoder->state == STATE_NOT_DETECTED) {
+
+- err = decoder->pdata->power_set(s, on);
++ if (decoder->pdata->power_set)
++ err = decoder->pdata->power_set(s, on);
+
+ /* Detect the sensor is not already detected */
+ err |= mt9v113_detect(decoder);
+@@ -1252,10 +1265,10 @@ static int ioctl_s_power(struct v4l2_int_device *s, enum v4l2_power on)
+ "Unable to detect decoder\n");
+ return err;
+ }
+- /* Only VGA mode for now */
+- err |= mt9v113_configure(decoder);
+- err |= mt9v113_vga_mode(decoder);
+ }
++ /* Only VGA mode for now */
++ err |= mt9v113_configure(decoder);
++ err |= mt9v113_vga_mode(decoder);
+ break;
+
+ default:
+--
+1.6.6.1
+