[oe-commits] Koen Kooi : linux-omap-psp 2.6.32: additional bugfixes for the camera drivers

git version control git at git.openembedded.org
Sat Jul 24 07:39:43 UTC 2010


Module: openembedded.git
Branch: org.openembedded.dev
Commit: 7c128f6532667b5e2a2bec8685c31e68e2cf9e19
URL:    http://gitweb.openembedded.net/?p=openembedded.git&a=commit;h=7c128f6532667b5e2a2bec8685c31e68e2cf9e19

Author: Koen Kooi <koen at openembedded.org>
Date:   Sat Jul 24 09:35:18 2010 +0200

linux-omap-psp 2.6.32: additional bugfixes for the camera drivers

---

 ...-Partial-revert-HACK-try-to-poweron-stuff.patch |   40 ++++++++++++
 ...eagle-camera-Fix-dual-sensor-registration.patch |   43 ++++++++++++
 .../0003-mt9v113-Fix-State-variable-handling.patch |   68 ++++++++++++++++++++
 recipes/linux/linux-omap-psp_2.6.32.bb             |    3 +
 4 files changed, 154 insertions(+), 0 deletions(-)

diff --git a/recipes/linux/linux-omap-psp-2.6.32/cam/0001-omap3beagle-Partial-revert-HACK-try-to-poweron-stuff.patch b/recipes/linux/linux-omap-psp-2.6.32/cam/0001-omap3beagle-Partial-revert-HACK-try-to-poweron-stuff.patch
new file mode 100644
index 0000000..4c5b76e
--- /dev/null
+++ b/recipes/linux/linux-omap-psp-2.6.32/cam/0001-omap3beagle-Partial-revert-HACK-try-to-poweron-stuff.patch
@@ -0,0 +1,40 @@
+From d10aa1882d560d968dd61fb49ad1eeab5df84079 Mon Sep 17 00:00:00 2001
+From: Sergio Aguirre <saaguirre at ti.com>
+Date: Thu, 22 Jul 2010 17:29:20 -0500
+Subject: [PATCH 1/3] omap3beagle: Partial revert "HACK: try to poweron stuff on xM rev A"
+
+In this commit:
+
+  commit 0e0b2c1a7a3212e47e2fb07116f1b31914152f76
+  Author: Koen Kooi <koen at dominion.thruhere.net>
+  Date:   Tue May 4 17:04:27 2010 +0200
+
+      HACK: try to poweron stuff on xM rev A
+
+There is a change introduced to modify the gpio init value after
+setting its mode to output.
+
+This was breaking somehow the camera. The sensor powerup sequence
+was returning -EBUSY.
+
+Signed-off-by: Sergio Aguirre <saaguirre at ti.com>
+---
+ arch/arm/mach-omap2/board-omap3beagle.c |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
+index 9bca9fa..3d05bfa 100644
+--- a/arch/arm/mach-omap2/board-omap3beagle.c
++++ b/arch/arm/mach-omap2/board-omap3beagle.c
+@@ -387,7 +387,7 @@ static int beagle_twl_gpio_setup(struct device *dev,
+ 
+ 		/* TWL4030_GPIO_MAX + 0 == ledA, EHCI nEN_USB_PWR (out, active low) */
+ 		gpio_request(gpio + TWL4030_GPIO_MAX, "nEN_USB_PWR");
+-		gpio_direction_output(gpio + TWL4030_GPIO_MAX, 0);
++		gpio_direction_output(gpio + TWL4030_GPIO_MAX, 1);
+ 	}
+ 	else {
+ 		/* DVI reset GPIO is different between revisions */ 
+-- 
+1.6.6.1
+
diff --git a/recipes/linux/linux-omap-psp-2.6.32/cam/0002-omap3beagle-camera-Fix-dual-sensor-registration.patch b/recipes/linux/linux-omap-psp-2.6.32/cam/0002-omap3beagle-camera-Fix-dual-sensor-registration.patch
new file mode 100644
index 0000000..ef266d3
--- /dev/null
+++ b/recipes/linux/linux-omap-psp-2.6.32/cam/0002-omap3beagle-camera-Fix-dual-sensor-registration.patch
@@ -0,0 +1,43 @@
+From b5412a27380f0c8d571181ba2ab719574fce796a Mon Sep 17 00:00:00 2001
+From: Sergio Aguirre <saaguirre at ti.com>
+Date: Thu, 22 Jul 2010 11:03:33 -0500
+Subject: [PATCH 2/3] omap3beagle: camera: Fix dual sensor registration
+
+dev_index should be different, which represents an internal index
+in the master camera driver.
+
+Also, make device video nodes be alloted with the "first free", by setting
+dev_minor to -1.
+
+Signed-off-by: Sergio Aguirre <saaguirre at ti.com>
+---
+ arch/arm/mach-omap2/board-omap3beagle-camera.c |    6 +++---
+ 1 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/arch/arm/mach-omap2/board-omap3beagle-camera.c b/arch/arm/mach-omap2/board-omap3beagle-camera.c
+index 520e1d8..c0218e3 100644
+--- a/arch/arm/mach-omap2/board-omap3beagle-camera.c
++++ b/arch/arm/mach-omap2/board-omap3beagle-camera.c
+@@ -107,7 +107,7 @@ static int mt9v113_ifparm(struct v4l2_ifparm *p)
+ 
+ static struct omap34xxcam_hw_config mt9v113_hwc = {
+ 	.dev_index		= 0,
+-	.dev_minor		= 0,
++	.dev_minor		= -1,
+ 	.dev_type		= OMAP34XXCAM_SLAVE_SENSOR,
+ 	.u.sensor.sensor_isp	= 1,
+ 	.u.sensor.capture_mem	= MT9V113_MAX_FRAME_SIZE * 2,
+@@ -259,8 +259,8 @@ static int mt9t112_ifparm(struct v4l2_ifparm *p)
+ 
+ #if defined(CONFIG_VIDEO_OMAP3) || defined(CONFIG_VIDEO_OMAP3_MODULE)
+ static struct omap34xxcam_hw_config mt9t112_hwc = {
+-	.dev_index		= 0,
+-	.dev_minor		= 0,
++	.dev_index		= 1,
++	.dev_minor		= -1,
+ 	.dev_type		= OMAP34XXCAM_SLAVE_SENSOR,
+ 	.u.sensor.sensor_isp	= 0,
+ 	.u.sensor.capture_mem	= MT9T112_BIGGEST_FRAME_BYTE_SIZE,
+-- 
+1.6.6.1
+
diff --git a/recipes/linux/linux-omap-psp-2.6.32/cam/0003-mt9v113-Fix-State-variable-handling.patch b/recipes/linux/linux-omap-psp-2.6.32/cam/0003-mt9v113-Fix-State-variable-handling.patch
new file mode 100644
index 0000000..45b54b8
--- /dev/null
+++ b/recipes/linux/linux-omap-psp-2.6.32/cam/0003-mt9v113-Fix-State-variable-handling.patch
@@ -0,0 +1,68 @@
+From ff2a80a1bef6f7215221812eab381f4303fffce8 Mon Sep 17 00:00:00 2001
+From: Sergio Aguirre <saaguirre at ti.com>
+Date: Thu, 22 Jul 2010 13:29:16 -0500
+Subject: [PATCH 3/3] mt9v113: Fix State variable handling
+
+State variable was misused, and was running detection all the
+time the sensor was powered back on.
+
+Reason? power off code was putting it to "not detected" always.
+
+Signed-off-by: Sergio Aguirre <saaguirre at ti.com>
+---
+ drivers/media/video/mt9v113.c |   23 ++++++++++++++---------
+ 1 files changed, 14 insertions(+), 9 deletions(-)
+
+diff --git a/drivers/media/video/mt9v113.c b/drivers/media/video/mt9v113.c
+index 6714240..37e3e19 100644
+--- a/drivers/media/video/mt9v113.c
++++ b/drivers/media/video/mt9v113.c
+@@ -1251,7 +1251,6 @@ static int ioctl_s_power(struct v4l2_int_device *s, enum v4l2_power on)
+ 		/* Disable mux for mt9v113 data path */
+ 		if (decoder->pdata->power_set)
+ 			err |= decoder->pdata->power_set(s, on);
+-		decoder->state = STATE_NOT_DETECTED;
+ 		break;
+ 
+ 	case V4L2_POWER_STANDBY:
+@@ -1260,23 +1259,29 @@ static int ioctl_s_power(struct v4l2_int_device *s, enum v4l2_power on)
+ 		break;
+ 
+ 	case V4L2_POWER_ON:
+-		/* Enable mux for mt9v113 data path */
+-		if (decoder->state == STATE_NOT_DETECTED) {
+-
+-			if (decoder->pdata->power_set)
+-				err = decoder->pdata->power_set(s, on);
++		if (decoder->pdata->power_set) {
++			err = decoder->pdata->power_set(s, on);
++			if (err)
++				return err;
++		}
+ 
++		if (decoder->state == STATE_NOT_DETECTED) {
+ 			/* Detect the sensor is not already detected */
+-			err |= mt9v113_detect(decoder);
++			err = mt9v113_detect(decoder);
+ 			if (err) {
+ 				v4l_err(decoder->client,
+ 						"Unable to detect decoder\n");
++				WARN_ON(1);
+ 				return err;
+ 			}
+ 		}
+ 		/* Only VGA mode for now */
+-		err |= mt9v113_configure(decoder);
+-		err |= mt9v113_vga_mode(decoder);
++		err = mt9v113_configure(decoder);
++		if (err)
++			return err;
++		err = mt9v113_vga_mode(decoder);
++		if (err)
++			return err;
+ 		break;
+ 
+ 	default:
+-- 
+1.6.6.1
+
diff --git a/recipes/linux/linux-omap-psp_2.6.32.bb b/recipes/linux/linux-omap-psp_2.6.32.bb
index c9a6d06..c052fdc 100644
--- a/recipes/linux/linux-omap-psp_2.6.32.bb
+++ b/recipes/linux/linux-omap-psp_2.6.32.bb
@@ -128,6 +128,9 @@ SRC_URI = "git://arago-project.org/git/people/sriram/ti-psp-omap.git;protocol=gi
            file://cam/0069-mt9t112-Fix-pll-p-dividers-abstraction.patch \
            file://cam/0070-mt9t112-Adjust-50-60Hz-flickering-settings.patch \
            file://cam/0071-mt9t112-Trigger-autofocus-at-the-end-of-context-swit.patch \
+           file://cam/0001-omap3beagle-Partial-revert-HACK-try-to-poweron-stuff.patch \
+           file://cam/0002-omap3beagle-camera-Fix-dual-sensor-registration.patch \
+           file://cam/0003-mt9v113-Fix-State-variable-handling.patch \
            file://0001-BeagleBoard-Adjust-USER-button-pin-for-xM.patch \
            file://defconfig"
 





More information about the Openembedded-commits mailing list