aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/linux/linux-omap-psp-2.6.32
diff options
context:
space:
mode:
Diffstat (limited to 'recipes/linux/linux-omap-psp-2.6.32')
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/0001-Revert-omap3-beagle-Fix-compile-time-errors.patch67
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/0002-board-omap3touchbook-make-it-build-against-TI-linux-.patch (renamed from recipes/linux/linux-omap-psp-2.6.32/0001-board-omap3touchbook-make-it-build-against-TI-linux-.patch)4
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/0003-ARM-OMAP-add-support-for-TCT-Zippy-to-Beagle-board-f.patch (renamed from recipes/linux/linux-omap-psp-2.6.32/0002-ARM-OMAP-add-support-for-TCT-Zippy-to-Beagle-board-f.patch)4
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/0004-ARM-OMAP-Make-beagle-u-boot-partition-writable.patch (renamed from recipes/linux/linux-omap-psp-2.6.32/0003-ARM-OMAP-Make-beagle-u-boot-partition-writable.patch)4
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/0005-beagleboard-omap3_-foo-_rate_table-omap35x_-foo-_rat.patch27
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/0005-board-omap3-beagle-add-DSS2-support.patch (renamed from recipes/linux/linux-omap-psp-2.6.32/0004-board-omap3-beagle-add-DSS2-support.patch)4
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/0006-board-omap3beagle-prepare-for-DM3730-based-Beagleboa.patch26
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/0007-ARM-OMAP-beagleboard-Add-infrastructure-to-do-fixups.patch172
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/0007-mt9t111-first-stab-at-merging-sensor-driver-based-on.patch2394
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/0008-ARM-OMAP-beagleboard-pre-export-GPIOs-to-userspace-w.patch57
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/0008-board-omap3beagle-ugly-copy-paste-job-to-get-mt9p111.patch214
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/0009-ARM-OMAP-beagleboard-initialize-ds1307-and-eeprom-on.patch76
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/0009-board-omap3beagle-turn-on-power-to-camera-on-boot-an.patch31
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/0010-ARM-OMAP-update-beagleboard-defconfig.patch3323
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/0010-board-omap3beagle-update-omap34xxcam-to-more-recent-.patch84
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/0011-ASoC-enable-audio-capture-by-default-for-twl4030.patch4
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/0012-MTD-NAND-omap2-proper-fix-for-subpage-read-ECC-error.patch4
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/0013-OMAP3630-DSS2-Enable-Pre-Multiplied-Alpha-Support.patch4
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/0014-DSS2-add-bootarg-for-selecting-svideo-or-composite-f.patch12
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/0015-ISP-add-some-more-from-Leopard-imaging-patch.patch4
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/0016-ARM-OMAP-Overo-Add-support-for-second-ethernet-port.patch4
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/0017-drivers-net-smsc911x-return-ENODEV-if-device-is-not-.patch4
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/0018-drivers-input-touchscreen-ads7846-return-ENODEV-if-d.patch4
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/0019-drivers-mfd-add-twl4030-madc-driver.patch4
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/0020-ARM-OMAP-Add-missing-twl4030-madc-header-file.patch4
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/0021-ARM-OMAP-Add-twl4030-madc-support-to-Overo.patch4
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/0022-ARM-OMAP-Add-twl4030-madc-support-to-Beagle.patch10
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/0023-netdev-rt73usb-add-vendor-device-ID-for-Ceiva-Wirele.patch4
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/0024-mmc-don-t-display-single-block-read-console-messages.patch4
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/0025-ARM-OMAP2-mmc-twl4030-move-clock-input-selection-pri.patch4
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/0026-board-overo-add-PM-code-and-sync-with-http-www.sakom.patch4
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/0027-twl4030-madc-adjust-for-twl4030-twl-api-changes.patch4
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/0028-OMAP-DSS2-Re-add-support-for-Samsung-lte430wq-f0c-pa.patch4
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/0029-OMAP-DSS2-Add-support-for-LG-Philips-LB035Q02-panel.patch4
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/0030-Fix-for-bus-width-which-improves-SD-card-s-peformanc.patch4
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/0031-ARM-VFP-add-support-to-sync-the-VFP-state-of-the-cur.patch4
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/0032-ARM-VFP-preserve-the-HW-context-when-calling-signal-.patch4
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/0033-Switch-SGX-clocks-to-200MHz-on-DM37xx-OMAP36xx.patch4
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/0034-modedb.c-add-proper-720p60-mode.patch4
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/0035-RTC-add-support-for-backup-battery-recharge.patch4
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/0036-ARM-Add-prompt-for-CONFIG_ALIGNMENT_TRAP.patch4
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/0037-ARM-Print-warning-on-alignment-trap-in-kernel-mode.patch4
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/0038-ARM-Expose-some-CPU-control-registers-via-sysfs.patch4
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/0039-ARM-Add-option-to-allow-userspace-PLE-access.patch4
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/0040-ARM-Add-option-to-allow-userspace-access-to-performa.patch4
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/0041-ARM-Expose-some-PMON-registers-through-sysfs.patch4
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/0042-musb-allow-host-io-without-gadget-module.patch10
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/0043-MTD-silence-ecc-errors-on-mtdblock0.patch59
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/0044-ARM-OMAP-beagle-every-known-beagle-except-revB-uses-.patch34
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/beagleboard/defconfig12
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0001-ARM-OMAP-add-spi-platform-devices.patch4
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0002-MMA7455L-accelerometer-driver.patch4
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0003-bq27x00_battery-remove-error-message-output.patch4
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0004-bq27x00_battery-add-charged-gpio.patch4
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0005-adf7846-add-more-debugging.patch4
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0006-ads7846-read-max-mix-x-y-from-pdata.patch4
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0007-ads7846-add-settling-delay-to-pdata.patch4
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0008-DSS2-OMAPFB-Translate-X-Y-coordinates-for-the-video-.patch4
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0009-DSS2-Fix-scaling-checks-when-rotation-is-90-or-270-d.patch (renamed from recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0010-DSS2-Fix-scaling-checks-when-rotation-is-90-or-270-d.patch)4
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0009-DSS2-fix-rotation-offsets.patch69
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0010-add-touchbook-hid-driver.patch (renamed from recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0011-add-touchbook-hid-driver.patch)4
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0011-Make-backlight-controls-accessible-to-users.patch (renamed from recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0012-Make-backlight-controls-accessible-to-users.patch)4
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0012-ads7846-don-t-error-out-when-there-s-no-pendown-gpio.patch (renamed from recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0013-ads7846-don-t-error-out-when-there-s-no-pendown-gpio.patch)4
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0013-ASoC-add-driver-for-omap3-touchbook.patch (renamed from recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0014-ASoC-add-driver-for-omap3-touchbook.patch)36
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0014-backlight-add-PWM-support.patch (renamed from recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0015-backlight-add-PWM-support.patch)4
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0015-Forward-port-TWL4030-BCI-driver-from-2.6.29-to-2.6.3.patch1367
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0016-ARM-OMAP-omap3-touchbook-update-boardfile.patch47
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0017-ARM-OMAP-add-800MHz-OPP-and-remove-125MHz-one.patch48
-rw-r--r--recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/defconfig13
69 files changed, 5394 insertions, 2978 deletions
diff --git a/recipes/linux/linux-omap-psp-2.6.32/0001-Revert-omap3-beagle-Fix-compile-time-errors.patch b/recipes/linux/linux-omap-psp-2.6.32/0001-Revert-omap3-beagle-Fix-compile-time-errors.patch
new file mode 100644
index 0000000000..c406af1a15
--- /dev/null
+++ b/recipes/linux/linux-omap-psp-2.6.32/0001-Revert-omap3-beagle-Fix-compile-time-errors.patch
@@ -0,0 +1,67 @@
+From 03e3ae2685bbd9586d520b0dd081593b814240b3 Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen@dominion.thruhere.net>
+Date: Fri, 30 Apr 2010 11:12:24 +0200
+Subject: [PATCH 01/43] Revert "omap3: beagle: Fix compile-time errors"
+
+This commit clashes with the other beagle patches we apply on top
+
+This reverts commit da5b291cba631d303cb137fa6a620c494d828197.
+---
+ arch/arm/mach-omap2/board-omap3beagle.c | 34 ++----------------------------
+ 1 files changed, 3 insertions(+), 31 deletions(-)
+
+diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
+index c5da58e..330fb25 100644
+--- a/arch/arm/mach-omap2/board-omap3beagle.c
++++ b/arch/arm/mach-omap2/board-omap3beagle.c
+@@ -56,22 +56,6 @@
+
+ #define NAND_BLOCK_SIZE SZ_128K
+
+-#ifdef CONFIG_PM
+-static struct omap_opp * _omap35x_mpu_rate_table = omap35x_mpu_rate_table;
+-static struct omap_opp * _omap37x_mpu_rate_table = omap37x_mpu_rate_table;
+-static struct omap_opp * _omap35x_dsp_rate_table = omap35x_dsp_rate_table;
+-static struct omap_opp * _omap37x_dsp_rate_table = omap37x_dsp_rate_table;
+-static struct omap_opp * _omap35x_l3_rate_table = omap35x_l3_rate_table;
+-static struct omap_opp * _omap37x_l3_rate_table = omap37x_l3_rate_table;
+-#else /* CONFIG_PM */
+-static struct omap_opp * _omap35x_mpu_rate_table = NULL;
+-static struct omap_opp * _omap37x_mpu_rate_table = NULL;
+-static struct omap_opp * _omap35x_dsp_rate_table = NULL;
+-static struct omap_opp * _omap37x_dsp_rate_table = NULL;
+-static struct omap_opp * _omap35x_l3_rate_table = NULL;
+-static struct omap_opp * _omap37x_l3_rate_table = NULL;
+-#endif /* CONFIG_PM */
+-
+ static struct mtd_partition omap3beagle_nand_partitions[] = {
+ /* All the partition sizes are listed in terms of NAND block size */
+ {
+@@ -377,21 +361,9 @@ static void __init omap3_beagle_init_irq(void)
+ {
+ omap_board_config = omap3_beagle_config;
+ omap_board_config_size = ARRAY_SIZE(omap3_beagle_config);
+-
+- if (cpu_is_omap3630()) {
+- omap2_init_common_hw(mt46h32m32lf6_sdrc_params,
+- mt46h32m32lf6_sdrc_params,
+- _omap37x_mpu_rate_table,
+- _omap37x_dsp_rate_table,
+- _omap37x_l3_rate_table);
+- } else {
+- omap2_init_common_hw(mt46h32m32lf6_sdrc_params,
+- mt46h32m32lf6_sdrc_params,
+- _omap35x_mpu_rate_table,
+- _omap35x_dsp_rate_table,
+- _omap35x_l3_rate_table);
+- }
+-
++ omap2_init_common_hw(mt46h32m32lf6_sdrc_params,
++ mt46h32m32lf6_sdrc_params, omap3_mpu_rate_table,
++ omap3_dsp_rate_table, omap3_l3_rate_table);
+ omap_init_irq();
+ #ifdef CONFIG_OMAP_32K_TIMER
+ omap2_gp_clockevent_set_gptimer(12);
+--
+1.6.6.1
+
diff --git a/recipes/linux/linux-omap-psp-2.6.32/0001-board-omap3touchbook-make-it-build-against-TI-linux-.patch b/recipes/linux/linux-omap-psp-2.6.32/0002-board-omap3touchbook-make-it-build-against-TI-linux-.patch
index 3cbaeded3e..f016e0edce 100644
--- a/recipes/linux/linux-omap-psp-2.6.32/0001-board-omap3touchbook-make-it-build-against-TI-linux-.patch
+++ b/recipes/linux/linux-omap-psp-2.6.32/0002-board-omap3touchbook-make-it-build-against-TI-linux-.patch
@@ -1,7 +1,7 @@
-From f4bd057e5703a21865005e2e9e3eab13bb19ff59 Mon Sep 17 00:00:00 2001
+From ad2b9548c700dc424209e543d10ab14c848895a5 Mon Sep 17 00:00:00 2001
From: Koen Kooi <k-kooi@ti.com>
Date: Sat, 30 Jan 2010 15:49:15 +0100
-Subject: [PATCH 01/42] board-omap3touchbook: make it build against TI linux-omap 2.6.32-PSP
+Subject: [PATCH 02/43] board-omap3touchbook: make it build against TI linux-omap 2.6.32-PSP
---
arch/arm/mach-omap2/board-omap3touchbook.c | 11 +++++++++--
diff --git a/recipes/linux/linux-omap-psp-2.6.32/0002-ARM-OMAP-add-support-for-TCT-Zippy-to-Beagle-board-f.patch b/recipes/linux/linux-omap-psp-2.6.32/0003-ARM-OMAP-add-support-for-TCT-Zippy-to-Beagle-board-f.patch
index 28a7574324..0e7a8b2943 100644
--- a/recipes/linux/linux-omap-psp-2.6.32/0002-ARM-OMAP-add-support-for-TCT-Zippy-to-Beagle-board-f.patch
+++ b/recipes/linux/linux-omap-psp-2.6.32/0003-ARM-OMAP-add-support-for-TCT-Zippy-to-Beagle-board-f.patch
@@ -1,7 +1,7 @@
-From 2139a8d4e64132463be4f8293f66639bf5a45ebb Mon Sep 17 00:00:00 2001
+From 95d7fc0cb0c4367c378ed640d6bb49ab6dc100dc Mon Sep 17 00:00:00 2001
From: Steve Sakoman <sakoman@gmail.com>
Date: Tue, 15 Dec 2009 15:34:29 -0800
-Subject: [PATCH 02/42] ARM: OMAP: add support for TCT Zippy to Beagle board file
+Subject: [PATCH 03/43] ARM: OMAP: add support for TCT Zippy to Beagle board file
Signed-off-by: Steve Sakoman <sakoman@gmail.com>
---
diff --git a/recipes/linux/linux-omap-psp-2.6.32/0003-ARM-OMAP-Make-beagle-u-boot-partition-writable.patch b/recipes/linux/linux-omap-psp-2.6.32/0004-ARM-OMAP-Make-beagle-u-boot-partition-writable.patch
index 71867cec98..f2ed1914f9 100644
--- a/recipes/linux/linux-omap-psp-2.6.32/0003-ARM-OMAP-Make-beagle-u-boot-partition-writable.patch
+++ b/recipes/linux/linux-omap-psp-2.6.32/0004-ARM-OMAP-Make-beagle-u-boot-partition-writable.patch
@@ -1,7 +1,7 @@
-From 336ca8edb0c011f06662e39555c3c5e6ded15183 Mon Sep 17 00:00:00 2001
+From 7ca7040b3382fabbaa37dfda2c80cc4433b16d2e Mon Sep 17 00:00:00 2001
From: Steve Sakoman <steve@sakoman.com>
Date: Thu, 17 Dec 2009 12:40:24 -0800
-Subject: [PATCH 03/42] ARM: OMAP: Make beagle u-boot partition writable
+Subject: [PATCH 04/43] ARM: OMAP: Make beagle u-boot partition writable
---
arch/arm/mach-omap2/board-omap3beagle.c | 1 -
diff --git a/recipes/linux/linux-omap-psp-2.6.32/0005-beagleboard-omap3_-foo-_rate_table-omap35x_-foo-_rat.patch b/recipes/linux/linux-omap-psp-2.6.32/0005-beagleboard-omap3_-foo-_rate_table-omap35x_-foo-_rat.patch
deleted file mode 100644
index 3bfeddcad3..0000000000
--- a/recipes/linux/linux-omap-psp-2.6.32/0005-beagleboard-omap3_-foo-_rate_table-omap35x_-foo-_rat.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 9cd3eb084a39c039fd17048f071116c866903855 Mon Sep 17 00:00:00 2001
-From: Koen Kooi <k-kooi@ti.com>
-Date: Wed, 27 Jan 2010 21:57:13 +0100
-Subject: [PATCH 05/42] beagleboard: omap3_<foo>_rate_table -> omap35x_<foo>_rate_table
-
----
- arch/arm/mach-omap2/board-omap3beagle.c | 4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
-index 3b7f6ec..1caaa01 100644
---- a/arch/arm/mach-omap2/board-omap3beagle.c
-+++ b/arch/arm/mach-omap2/board-omap3beagle.c
-@@ -502,8 +502,8 @@ static struct platform_device keys_gpio = {
- static void __init omap3_beagle_init_irq(void)
- {
- omap2_init_common_hw(mt46h32m32lf6_sdrc_params,
-- mt46h32m32lf6_sdrc_params, omap3_mpu_rate_table,
-- omap3_dsp_rate_table, omap3_l3_rate_table);
-+ mt46h32m32lf6_sdrc_params, omap35x_mpu_rate_table,
-+ omap35x_dsp_rate_table, omap35x_l3_rate_table);
- omap_init_irq();
- #ifdef CONFIG_OMAP_32K_TIMER
- omap2_gp_clockevent_set_gptimer(12);
---
-1.6.6.1
-
diff --git a/recipes/linux/linux-omap-psp-2.6.32/0004-board-omap3-beagle-add-DSS2-support.patch b/recipes/linux/linux-omap-psp-2.6.32/0005-board-omap3-beagle-add-DSS2-support.patch
index 1e0c26057f..e9a1715c97 100644
--- a/recipes/linux/linux-omap-psp-2.6.32/0004-board-omap3-beagle-add-DSS2-support.patch
+++ b/recipes/linux/linux-omap-psp-2.6.32/0005-board-omap3-beagle-add-DSS2-support.patch
@@ -1,7 +1,7 @@
-From e54e58bc621621fbb4700a52af16253ace86995b Mon Sep 17 00:00:00 2001
+From 8a3d9bff79f71a2733607e409f820e79142592d5 Mon Sep 17 00:00:00 2001
From: Koen Kooi <koen@dominion.thruhere.net>
Date: Wed, 10 Feb 2010 15:07:36 +0100
-Subject: [PATCH 04/42] board-omap3-beagle: add DSS2 support
+Subject: [PATCH 05/43] board-omap3-beagle: add DSS2 support
---
arch/arm/mach-omap2/board-omap3beagle.c | 130 ++++++++++++++++++++++++-------
diff --git a/recipes/linux/linux-omap-psp-2.6.32/0006-board-omap3beagle-prepare-for-DM3730-based-Beagleboa.patch b/recipes/linux/linux-omap-psp-2.6.32/0006-board-omap3beagle-prepare-for-DM3730-based-Beagleboa.patch
index dece1522c2..0a483cd44f 100644
--- a/recipes/linux/linux-omap-psp-2.6.32/0006-board-omap3beagle-prepare-for-DM3730-based-Beagleboa.patch
+++ b/recipes/linux/linux-omap-psp-2.6.32/0006-board-omap3beagle-prepare-for-DM3730-based-Beagleboa.patch
@@ -1,16 +1,17 @@
-From cb5c43f259e7204cfb4cb4de39cc6182bda57222 Mon Sep 17 00:00:00 2001
+From 9f69d9bbab1d24da77864b48dbc5d8d4db9f4cdf Mon Sep 17 00:00:00 2001
From: Koen Kooi <k-kooi@ti.com>
-Date: Mon, 8 Feb 2010 16:30:59 +0100
-Subject: [PATCH 06/42] board-omap3beagle: prepare for DM3730 based BeagleboardXM
+Date: Wed, 27 Jan 2010 21:57:13 +0100
+Subject: [PATCH 06/43] board-omap3beagle: prepare for DM3730 based BeagleboardXM
* OPP changes copy/pasted from board-omap3evm.c
* EHCI changes copy/pasted from Steve Kipisz' 2.6.33rcX work
+ * turn on power to camera on boot and add some comments
---
- arch/arm/mach-omap2/board-omap3beagle.c | 57 ++++++++++++++++++++++++++----
- 1 files changed, 49 insertions(+), 8 deletions(-)
+ arch/arm/mach-omap2/board-omap3beagle.c | 62 +++++++++++++++++++++++++++----
+ 1 files changed, 54 insertions(+), 8 deletions(-)
diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
-index 1caaa01..accf80d 100644
+index 3b7f6ec..429dacb 100644
--- a/arch/arm/mach-omap2/board-omap3beagle.c
+++ b/arch/arm/mach-omap2/board-omap3beagle.c
@@ -53,6 +53,23 @@
@@ -37,16 +38,21 @@ index 1caaa01..accf80d 100644
#define GPMC_CS0_BASE 0x60
#define GPMC_CS_SIZE 0x30
-@@ -303,12 +320,23 @@ static int beagle_twl_gpio_setup(struct device *dev,
+@@ -303,12 +320,28 @@ static int beagle_twl_gpio_setup(struct device *dev,
* power switch and overcurrent detect
*/
- gpio_request(gpio + 1, "EHCI_nOC");
- gpio_direction_input(gpio + 1);
+ if (cpu_is_omap3630()) {
++ /* Power on DVI, Serial and PWR led */
+ gpio_request(gpio + 1, "nDVI_PWR_EN");
+ gpio_direction_output(gpio + 1, 0);
+
++ /* Power on camera interface */
++ gpio_request(gpio + 2, "CAM_EN");
++ gpio_direction_output(gpio + 2, 1);
++
+ /* 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, 1);
@@ -66,13 +72,13 @@ index 1caaa01..accf80d 100644
/* TWL4030_GPIO_MAX + 1 == ledB, PMU_STAT (out, active low LED) */
gpio_leds[2].gpio = gpio + TWL4030_GPIO_MAX + 1;
-@@ -501,9 +529,22 @@ static struct platform_device keys_gpio = {
+@@ -501,9 +534,22 @@ static struct platform_device keys_gpio = {
static void __init omap3_beagle_init_irq(void)
{
- omap2_init_common_hw(mt46h32m32lf6_sdrc_params,
-- mt46h32m32lf6_sdrc_params, omap35x_mpu_rate_table,
-- omap35x_dsp_rate_table, omap35x_l3_rate_table);
+- mt46h32m32lf6_sdrc_params, omap3_mpu_rate_table,
+- omap3_dsp_rate_table, omap3_l3_rate_table);
+ if (cpu_is_omap3630())
+ {
+ omap2_init_common_hw(mt46h32m32lf6_sdrc_params,
diff --git a/recipes/linux/linux-omap-psp-2.6.32/0007-ARM-OMAP-beagleboard-Add-infrastructure-to-do-fixups.patch b/recipes/linux/linux-omap-psp-2.6.32/0007-ARM-OMAP-beagleboard-Add-infrastructure-to-do-fixups.patch
new file mode 100644
index 0000000000..184ce18948
--- /dev/null
+++ b/recipes/linux/linux-omap-psp-2.6.32/0007-ARM-OMAP-beagleboard-Add-infrastructure-to-do-fixups.patch
@@ -0,0 +1,172 @@
+From 32fb278553a4cd6126c1791d70aa33df12f73d90 Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen@dominion.thruhere.net>
+Date: Mon, 3 May 2010 14:41:29 +0200
+Subject: [PATCH 07/43] ARM: OMAP: beagleboard: Add infrastructure to do fixups based on expansionboard name passed by u-boot
+
+And add support for zippy2
+---
+ arch/arm/mach-omap2/board-omap3beagle.c | 88 +++++++++++++++++++++++++++----
+ 1 files changed, 78 insertions(+), 10 deletions(-)
+
+diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
+index 429dacb..ac96551 100644
+--- a/arch/arm/mach-omap2/board-omap3beagle.c
++++ b/arch/arm/mach-omap2/board-omap3beagle.c
+@@ -75,6 +75,8 @@ static struct omap_opp * _omap37x_l3_rate_table = NULL;
+
+ #define NAND_BLOCK_SIZE SZ_128K
+
++char expansionboard_name[16];
++
+ #if defined(CONFIG_ENC28J60) || defined(CONFIG_ENC28J60_MODULE)
+
+ #include <plat/mcspi.h>
+@@ -87,7 +89,7 @@ static struct omap2_mcspi_device_config enc28j60_spi_chip_info = {
+ .single_channel = 1, /* 0: slave, 1: master */
+ };
+
+-static struct spi_board_info omap3beagle_spi_board_info[] __initdata = {
++static struct spi_board_info omap3beagle_zippy_spi_board_info[] __initdata = {
+ {
+ .modalias = "enc28j60",
+ .bus_num = 4,
+@@ -102,21 +104,62 @@ static void __init omap3beagle_enc28j60_init(void)
+ if ((gpio_request(OMAP3BEAGLE_GPIO_ENC28J60_IRQ, "ENC28J60_IRQ") == 0) &&
+ (gpio_direction_input(OMAP3BEAGLE_GPIO_ENC28J60_IRQ) == 0)) {
+ gpio_export(OMAP3BEAGLE_GPIO_ENC28J60_IRQ, 0);
+- omap3beagle_spi_board_info[0].irq = OMAP_GPIO_IRQ(OMAP3BEAGLE_GPIO_ENC28J60_IRQ);
+- set_irq_type(omap3beagle_spi_board_info[0].irq, IRQ_TYPE_EDGE_FALLING);
++ omap3beagle_zippy_spi_board_info[0].irq = OMAP_GPIO_IRQ(OMAP3BEAGLE_GPIO_ENC28J60_IRQ);
++ set_irq_type(omap3beagle_zippy_spi_board_info[0].irq, IRQ_TYPE_EDGE_FALLING);
+ } else {
+ printk(KERN_ERR "could not obtain gpio for ENC28J60_IRQ\n");
+ return;
+ }
+
+- spi_register_board_info(omap3beagle_spi_board_info,
+- ARRAY_SIZE(omap3beagle_spi_board_info));
++ spi_register_board_info(omap3beagle_zippy_spi_board_info,
++ ARRAY_SIZE(omap3beagle_zippy_spi_board_info));
+ }
+
+ #else
+ static inline void __init omap3beagle_enc28j60_init(void) { return; }
+ #endif
+
++#if defined(CONFIG_KS8851) || defined(CONFIG_KS8851_MODULE)
++
++#include <plat/mcspi.h>
++#include <linux/spi/spi.h>
++
++#define OMAP3BEAGLE_GPIO_KS8851_IRQ 157
++
++static struct omap2_mcspi_device_config ks8851_spi_chip_info = {
++ .turbo_mode = 0,
++ .single_channel = 1, /* 0: slave, 1: master */
++};
++
++static struct spi_board_info omap3beagle_zippy2_spi_board_info[] __initdata = {
++ {
++ .modalias = "ks8851",
++ .bus_num = 4,
++ .chip_select = 0,
++ .max_speed_hz = 36000000,
++ .controller_data = &ks8851_spi_chip_info,
++ },
++};
++
++static void __init omap3beagle_ks8851_init(void)
++{
++ if ((gpio_request(OMAP3BEAGLE_GPIO_KS8851_IRQ, "KS8851_IRQ") == 0) &&
++ (gpio_direction_input(OMAP3BEAGLE_GPIO_KS8851_IRQ) == 0)) {
++ gpio_export(OMAP3BEAGLE_GPIO_KS8851_IRQ, 0);
++ omap3beagle_zippy2_spi_board_info[0].irq = OMAP_GPIO_IRQ(OMAP3BEAGLE_GPIO_KS8851_IRQ);
++ set_irq_type(omap3beagle_zippy2_spi_board_info[0].irq, IRQ_TYPE_EDGE_FALLING);
++ } else {
++ printk(KERN_ERR "could not obtain gpio for KS8851_IRQ\n");
++ return;
++ }
++
++ spi_register_board_info(omap3beagle_zippy2_spi_board_info,
++ ARRAY_SIZE(omap3beagle_zippy2_spi_board_info));
++}
++
++#else
++static inline void __init omap3beagle_ks8851_init(void) { return; }
++#endif
+
+ static struct mtd_partition omap3beagle_nand_partitions[] = {
+ /* All the partition sizes are listed in terms of NAND block size */
+@@ -281,8 +324,6 @@ static struct twl4030_hsmmc_info mmc[] = {
+ {
+ .mmc = 2,
+ .wires = 4,
+- .gpio_wp = 141,
+- .gpio_cd = 162,
+ .transceiver = true,
+ .ocr_mask = 0x00100000, /* 3.3V */
+ },
+@@ -601,7 +642,7 @@ static void __init omap3beagle_flash_init(void)
+ }
+ }
+
+-static struct ehci_hcd_omap_platform_data ehci_pdata __initconst = {
++static struct ehci_hcd_omap_platform_data ehci_pdata __initdata = {
+
+ .port_mode[0] = EHCI_HCD_OMAP_MODE_PHY,
+ .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY,
+@@ -621,6 +662,15 @@ static struct omap_board_mux board_mux[] __initdata = {
+ #define board_mux NULL
+ #endif
+
++static int __init expansionboard_setup(char *str)
++{
++ if (!str)
++ return -EINVAL;
++ strncpy(expansionboard_name, str, 16);
++ printk(KERN_INFO "Beagle expansionboard: %s\n", expansionboard_name);
++ return 0;
++}
++
+ static void __init omap3_beagle_init(void)
+ {
+ omap3_mux_init(board_mux, OMAP_PACKAGE_CBB);
+@@ -634,8 +684,24 @@ static void __init omap3_beagle_init(void)
+ /* REVISIT leave DVI powered down until it's needed ... */
+ gpio_direction_output(170, true);
+
+- omap3beagle_enc28j60_init();
+-
++ if(!strcmp(expansionboard_name, "zippy"))
++ {
++ printk(KERN_INFO "Beagle expansionboard: initializing enc28j60\n");
++ omap3beagle_enc28j60_init();
++ printk(KERN_INFO "Beagle expansionboard: assigning GPIO 141 and 162 to MMC1\n");
++ mmc[1].gpio_wp = 141;
++ mmc[1].gpio_cd = 162;
++ }
++
++ if(!strcmp(expansionboard_name, "zippy2"))
++ {
++ printk(KERN_INFO "Beagle expansionboard: initializing ks_8851\n");
++ omap3beagle_ks8851_init();
++ printk(KERN_INFO "Beagle expansionboard: assigning GPIO 141 and 162 to MMC1\n");
++ mmc[1].gpio_wp = 141;
++ mmc[1].gpio_cd = 162;
++ }
++
+ usb_musb_init();
+ usb_ehci_init(&ehci_pdata);
+ omap3beagle_flash_init();
+@@ -652,6 +718,8 @@ static void __init omap3_beagle_map_io(void)
+ omap2_map_common_io();
+ }
+
++early_param("buddy", expansionboard_setup);
++
+ MACHINE_START(OMAP3_BEAGLE, "OMAP3 Beagle Board")
+ /* Maintainer: Syed Mohammed Khasim - http://beagleboard.org */
+ .phys_io = 0x48000000,
+--
+1.6.6.1
+
diff --git a/recipes/linux/linux-omap-psp-2.6.32/0007-mt9t111-first-stab-at-merging-sensor-driver-based-on.patch b/recipes/linux/linux-omap-psp-2.6.32/0007-mt9t111-first-stab-at-merging-sensor-driver-based-on.patch
deleted file mode 100644
index 298cf482d9..0000000000
--- a/recipes/linux/linux-omap-psp-2.6.32/0007-mt9t111-first-stab-at-merging-sensor-driver-based-on.patch
+++ /dev/null
@@ -1,2394 +0,0 @@
-From 2170c42abf50a27b9aa9ed253b25312380bdc84f Mon Sep 17 00:00:00 2001
-From: Koen Kooi <k-kooi@ti.com>
-Date: Tue, 9 Feb 2010 17:16:13 +0100
-Subject: [PATCH 07/42] mt9t111: first stab at merging sensor driver based on a patch by Leopard Imaging
-
----
- drivers/media/video/Kconfig | 8 +
- drivers/media/video/Makefile | 1 +
- drivers/media/video/mt9t111.c | 883 ++++++++++++++++++++++++
- drivers/media/video/mt9t111_reg.h | 1364 +++++++++++++++++++++++++++++++++++++
- include/media/mt9t111.h | 79 +++
- 5 files changed, 2335 insertions(+), 0 deletions(-)
- create mode 100644 drivers/media/video/mt9t111.c
- create mode 100644 drivers/media/video/mt9t111_reg.h
- create mode 100644 include/media/mt9t111.h
-
-diff --git a/drivers/media/video/Kconfig b/drivers/media/video/Kconfig
-index 41e39a7..f67ed46 100644
---- a/drivers/media/video/Kconfig
-+++ b/drivers/media/video/Kconfig
-@@ -344,6 +344,14 @@ config VIDEO_MT9P012
- MT9P012 camera. It is currently working with the TI OMAP3
- camera controller.
-
-+config VIDEO_MT9T111
-+ tristate "Micron MT9T111 raw sensor driver (3MP)"
-+ depends on I2C && VIDEO_V4L2
-+ ---help---
-+ This is a Video4Linux2 sensor-level driver for the Micron
-+ MT9T111 camera. It is currently working with the TI OMAP3
-+ camera controller.
-+
- config VIDEO_DW9710
- tristate "Lens driver for DW9710"
- depends on I2C && VIDEO_V4L2
-diff --git a/drivers/media/video/Makefile b/drivers/media/video/Makefile
-index 88e8ec1..31688bf 100644
---- a/drivers/media/video/Makefile
-+++ b/drivers/media/video/Makefile
-@@ -127,6 +127,7 @@ obj-$(CONFIG_VIDEO_CAFE_CCIC) += cafe_ccic.o
- obj-y += isp/
- obj-$(CONFIG_VIDEO_OMAP3) += omap34xxcam.o
- obj-$(CONFIG_VIDEO_MT9P012) += mt9p012.o
-+obj-$(CONFIG_VIDEO_MT9T111) += mt9t111.o
- obj-$(CONFIG_VIDEO_DW9710) += dw9710.o
- obj-$(CONFIG_VIDEO_TPS61059) += tps61059.o
- obj-$(CONFIG_VIDEO_OV3640) += ov3640.o
-diff --git a/drivers/media/video/mt9t111.c b/drivers/media/video/mt9t111.c
-new file mode 100644
-index 0000000..ecc5115
---- /dev/null
-+++ b/drivers/media/video/mt9t111.c
-@@ -0,0 +1,883 @@
-+/*
-+ * drivers/media/video/mt9t111.c
-+ *
-+ * mt9t111 sensor driver
-+ *
-+ * Copyright (C) 2009 Leopard Imaging
-+ *
-+ * This file is licensed under the terms of the GNU General Public License
-+ * version 2. This program is licensed "as is" without any warranty of any
-+ * kind, whether express or implied.
-+ */
-+
-+#include <linux/i2c.h>
-+#include <linux/delay.h>
-+#include <media/v4l2-int-device.h>
-+
-+#include <media/mt9t111.h>
-+#include "mt9t111_reg.h"
-+
-+#define USE_RAW // YCbCr mode does not work yet
-+//#define COLOR_BAR // Create a Color bar test pattern, Blue, Green, Red, Grey
-+
-+#define SENSOR_DETECTED 1
-+#define SENSOR_NOT_DETECTED 0
-+
-+static void mt9t111_loaddefault(struct i2c_client *client);
-+
-+/*
-+* as a place holder for further development
-+*/
-+static void debug_dummy(char *in_msg)
-+{
-+
-+}
-+
-+/* list of image formats supported by mt9t111 sensor */
-+const static struct v4l2_fmtdesc mt9t111_formats[] = {
-+#ifdef USE_RAW
-+ {
-+ .description = "RAW ",
-+ .pixelformat = V4L2_PIX_FMT_SGRBG10,
-+ },
-+#else
-+ {
-+ .description = "YUV 422 ",
-+ .pixelformat = V4L2_PIX_FMT_YUYV,
-+ },
-+#endif
-+};
-+
-+#define NUM_CAPTURE_FORMATS ARRAY_SIZE(mt9t111_formats)
-+
-+/*
-+ * Array of image sizes supported by MT9T111. These must be ordered from
-+ * smallest image size to largest.
-+ */
-+const static struct capture_size mt9t111_sizes[] = {
-+ { 640, 480 },
-+// { 2048, 1536}
-+};
-+
-+#define NUM_CAPTURE_SIZE ARRAY_SIZE(mt9t111_sizes)
-+
-+
-+const struct v4l2_fract mt9t111_frameintervals[] = {
-+ { .numerator = 1, .denominator = 10 }
-+};
-+
-+#define NUM_CAPTURE_FRAMEINTERVALS ARRAY_SIZE(mt9t111_frameintervals)
-+
-+/**
-+ * struct mt9t111_sensor - main structure for storage of sensor information
-+ * @pdata: access functions and data for platform level information
-+ * @v4l2_int_device: V4L2 device structure structure
-+ * @i2c_client: iic client device structure
-+ * @pix: V4L2 pixel format information structure
-+ * @timeperframe: time per frame expressed as V4L fraction
-+ * @scaler:
-+ * @ver: mt9t111 chip version
-+ * @fps: frames per second value
-+ */
-+struct mt9t111_sensor {
-+ const struct mt9t111_platform_data *pdata;
-+ struct v4l2_int_device *v4l2_int_device;
-+ struct i2c_client *i2c_client;
-+ struct v4l2_pix_format pix;
-+ struct v4l2_fract timeperframe;
-+ int scaler;
-+ int ver;
-+ int fps;
-+ int state;
-+};
-+
-+static struct mt9t111_sensor mt9t111 = {
-+ .timeperframe = {
-+ .numerator = 1,
-+ .denominator = 10,
-+ },
-+ .state = SENSOR_NOT_DETECTED,
-+};
-+
-+/**
-+ * mt9t111_read_reg - Read a value from a register in an mt9t111 sensor device
-+ * @client: i2c driver client structure
-+ * @data_length: length of data to be read
-+ * @reg: register address / offset
-+ * @val: stores the value that gets read
-+ *
-+ * Read a value from a register in an mt9t111 sensor device.
-+ * The value is returned in 'val'.
-+ * Returns zero if successful, or non-zero otherwise.
-+ */
-+static int
-+mt9t111_read_reg(struct i2c_client *client, u16 reg, u16 *val)
-+{
-+ struct i2c_msg msg[1];
-+ u8 data[4];
-+ int err;
-+
-+ msg->addr = client->addr;
-+ msg->flags = 0;
-+ msg->len = 2;
-+ msg->buf = data;
-+ data[0] = (reg & 0xff00) >> 8;
-+ data[1] = (reg & 0x00ff);
-+ err = i2c_transfer(client->adapter, msg, 1);
-+ if (err >= 0) {
-+ msg->flags = I2C_M_RD;
-+ msg->len = 2; /* 2 byte read */
-+ err = i2c_transfer(client->adapter, msg, 1);
-+ if (err >= 0) {
-+ *val = ((data[0] & 0x00ff) << 8)
-+ | (data[1] & 0x00ff);
-+ return 0;
-+ }
-+ }
-+ return err;
-+}
-+
-+/**
-+ * mt9t111_write_reg - Write a value to a register in an mt9t111 sensor device
-+ * @client: i2c driver client structure
-+ * @data_length: length of data to be read
-+ * @reg: register address / offset
-+ * @val: value to be written to specified register
-+ *
-+ * Write a value to a register in an mt9t111 sensor device.
-+ * Returns zero if successful, or non-zero otherwise.
-+ */
-+static int
-+mt9t111_write_reg(struct i2c_client *client, u16 reg, u16 val)
-+{
-+ struct i2c_msg msg[1];
-+ u8 data[20];
-+ int err;
-+
-+ msg->addr = client->addr;
-+ msg->flags = 0;
-+ msg->len = 4;
-+ msg->buf = data;
-+ data[0] = (u8)((reg & 0xff00) >> 8);
-+ data[1] = (u8)(reg & 0x00ff);
-+ data[2] = (u8)((val & 0xff00) >> 8);
-+ data[3] = (u8)(val & 0x00ff);
-+ err = i2c_transfer(client->adapter, msg, 1);
-+
-+ return err;
-+}
-+
-+/**
-+ * mt9t111_write_regs - Write registers to an mt9t111 sensor device
-+ * @client: i2c driver client structure
-+ * @reg_in: pointer to registers to write
-+ * @cnt: the number of registers
-+ *
-+ * Write registers .
-+ * Returns zero if successful, or non-zero otherwise.
-+ */
-+static int
-+mt9t111_write_regs(struct i2c_client *client, mt9t111_regs *reg_in, int cnt)
-+{
-+ int err = 0;
-+ int i;
-+ mt9t111_regs *reg = reg_in;
-+
-+ for (i=0;i<cnt;i++) {
-+ if (reg->delay_time == 0) {
-+ err |= mt9t111_write_reg(client, reg->addr, reg->data);
-+ } else if (reg->addr != 0 || reg->data != 0) {
-+ err |= mt9t111_write_reg(client, reg->addr, reg->data);
-+ mdelay(reg->delay_time);
-+ } else
-+ mdelay(reg->delay_time);
-+
-+ if (err < 0) {
-+ dev_warn(&client->dev, "write reg error, addr = 0x%x, data = 0x%x \n", \
-+ reg->addr, reg->data);
-+ return err;
-+ }
-+ reg++;
-+ }
-+ return err;
-+}
-+
-+/**
-+ * mt9t111_detect - Detect if an mt9t111 is present, and if so which revision
-+ * @client: pointer to the i2c client driver structure
-+ *
-+ * Detect if an mt9t111 is present
-+ * Returns a negative error number if no device is detected, or the
-+ * non-negative value of the version ID register if a device is detected.
-+ */
-+static int
-+mt9t111_detect(struct i2c_client *client)
-+{
-+ u16 val;
-+
-+ /* chip ID is at address 0 */
-+ if (mt9t111_read_reg(client, MT9T111_CHIP_ID, &val) < 0)
-+ return -ENODEV;
-+ dev_info(&client->dev, "model id detected 0x%x\n", val);
-+
-+ if (val != MT9T111_CHIP_ID_VALUE) {
-+ dev_warn(&client->dev, "model id mismatch received 0x%x expecting 0x%x\n",
-+ val, MT9T111_CHIP_ID_VALUE);
-+
-+ return -ENODEV;
-+ }
-+
-+ return 0;
-+
-+}
-+
-+/**
-+ * mt9t111_configure - Configure the mt9t111 for the specified image mode
-+ * @s: pointer to standard V4L2 device structure
-+ *
-+ * Configure the mt9t111 for a specified image size, pixel format, and frame
-+ * period. xclk is the frequency (in Hz) of the xclk input to the mt9t111.
-+ * fper is the frame period (in seconds) expressed as a fraction.
-+ * Returns zero if successful, or non-zero otherwise.
-+ * The actual frame period is returned in fper.
-+ */
-+static int mt9t111_configure(struct v4l2_int_device *s)
-+{
-+ debug_dummy("debug_dummy -- to set imager mode");
-+
-+ return 0;
-+}
-+
-+/**
-+ * ioctl_enum_framesizes - V4L2 sensor if handler for vidioc_int_enum_framesizes
-+ * @s: pointer to standard V4L2 device structure
-+ * @frms: pointer to standard V4L2 framesizes enumeration structure
-+ *
-+ * Returns possible framesizes depending on choosen pixel format
-+ **/
-+static int ioctl_enum_framesizes(struct v4l2_int_device *s,
-+ struct v4l2_frmsizeenum *frms)
-+{
-+ int ifmt;
-+
-+ for (ifmt = 0; ifmt < NUM_CAPTURE_FORMATS; ifmt++) {
-+ if (frms->pixel_format == mt9t111_formats[ifmt].pixelformat)
-+ break;
-+ }
-+ /* Is requested pixelformat not found on sensor? */
-+ if (ifmt == NUM_CAPTURE_FORMATS)
-+ return -EINVAL;
-+
-+ /* Do we already reached all discrete framesizes? */
-+ if (frms->index >= NUM_CAPTURE_SIZE)
-+ return -EINVAL;
-+
-+ frms->type = V4L2_FRMSIZE_TYPE_DISCRETE;
-+ frms->discrete.width = mt9t111_sizes[frms->index].width;
-+ frms->discrete.height = mt9t111_sizes[frms->index].height;
-+
-+ return 0;
-+
-+}
-+
-+static int ioctl_enum_frameintervals(struct v4l2_int_device *s,
-+ struct v4l2_frmivalenum *frmi)
-+{
-+ int ifmt;
-+
-+printk(KERN_INFO "entering ioctl_enum_frameintervals\n");
-+printk(KERN_INFO "index = %d, pixel_format = 0x%x, width = %d, height = %d\n",
-+ frmi->index, frmi->pixel_format, frmi->width, frmi->height);
-+printk(KERN_INFO "mt9t111 format = 0x%x\n", mt9t111_formats[0].pixelformat);
-+
-+ if (frmi->index >= NUM_CAPTURE_FRAMEINTERVALS)
-+ return -EINVAL;
-+
-+ for (ifmt = 0; ifmt < NUM_CAPTURE_FORMATS; ifmt++) {
-+ if (frmi->pixel_format == mt9t111_formats[ifmt].pixelformat)
-+ break;
-+ }
-+ /* Is requested pixelformat not found on sensor? */
-+ if (ifmt == NUM_CAPTURE_FORMATS)
-+ return -EINVAL;
-+
-+ frmi->type = V4L2_FRMSIZE_TYPE_DISCRETE;
-+ frmi->discrete.numerator =
-+ mt9t111_frameintervals[frmi->index].numerator;
-+ frmi->discrete.denominator =
-+ mt9t111_frameintervals[frmi->index].denominator;
-+ return 0;
-+}
-+
-+/**
-+ * ioctl_init - V4L2 sensor interface handler for VIDIOC_INT_INIT
-+ * @s: pointer to standard V4L2 device structure
-+ *
-+ * Initialize the sensor device (call mt9t111_configure())
-+ */
-+static int ioctl_init(struct v4l2_int_device *s)
-+{
-+ return 0;
-+}
-+
-+/**
-+ * ioctl_dev_exit - V4L2 sensor interface handler for vidioc_int_dev_exit_num
-+ * @s: pointer to standard V4L2 device structure
-+ *
-+ * Delinitialise the dev. at slave detach. The complement of ioctl_dev_init.
-+ */
-+static int ioctl_dev_exit(struct v4l2_int_device *s)
-+{
-+ return 0;
-+}
-+
-+/**
-+ * ioctl_dev_init - V4L2 sensor interface handler for vidioc_int_dev_init_num
-+ * @s: pointer to standard V4L2 device structure
-+ *
-+ * Initialise the device when slave attaches to the master. Returns 0 if
-+ * mt9t111 device could be found, otherwise returns appropriate error.
-+ */
-+static int ioctl_dev_init(struct v4l2_int_device *s)
-+{
-+ return 0;
-+}
-+
-+/**
-+ * ioctl_s_power - V4L2 sensor interface handler for vidioc_int_s_power_num
-+ * @s: pointer to standard V4L2 device structure
-+ * @on: power state to which device is to be set
-+ *
-+ * Sets devices power state to requrested state, if possible.
-+ */
-+static int ioctl_s_power(struct v4l2_int_device *s, enum v4l2_power on)
-+{
-+ struct mt9t111_sensor *sensor = s->priv;
-+ struct i2c_client *c = sensor->i2c_client;
-+ int rval;
-+
-+ if ((on == V4L2_POWER_STANDBY) && (sensor->state == SENSOR_DETECTED))
-+ debug_dummy("debug_dummy -- put to standby\n");
-+
-+ if (on != V4L2_POWER_ON)
-+ debug_dummy("debug_dummy -- stop master clock\n");
-+ else
-+ debug_dummy("debug_dummy -- enable clock\n");;
-+
-+ rval = sensor->pdata->power_set(on);
-+ if (rval < 0) {
-+ dev_err(&c->dev, "Unable to set the power state: " "mt9t111"
-+ " sensor\n");
-+ //sensor->pdata->set_xclk(0);
-+ return rval;
-+ }
-+
-+ if ((on == V4L2_POWER_ON) && (sensor->state == SENSOR_DETECTED))
-+ mt9t111_configure(s);
-+
-+ if ((on == V4L2_POWER_ON) && (sensor->state == SENSOR_NOT_DETECTED)) {
-+ rval = mt9t111_detect(c);
-+ if (rval < 0) {
-+ dev_err(&c->dev, "Unable to detect " "mt9t111"
-+ " sensor\n");
-+ sensor->state = SENSOR_NOT_DETECTED;
-+ return rval;
-+ }
-+ mt9t111_loaddefault(c);
-+ sensor->state = SENSOR_DETECTED;
-+ sensor->ver = rval;
-+ pr_info("mt9t111" " chip version 0x%02x detected\n",
-+ sensor->ver);
-+ }
-+ return 0;
-+}
-+
-+/**
-+ * ioctl_g_priv - V4L2 sensor interface handler for vidioc_int_g_priv_num
-+ * @s: pointer to standard V4L2 device structure
-+ * @p: void pointer to hold sensor's private data address
-+ *
-+ * Returns device's (sensor's) private data area address in p parameter
-+ */
-+static int ioctl_g_priv(struct v4l2_int_device *s, void *p)
-+{
-+ struct mt9t111_sensor *sensor = s->priv;
-+
-+ return sensor->pdata->priv_data_set(p);
-+}
-+
-+/**
-+ * ioctl_s_parm - V4L2 sensor interface handler for VIDIOC_S_PARM ioctl
-+ * @s: pointer to standard V4L2 device structure
-+ * @a: pointer to standard V4L2 VIDIOC_S_PARM ioctl structure
-+ *
-+ * Configures the sensor to use the input parameters, if possible. If
-+ * not possible, reverts to the old parameters and returns the
-+ * appropriate error code.
-+ */
-+static int ioctl_s_parm(struct v4l2_int_device *s,
-+ struct v4l2_streamparm *a)
-+{
-+ //TODO: set paramters
-+ debug_dummy("debug_dummy -- VIDIOC_S_PARM ");
-+ return 0;
-+}
-+
-+/**
-+ * ioctl_g_parm - V4L2 sensor interface handler for VIDIOC_G_PARM ioctl
-+ * @s: pointer to standard V4L2 device structure
-+ * @a: pointer to standard V4L2 VIDIOC_G_PARM ioctl structure
-+ *
-+ * Returns the sensor's video CAPTURE parameters.
-+ */
-+static int ioctl_g_parm(struct v4l2_int_device *s,
-+ struct v4l2_streamparm *a)
-+{
-+ struct mt9t111_sensor *sensor = s->priv;
-+ struct v4l2_captureparm *cparm = &a->parm.capture;
-+
-+ if (a->type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
-+ return -EINVAL;
-+
-+ memset(a, 0, sizeof(*a));
-+ a->type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
-+
-+ cparm->capability = V4L2_CAP_TIMEPERFRAME;
-+ cparm->timeperframe = sensor->timeperframe;
-+
-+ return 0;
-+}
-+
-+/**
-+ * ioctl_g_fmt_cap - V4L2 sensor interface handler for ioctl_g_fmt_cap
-+ * @s: pointer to standard V4L2 device structure
-+ * @f: pointer to standard V4L2 v4l2_format structure
-+ *
-+ * Returns the sensor's current pixel format in the v4l2_format
-+ * parameter.
-+ */
-+static int ioctl_g_fmt_cap(struct v4l2_int_device *s,
-+ struct v4l2_format *f)
-+{
-+ struct mt9t111_sensor *sensor = s->priv;
-+ f->fmt.pix = sensor->pix;
-+
-+ return 0;
-+}
-+
-+/**
-+ * ioctl_try_fmt_cap - Implement the CAPTURE buffer VIDIOC_TRY_FMT ioctl
-+ * @s: pointer to standard V4L2 device structure
-+ * @f: pointer to standard V4L2 VIDIOC_TRY_FMT ioctl structure
-+ *
-+ * Implement the VIDIOC_TRY_FMT ioctl for the CAPTURE buffer type. This
-+ * ioctl is used to negotiate the image capture size and pixel format
-+ * without actually making it take effect.
-+ */
-+static int ioctl_try_fmt_cap(struct v4l2_int_device *s,
-+ struct v4l2_format *f)
-+{
-+ struct v4l2_pix_format *pix = &f->fmt.pix;
-+ struct mt9t111_sensor *sensor = s->priv;
-+ struct v4l2_pix_format *pix2 = &sensor->pix;
-+
-+ pix->width = 640;
-+ pix->height = 480;
-+#ifdef USE_RAW
-+ pix->pixelformat = V4L2_PIX_FMT_SGRBG10;
-+ pix->bytesperline = pix->width;
-+ pix->colorspace = V4L2_COLORSPACE_SRGB;
-+#else
-+ pix->pixelformat = V4L2_PIX_FMT_YUYV;
-+ pix->bytesperline = pix->width * 2;
-+ pix->colorspace = V4L2_COLORSPACE_JPEG;
-+#endif
-+ pix->field = V4L2_FIELD_NONE;
-+
-+ pix->sizeimage = pix->bytesperline * pix->height;
-+ pix->priv = 0;
-+ *pix2 = *pix;
-+ return 0;
-+}
-+
-+/**
-+ * ioctl_s_fmt_cap - V4L2 sensor interface handler for VIDIOC_S_FMT ioctl
-+ * @s: pointer to standard V4L2 device structure
-+ * @f: pointer to standard V4L2 VIDIOC_S_FMT ioctl structure
-+ *
-+ * If the requested format is supported, configures the HW to use that
-+ * format, returns error code if format not supported or HW can't be
-+ * correctly configured.
-+ */
-+static int ioctl_s_fmt_cap(struct v4l2_int_device *s,
-+ struct v4l2_format *f)
-+{
-+ struct mt9t111_sensor *sensor = s->priv;
-+ struct v4l2_pix_format *pix = &f->fmt.pix;
-+ int rval;
-+
-+ rval = ioctl_try_fmt_cap(s, f);
-+ if (!rval)
-+ sensor->pix = *pix;
-+
-+ return rval;
-+}
-+
-+/**
-+ * ioctl_enum_fmt_cap - Implement the CAPTURE buffer VIDIOC_ENUM_FMT ioctl
-+ * @s: pointer to standard V4L2 device structure
-+ * @fmt: standard V4L2 VIDIOC_ENUM_FMT ioctl structure
-+ *
-+ * Implement the VIDIOC_ENUM_FMT ioctl for the CAPTURE buffer type.
-+ */
-+static int ioctl_enum_fmt_cap(struct v4l2_int_device *s,
-+ struct v4l2_fmtdesc *fmt)
-+{
-+ int index = fmt->index;
-+ enum v4l2_buf_type type = fmt->type;
-+
-+ memset(fmt, 0, sizeof(*fmt));
-+ fmt->index = index;
-+ fmt->type = type;
-+
-+ switch (fmt->type) {
-+ case V4L2_BUF_TYPE_VIDEO_CAPTURE:
-+ if (index >= NUM_CAPTURE_FORMATS)
-+ return -EINVAL;
-+ break;
-+ default:
-+ return -EINVAL;
-+ }
-+
-+ fmt->flags = mt9t111_formats[index].flags;
-+ strlcpy(fmt->description, mt9t111_formats[index].description,
-+ sizeof(fmt->description));
-+ fmt->pixelformat = mt9t111_formats[index].pixelformat;
-+
-+ return 0;
-+}
-+
-+/**
-+ * ioctl_s_ctrl - V4L2 sensor interface handler for VIDIOC_S_CTRL ioctl
-+ * @s: pointer to standard V4L2 device structure
-+ * @vc: standard V4L2 VIDIOC_S_CTRL ioctl structure
-+ *
-+ * If the requested control is supported, sets the control's current
-+ * value in HW (and updates the video_control[] array). Otherwise,
-+ * returns -EINVAL if the control is not supported.
-+ */
-+static int ioctl_s_ctrl(struct v4l2_int_device *s,
-+ struct v4l2_control *vc)
-+{
-+ debug_dummy("debug_dummy -- s ctrl\n");
-+ return 0;
-+}
-+
-+/**
-+ * ioctl_g_ctrl - V4L2 sensor interface handler for VIDIOC_G_CTRL ioctl
-+ * @s: pointer to standard V4L2 device structure
-+ * @vc: standard V4L2 VIDIOC_G_CTRL ioctl structure
-+ *
-+ * If the requested control is supported, returns the control's current
-+ * value from the video_control[] array. Otherwise, returns -EINVAL
-+ * if the control is not supported.
-+ */
-+static int ioctl_g_ctrl(struct v4l2_int_device *s,
-+ struct v4l2_control *vc)
-+{
-+ debug_dummy("debug_dummy -- g ctrl\n");
-+ return 0;
-+}
-+
-+/**
-+ * ioctl_queryctrl - V4L2 sensor interface handler for VIDIOC_QUERYCTRL ioctl
-+ * @s: pointer to standard V4L2 device structure
-+ * @qc: standard V4L2 VIDIOC_QUERYCTRL ioctl structure
-+ *
-+ * If the requested control is supported, returns the control information
-+ * from the video_control[] array. Otherwise, returns -EINVAL if the
-+ * control is not supported.
-+ */
-+static int ioctl_queryctrl(struct v4l2_int_device *s,
-+ struct v4l2_queryctrl *qc)
-+{
-+ debug_dummy("debug_dummy -- query ctrl\n");
-+ return-EINVAL;
-+}
-+
-+/**
-+ * ioctl_s_routing - V4L2 decoder interface handler for VIDIOC_S_INPUT ioctl
-+ * @s: pointer to standard V4L2 device structure
-+ * @index: number of the input
-+ *
-+ * If index is valid, selects the requested input. Otherwise, returns -EINVAL if
-+ * the input is not supported or there is no active signal present in the
-+ * selected input.
-+ */
-+static int ioctl_s_routing(struct v4l2_int_device *s,
-+ struct v4l2_routing *route)
-+{
-+ return 0;
-+}
-+
-+/**
-+ * ioctl_g_ifparm - V4L2 decoder interface handler for vidioc_int_g_ifparm_num
-+ * @s: pointer to standard V4L2 device structure
-+ * @p: pointer to standard V4L2 vidioc_int_g_ifparm_num ioctl structure
-+ *
-+ * Gets slave interface parameters.
-+ * Calculates the required xclk value to support the requested
-+ * clock parameters in p. This value is returned in the p
-+ * parameter.
-+ */
-+static int ioctl_g_ifparm(struct v4l2_int_device *s, struct v4l2_ifparm *p)
-+{
-+ struct mt9t111_sensor *sensor = s->priv;
-+ int rval;
-+
-+ if (p == NULL)
-+ return -EINVAL;
-+
-+ if (NULL == sensor->pdata->ifparm)
-+ return -EINVAL;
-+
-+ rval = sensor->pdata->ifparm(p);
-+ if (rval) {
-+ v4l_err(sensor->i2c_client, "g_ifparm.Err[%d]\n", rval);
-+ return rval;
-+ }
-+
-+ p->u.ycbcr.clock_curr = 40*1000000; // temporal value
-+
-+ return 0;
-+}
-+
-+
-+static struct v4l2_int_ioctl_desc mt9t111_ioctl_desc[] = {
-+ { .num = vidioc_int_enum_framesizes_num,
-+ .func = (v4l2_int_ioctl_func *)ioctl_enum_framesizes },
-+ { .num = vidioc_int_enum_frameintervals_num,
-+ .func = (v4l2_int_ioctl_func *)ioctl_enum_frameintervals },
-+ { .num = vidioc_int_dev_init_num,
-+ .func = (v4l2_int_ioctl_func *)ioctl_dev_init },
-+ { .num = vidioc_int_dev_exit_num,
-+ .func = (v4l2_int_ioctl_func *)ioctl_dev_exit },
-+ { .num = vidioc_int_s_power_num,
-+ .func = (v4l2_int_ioctl_func *)ioctl_s_power },
-+ { .num = vidioc_int_g_priv_num,
-+ .func = (v4l2_int_ioctl_func *)ioctl_g_priv },
-+ {vidioc_int_g_ifparm_num,
-+ .func = (v4l2_int_ioctl_func*) ioctl_g_ifparm},
-+ { .num = vidioc_int_init_num,
-+ .func = (v4l2_int_ioctl_func *)ioctl_init },
-+ { .num = vidioc_int_enum_fmt_cap_num,
-+ .func = (v4l2_int_ioctl_func *)ioctl_enum_fmt_cap },
-+ { .num = vidioc_int_try_fmt_cap_num,
-+ .func = (v4l2_int_ioctl_func *)ioctl_try_fmt_cap },
-+ { .num = vidioc_int_g_fmt_cap_num,
-+ .func = (v4l2_int_ioctl_func *)ioctl_g_fmt_cap },
-+ { .num = vidioc_int_s_fmt_cap_num,
-+ .func = (v4l2_int_ioctl_func *)ioctl_s_fmt_cap },
-+ { .num = vidioc_int_g_parm_num,
-+ .func = (v4l2_int_ioctl_func *)ioctl_g_parm },
-+ { .num = vidioc_int_s_parm_num,
-+ .func = (v4l2_int_ioctl_func *)ioctl_s_parm },
-+ { .num = vidioc_int_queryctrl_num,
-+ .func = (v4l2_int_ioctl_func *)ioctl_queryctrl },
-+ { .num = vidioc_int_g_ctrl_num,
-+ .func = (v4l2_int_ioctl_func *)ioctl_g_ctrl },
-+ { .num = vidioc_int_s_ctrl_num,
-+ .func = (v4l2_int_ioctl_func *)ioctl_s_ctrl },
-+ {.num = vidioc_int_s_video_routing_num,
-+ .func = (v4l2_int_ioctl_func *) ioctl_s_routing},
-+};
-+
-+static void mt9t111_refresh(struct i2c_client *client){
-+ int i;
-+ unsigned short value;
-+ // MCU_ADDRESS [SEQ_CMD] -- refresh
-+ mt9t111_write_reg(client, 0x098E, 0x8400);
-+ mt9t111_write_reg(client, 0x0990, 0x0006);
-+ for (i=0;i<100;i++){
-+ mt9t111_write_reg(client, 0x098E, 0x8400);
-+ mt9t111_read_reg(client,0x0990,&value);
-+ if ( value == 0)
-+ break;
-+ mdelay(5);
-+ }
-+}
-+
-+#ifdef COLOR_BAR
-+static void mt9t111_color_bar(struct i2c_client *client)
-+{
-+ mt9t111_write_reg(client, 0x3210, 0x01B0); // disable lens correction
-+
-+ mt9t111_write_reg(client, 0x098E, 0x6003);
-+ mt9t111_write_reg(client, 0x0990, 0x0100);
-+ mt9t111_write_reg(client, 0x098E, 0x6025);
-+ mt9t111_write_reg(client, 0x0990, 0x0003);
-+}
-+#endif
-+
-+static void mt9t111_bayer_format(struct i2c_client *client)
-+{
-+ mt9t111_write_regs(client, bayer_pattern_regs, sizeof(bayer_pattern_regs)/sizeof(mt9t111_regs));
-+}
-+
-+static void mt9t111_enable_pll(struct i2c_client *client)
-+{
-+ int i;
-+ unsigned short value;
-+
-+ mt9t111_write_regs(client, pll_regs1, sizeof(pll_regs1)/sizeof(mt9t111_regs));
-+ for (i=0;i<100;i++){
-+ mt9t111_read_reg(client,0x0014,&value);
-+ if (( value & 0x8000) != 0)
-+ break;
-+ mdelay(2);
-+ }
-+ mt9t111_write_regs(client, pll_regs2, sizeof(pll_regs2)/sizeof(mt9t111_regs));
-+}
-+
-+
-+static void mt9t111_loaddefault(struct i2c_client *client)
-+{
-+ mt9t111_write_reg(client, 0x001A, 0x0219);
-+ mt9t111_write_reg(client, 0x001A, 0x0218);
-+
-+ mt9t111_enable_pll(client);
-+ mt9t111_write_regs(client, def_regs1, sizeof(def_regs1)/sizeof(mt9t111_regs));
-+ mt9t111_write_regs(client, patch_rev6, sizeof(patch_rev6)/sizeof(mt9t111_regs));
-+ mt9t111_write_regs(client, def_regs2, sizeof(def_regs2)/sizeof(mt9t111_regs));
-+
-+#ifdef USE_RAW
-+ mt9t111_bayer_format(client);
-+#endif
-+
-+#ifdef COLOR_BAR
-+ mt9t111_color_bar(client);
-+#endif
-+
-+ mt9t111_refresh(client);
-+}
-+
-+static struct v4l2_int_slave mt9t111_slave = {
-+ .ioctls = mt9t111_ioctl_desc,
-+ .num_ioctls = ARRAY_SIZE(mt9t111_ioctl_desc),
-+};
-+
-+static struct v4l2_int_device mt9t111_int_device = {
-+ .module = THIS_MODULE,
-+ .name = "mt9t111",
-+ .priv = &mt9t111,
-+ .type = v4l2_int_type_slave,
-+ .u = {
-+ .slave = &mt9t111_slave,
-+ },
-+};
-+
-+/**
-+ * mt9t111_probe - sensor driver i2c probe handler
-+ * @client: i2c driver client device structure
-+ *
-+ * Register sensor as an i2c client device and V4L2
-+ * device.
-+ */
-+static int
-+mt9t111_probe(struct i2c_client *client, const struct i2c_device_id *id)
-+{
-+ struct mt9t111_sensor *sensor = &mt9t111;
-+ int err;
-+
-+ if (i2c_get_clientdata(client))
-+ return -EBUSY;
-+
-+ sensor->pdata = client->dev.platform_data;
-+
-+ if (!sensor->pdata) {
-+ dev_err(&client->dev, "no platform data?\n");
-+ return -ENODEV;
-+ }
-+
-+ sensor->v4l2_int_device = &mt9t111_int_device;
-+ sensor->i2c_client = client;
-+
-+ i2c_set_clientdata(client, sensor);
-+
-+ sensor->pix.width = 640;
-+ sensor->pix.height = 480;
-+#ifdef USE_RAW
-+ sensor->pix.pixelformat = V4L2_PIX_FMT_SGRBG10;
-+#else
-+ sensor->pix.pixelformat = V4L2_PIX_FMT_YUYV;
-+#endif
-+ err = v4l2_int_device_register(sensor->v4l2_int_device);
-+ if (err)
-+ i2c_set_clientdata(client, NULL);
-+ return err;
-+}
-+
-+/**
-+ * mt9t111_remove - sensor driver i2c remove handler
-+ * @client: i2c driver client device structure
-+ *
-+ * Unregister sensor as an i2c client device and V4L2
-+ * device. Complement of mt9t111_probe().
-+ */
-+static int __exit
-+mt9t111_remove(struct i2c_client *client)
-+{
-+ struct mt9t111_sensor *sensor = i2c_get_clientdata(client);
-+
-+ if (!client->adapter)
-+ return -ENODEV; /* our client isn't attached */
-+
-+ v4l2_int_device_unregister(sensor->v4l2_int_device);
-+ i2c_set_clientdata(client, NULL);
-+
-+ return 0;
-+}
-+
-+static const struct i2c_device_id mt9t111_id[] = {
-+ { "mt9t111", 0 },
-+ { },
-+};
-+MODULE_DEVICE_TABLE(i2c, mt9t111_id);
-+
-+static struct i2c_driver mt9t111sensor_i2c_driver = {
-+ .driver = {
-+ .name = "mt9t111",
-+ .owner = THIS_MODULE,
-+ },
-+ .probe = mt9t111_probe,
-+ .remove = __exit_p(mt9t111_remove),
-+ .id_table = mt9t111_id,
-+};
-+
-+/**
-+ * mt9t111sensor_init - sensor driver module_init handler
-+ *
-+ * Registers driver as an i2c client driver. Returns 0 on success,
-+ * error code otherwise.
-+ */
-+static int __init mt9t111sensor_init(void)
-+{
-+printk(KERN_INFO "entering mt9t111sensor_init\n");
-+ return i2c_add_driver(&mt9t111sensor_i2c_driver);
-+}
-+module_init(mt9t111sensor_init);
-+
-+/**
-+ * mt9t111sensor_cleanup - sensor driver module_exit handler
-+ *
-+ * Unregisters/deletes driver as an i2c client driver.
-+ * Complement of mt9t111sensor_init.
-+ */
-+static void __exit mt9t111sensor_cleanup(void)
-+{
-+ i2c_del_driver(&mt9t111sensor_i2c_driver);
-+}
-+module_exit(mt9t111sensor_cleanup);
-+
-+MODULE_LICENSE("GPL");
-+MODULE_DESCRIPTION("mt9t111 camera sensor driver");
-diff --git a/drivers/media/video/mt9t111_reg.h b/drivers/media/video/mt9t111_reg.h
-new file mode 100644
-index 0000000..e012eeb
---- /dev/null
-+++ b/drivers/media/video/mt9t111_reg.h
-@@ -0,0 +1,1364 @@
-+/*
-+ * drivers/media/video/mt9t111_reg.h
-+ *
-+ * mt9t111 sensor driver header file
-+ *
-+ * Copyright (C) 2009 Leopard Imaging
-+ *
-+ * This file is licensed under the terms of the GNU General Public License
-+ * version 2. This program is licensed "as is" without any warranty of any
-+ * kind, whether express or implied.
-+ */
-+
-+#ifndef MT9T111_REG_H
-+#define MT9T111_REG_H
-+
-+/* register addr */
-+#define MT9T111_CHIP_ID (0x0000)
-+
-+/* register value */
-+#define MT9T111_CHIP_ID_VALUE (0x2680)
-+
-+typedef struct {
-+ u16 delay_time;
-+ u16 addr;
-+ u16 data;
-+} mt9t111_regs;
-+
-+mt9t111_regs patch_rev6[] ={
-+ {0, 0x0982, 0x0},
-+ {0, 0x098A, 0xCE7},
-+ {0, 0x0990, 0x3C3C},
-+ {0, 0x0992, 0x3C3C},
-+ {0, 0x0994, 0x3C5F},
-+ {0, 0x0996, 0x4F30},
-+ {0, 0x0998, 0xED08},
-+ {0, 0x099a, 0xBD61},
-+ {0, 0x099c, 0xD5CE},
-+ {0, 0x099e, 0x4CD},
-+ {0, 0x098A, 0xCF7},
-+ {0, 0x0990, 0x1F17},
-+ {0, 0x0992, 0x211},
-+ {0, 0x0994, 0xCC33},
-+ {0, 0x0996, 0x2E30},
-+ {0, 0x0998, 0xED02},
-+ {0, 0x099a, 0xCCFF},
-+ {0, 0x099c, 0xFDED},
-+ {0, 0x099e, 0xCC},
-+ {0, 0x098A, 0xD07},
-+ {0, 0x0990, 0x2},
-+ {0, 0x0992, 0xBD70},
-+ {0, 0x0994, 0x6D18},
-+ {0, 0x0996, 0xDE1F},
-+ {0, 0x0998, 0x181F},
-+ {0, 0x099a, 0x8E01},
-+ {0, 0x099c, 0x10CC},
-+ {0, 0x099e, 0x3C52},
-+ {0, 0x098A, 0xD17},
-+ {0, 0x0990, 0x30ED},
-+ {0, 0x0992, 0x18},
-+ {0, 0x0994, 0xECA0},
-+ {0, 0x0996, 0xC4FD},
-+ {0, 0x0998, 0xBD70},
-+ {0, 0x099a, 0x2120},
-+ {0, 0x099c, 0x1ECC},
-+ {0, 0x099e, 0x3C52},
-+ {0, 0x098A, 0xD27},
-+ {0, 0x0990, 0x30ED},
-+ {0, 0x0992, 0xDE},
-+ {0, 0x0994, 0x1FEC},
-+ {0, 0x0996, 0xA0BD},
-+ {0, 0x0998, 0x7021},
-+ {0, 0x099a, 0xCC3C},
-+ {0, 0x099c, 0x5230},
-+ {0, 0x099e, 0xED02},
-+ {0, 0x098A, 0xD37},
-+ {0, 0x0990, 0xCCFF},
-+ {0, 0x0992, 0xFCED},
-+ {0, 0x0994, 0xCC},
-+ {0, 0x0996, 0x2},
-+ {0, 0x0998, 0xBD70},
-+ {0, 0x099a, 0x6DFC},
-+ {0, 0x099c, 0x4E1},
-+ {0, 0x099e, 0x1A83},
-+ {0, 0x098A, 0xD47},
-+ {0, 0x0990, 0x1},
-+ {0, 0x0992, 0x2720},
-+ {0, 0x0994, 0x1A83},
-+ {0, 0x0996, 0x4},
-+ {0, 0x0998, 0x271E},
-+ {0, 0x099a, 0x1A83},
-+ {0, 0x099c, 0x8},
-+ {0, 0x099e, 0x271C},
-+ {0, 0x098A, 0xD57},
-+ {0, 0x0990, 0x1A83},
-+ {0, 0x0992, 0x10},
-+ {0, 0x0994, 0x271A},
-+ {0, 0x0996, 0x1A83},
-+ {0, 0x0998, 0x20},
-+ {0, 0x099a, 0x2718},
-+ {0, 0x099c, 0x1A83},
-+ {0, 0x099e, 0x40},
-+ {0, 0x098A, 0xD67},
-+ {0, 0x0990, 0x2716},
-+ {0, 0x0992, 0x2019},
-+ {0, 0x0994, 0xC61E},
-+ {0, 0x0996, 0x2012},
-+ {0, 0x0998, 0xC622},
-+ {0, 0x099a, 0x200E},
-+ {0, 0x099c, 0xC621},
-+ {0, 0x099e, 0x200A},
-+ {0, 0x098A, 0xD77},
-+ {0, 0x0990, 0xC620},
-+ {0, 0x0992, 0x2006},
-+ {0, 0x0994, 0xC62A},
-+ {0, 0x0996, 0x2002},
-+ {0, 0x0998, 0xC62B},
-+ {0, 0x099a, 0x30ED},
-+ {0, 0x099c, 0x8CC},
-+ {0, 0x099e, 0x3400},
-+ {0, 0x098A, 0xD87},
-+ {0, 0x0990, 0x30ED},
-+ {0, 0x0992, 0x34},
-+ {0, 0x0994, 0xBD6F},
-+ {0, 0x0996, 0xD184},
-+ {0, 0x0998, 0x330},
-+ {0, 0x099a, 0xED07},
-+ {0, 0x099c, 0xA60A},
-+ {0, 0x099e, 0x4848},
-+ {0, 0x098A, 0xD97},
-+ {0, 0x0990, 0x5FED},
-+ {0, 0x0992, 0x5EA},
-+ {0, 0x0994, 0x8AA},
-+ {0, 0x0996, 0x731},
-+ {0, 0x0998, 0xBD70},
-+ {0, 0x099a, 0x2130},
-+ {0, 0x099c, 0xC60A},
-+ {0, 0x099e, 0x3A35},
-+ {0, 0x098A, 0xDA7},
-+ {0, 0x0990, 0x3937},
-+ {0, 0x0992, 0x3C3C},
-+ {0, 0x0994, 0x3C34},
-+ {0, 0x0996, 0xDE2F},
-+ {0, 0x0998, 0xEE0E},
-+ {0, 0x099a, 0xAD00},
-+ {0, 0x099c, 0x7D13},
-+ {0, 0x099e, 0xEF27},
-+ {0, 0x098A, 0xDB7},
-+ {0, 0x0990, 0x7CCE},
-+ {0, 0x0992, 0x13E0},
-+ {0, 0x0994, 0x1E05},
-+ {0, 0x0996, 0x1060},
-+ {0, 0x0998, 0xE60E},
-+ {0, 0x099a, 0x4FC3},
-+ {0, 0x099c, 0x13F0},
-+ {0, 0x099e, 0x8FE6},
-+ {0, 0x098A, 0xDC7},
-+ {0, 0x0990, 0x30},
-+ {0, 0x0992, 0xE107},
-+ {0, 0x0994, 0x2216},
-+ {0, 0x0996, 0xF613},
-+ {0, 0x0998, 0xEE4F},
-+ {0, 0x099a, 0xC313},
-+ {0, 0x099c, 0xF38F},
-+ {0, 0x099e, 0xE600},
-+ {0, 0x098A, 0xDD7},
-+ {0, 0x0990, 0x30E1},
-+ {0, 0x0992, 0x725},
-+ {0, 0x0994, 0x7F6},
-+ {0, 0x0996, 0x13EE},
-+ {0, 0x0998, 0xC103},
-+ {0, 0x099a, 0x253C},
-+ {0, 0x099c, 0x7F13},
-+ {0, 0x099e, 0xEEF6},
-+ {0, 0x098A, 0xDE7},
-+ {0, 0x0990, 0x13EF},
-+ {0, 0x0992, 0xE706},
-+ {0, 0x0994, 0xCC13},
-+ {0, 0x0996, 0xF0ED},
-+ {0, 0x0998, 0x4CC},
-+ {0, 0x099a, 0x13F3},
-+ {0, 0x099c, 0x200F},
-+ {0, 0x099e, 0x7C13},
-+ {0, 0x098A, 0xDF7},
-+ {0, 0x0990, 0xEEEC},
-+ {0, 0x0992, 0x4C3},
-+ {0, 0x0994, 0x1},
-+ {0, 0x0996, 0xED04},
-+ {0, 0x0998, 0xEC02},
-+ {0, 0x099a, 0xC300},
-+ {0, 0x099c, 0x1ED},
-+ {0, 0x099e, 0x2F6},
-+ {0, 0x098A, 0xE07},
-+ {0, 0x0990, 0x13EE},
-+ {0, 0x0992, 0xE106},
-+ {0, 0x0994, 0x2412},
-+ {0, 0x0996, 0xEE04},
-+ {0, 0x0998, 0xE600},
-+ {0, 0x099a, 0x30E1},
-+ {0, 0x099c, 0x722},
-+ {0, 0x099e, 0xDFEE},
-+ {0, 0x098A, 0xE17},
-+ {0, 0x0990, 0x2E6},
-+ {0, 0x0992, 0x30},
-+ {0, 0x0994, 0xE107},
-+ {0, 0x0996, 0x25D6},
-+ {0, 0x0998, 0xDE49},
-+ {0, 0x099a, 0xEE08},
-+ {0, 0x099c, 0xAD00},
-+ {0, 0x099e, 0xCC13},
-+ {0, 0x098A, 0xE27},
-+ {0, 0x0990, 0xF630},
-+ {0, 0x0992, 0xED00},
-+ {0, 0x0994, 0xDE2F},
-+ {0, 0x0996, 0xEE10},
-+ {0, 0x0998, 0xCC13},
-+ {0, 0x099a, 0xFAAD},
-+ {0, 0x099c, 0x38},
-+ {0, 0x099e, 0x3838},
-+ {0, 0x098A, 0xE37},
-+ {0, 0x0990, 0x3839},
-+ {0, 0x098A, 0x1000},
-+ {0, 0x0990, 0xCC10},
-+ {0, 0x0992, 0x9BD},
-+ {0, 0x0994, 0x4224},
-+ {0, 0x0996, 0x7E10},
-+ {0, 0x0998, 0x9C6},
-+ {0, 0x099a, 0x1F7},
-+ {0, 0x099c, 0x18A},
-+ {0, 0x099e, 0xC606},
-+ {0, 0x098A, 0x1010},
-+ {0, 0x0990, 0xF701},
-+ {0, 0x0992, 0x8BDE},
-+ {0, 0x0994, 0x3F18},
-+ {0, 0x0996, 0xCE0B},
-+ {0, 0x0998, 0xF1CC},
-+ {0, 0x099a, 0x11},
-+ {0, 0x099c, 0xBDD7},
-+ {0, 0x099e, 0xCC},
-+ {0, 0x098A, 0x1020},
-+ {0, 0x0990, 0xBF1},
-+ {0, 0x0992, 0xDD3F},
-+ {0, 0x0994, 0xDE35},
-+ {0, 0x0996, 0x18CE},
-+ {0, 0x0998, 0xC03},
-+ {0, 0x099a, 0xCC00},
-+ {0, 0x099c, 0x3FBD},
-+ {0, 0x099e, 0xD700},
-+ {0, 0x098A, 0x1030},
-+ {0, 0x0990, 0xCC0C},
-+ {0, 0x0992, 0x3DD},
-+ {0, 0x0994, 0x35DE},
-+ {0, 0x0996, 0x4718},
-+ {0, 0x0998, 0xCE0C},
-+ {0, 0x099a, 0x43CC},
-+ {0, 0x099c, 0x15},
-+ {0, 0x099e, 0xBDD7},
-+ {0, 0x098A, 0x1040},
-+ {0, 0x0990, 0xCC},
-+ {0, 0x0992, 0xC43},
-+ {0, 0x0994, 0xDD47},
-+ {0, 0x0996, 0xFE00},
-+ {0, 0x0998, 0x3318},
-+ {0, 0x099a, 0xCE0C},
-+ {0, 0x099c, 0x59CC},
-+ {0, 0x099e, 0x9},
-+ {0, 0x098A, 0x1050},
-+ {0, 0x0990, 0xBDD7},
-+ {0, 0x0992, 0xCC},
-+ {0, 0x0994, 0xC59},
-+ {0, 0x0996, 0xFD00},
-+ {0, 0x0998, 0x33DE},
-+ {0, 0x099a, 0x4118},
-+ {0, 0x099c, 0xCE0C},
-+ {0, 0x099e, 0x63CC},
-+ {0, 0x098A, 0x1060},
-+ {0, 0x0990, 0xD},
-+ {0, 0x0992, 0xBDD7},
-+ {0, 0x0994, 0xCC},
-+ {0, 0x0996, 0xC63},
-+ {0, 0x0998, 0xDD41},
-+ {0, 0x099a, 0xFE00},
-+ {0, 0x099c, 0x3118},
-+ {0, 0x099e, 0xCE0C},
-+ {0, 0x098A, 0x1070},
-+ {0, 0x0990, 0x71CC},
-+ {0, 0x0992, 0x29},
-+ {0, 0x0994, 0xBDD7},
-+ {0, 0x0996, 0xCC},
-+ {0, 0x0998, 0xC71},
-+ {0, 0x099a, 0xFD00},
-+ {0, 0x099c, 0x31DE},
-+ {0, 0x099e, 0x3918},
-+ {0, 0x098A, 0x1080},
-+ {0, 0x0990, 0xCE0C},
-+ {0, 0x0992, 0x9BCC},
-+ {0, 0x0994, 0x23},
-+ {0, 0x0996, 0xBDD7},
-+ {0, 0x0998, 0xCC},
-+ {0, 0x099a, 0xC9B},
-+ {0, 0x099c, 0xDD39},
-+ {0, 0x099e, 0xDE49},
-+ {0, 0x098A, 0x1090},
-+ {0, 0x0990, 0x18CE},
-+ {0, 0x0992, 0xCBF},
-+ {0, 0x0994, 0xCC00},
-+ {0, 0x0996, 0xDBD},
-+ {0, 0x0998, 0xD700},
-+ {0, 0x099a, 0xCC0C},
-+ {0, 0x099c, 0xBFDD},
-+ {0, 0x099e, 0x49CC},
-+ {0, 0x098A, 0x10A0},
-+ {0, 0x0990, 0x1162},
-+ {0, 0x0992, 0xFD0B},
-+ {0, 0x0994, 0xFDCC},
-+ {0, 0x0996, 0xCE7},
-+ {0, 0x0998, 0xFD0C},
-+ {0, 0x099a, 0x1FCC},
-+ {0, 0x099c, 0x1245},
-+ {0, 0x099e, 0xFD0C},
-+ {0, 0x098A, 0x10B0},
-+ {0, 0x0990, 0x51CC},
-+ {0, 0x0992, 0x110B},
-+ {0, 0x0994, 0xFD0C},
-+ {0, 0x0996, 0x5BCC},
-+ {0, 0x0998, 0x1108},
-+ {0, 0x099a, 0xFD0C},
-+ {0, 0x099c, 0x65CC},
-+ {0, 0x099e, 0x10D0},
-+ {0, 0x098A, 0x10C0},
-+ {0, 0x0990, 0xFD0C},
-+ {0, 0x0992, 0x7BCC},
-+ {0, 0x0994, 0x12DE},
-+ {0, 0x0996, 0xFD0C},
-+ {0, 0x0998, 0xA7CC},
-+ {0, 0x099a, 0xDA8},
-+ {0, 0x099c, 0xFD0C},
-+ {0, 0x099e, 0xCB39},
-+ {0, 0x098A, 0x10D0},
-+ {0, 0x0990, 0x37DE},
-+ {0, 0x0992, 0x1DEC},
-+ {0, 0x0994, 0xC5F},
-+ {0, 0x0996, 0x8402},
-+ {0, 0x0998, 0x4416},
-+ {0, 0x099a, 0x4FF7},
-+ {0, 0x099c, 0xCCD},
-+ {0, 0x099e, 0xE60B},
-+ {0, 0x098A, 0x10E0},
-+ {0, 0x0990, 0xC407},
-+ {0, 0x0992, 0xF70C},
-+ {0, 0x0994, 0xCE7F},
-+ {0, 0x0996, 0x30C4},
-+ {0, 0x0998, 0xEC25},
-+ {0, 0x099a, 0xFD30},
-+ {0, 0x099c, 0xC5FC},
-+ {0, 0x099e, 0x6D6},
-+ {0, 0x098A, 0x10F0},
-+ {0, 0x0990, 0xFD30},
-+ {0, 0x0992, 0xC701},
-+ {0, 0x0994, 0xFC30},
-+ {0, 0x0996, 0xC0FD},
-+ {0, 0x0998, 0xBED},
-+ {0, 0x099a, 0xFC30},
-+ {0, 0x099c, 0xC2FD},
-+ {0, 0x099e, 0xBEF},
-+ {0, 0x098A, 0x1100},
-+ {0, 0x0990, 0x30E6},
-+ {0, 0x0992, 0xBD},
-+ {0, 0x0994, 0x5203},
-+ {0, 0x0996, 0x3139},
-+ {0, 0x0998, 0x7E9E},
-+ {0, 0x099a, 0x143C},
-+ {0, 0x099c, 0x3C3C},
-+ {0, 0x099e, 0x2101},
-+ {0, 0x098A, 0x1110},
-+ {0, 0x0990, 0xCC00},
-+ {0, 0x0992, 0x18BD},
-+ {0, 0x0994, 0x6FD1},
-+ {0, 0x0996, 0xC504},
-+ {0, 0x0998, 0x26F5},
-+ {0, 0x099a, 0xDC25},
-+ {0, 0x099c, 0x30ED},
-+ {0, 0x099e, 0x420},
-+ {0, 0x098A, 0x1120},
-+ {0, 0x0990, 0x12EE},
-+ {0, 0x0992, 0x43C},
-+ {0, 0x0994, 0x1838},
-+ {0, 0x0996, 0xE621},
-+ {0, 0x0998, 0x18E7},
-+ {0, 0x099a, 0xBE30},
-+ {0, 0x099c, 0xEE04},
-+ {0, 0x099e, 0xEC1D},
-+ {0, 0x098A, 0x1130},
-+ {0, 0x0990, 0x30ED},
-+ {0, 0x0992, 0x4EC},
-+ {0, 0x0994, 0x426},
-+ {0, 0x0996, 0xEACC},
-+ {0, 0x0998, 0x1A},
-+ {0, 0x099a, 0xED02},
-+ {0, 0x099c, 0xCCFB},
-+ {0, 0x099e, 0xFFED},
-+ {0, 0x098A, 0x1140},
-+ {0, 0x0990, 0xCC},
-+ {0, 0x0992, 0x400},
-+ {0, 0x0994, 0xBD70},
-+ {0, 0x0996, 0x6DCC},
-+ {0, 0x0998, 0x1A},
-+ {0, 0x099a, 0x30ED},
-+ {0, 0x099c, 0x2CC},
-+ {0, 0x099e, 0xFBFF},
-+ {0, 0x098A, 0x1150},
-+ {0, 0x0990, 0xED00},
-+ {0, 0x0992, 0x5F4F},
-+ {0, 0x0994, 0xBD70},
-+ {0, 0x0996, 0x6D5F},
-+ {0, 0x0998, 0xBD5B},
-+ {0, 0x099a, 0x17BD},
-+ {0, 0x099c, 0x558B},
-+ {0, 0x099e, 0x3838},
-+ {0, 0x098A, 0x1160},
-+ {0, 0x0990, 0x3839},
-+ {0, 0x0992, 0x3C3C},
-+ {0, 0x0994, 0xC640},
-+ {0, 0x0996, 0xF730},
-+ {0, 0x0998, 0xC4FC},
-+ {0, 0x099a, 0xBED},
-+ {0, 0x099c, 0xFD30},
-+ {0, 0x099e, 0xC0FC},
-+ {0, 0x098A, 0x1170},
-+ {0, 0x0990, 0xBEF},
-+ {0, 0x0992, 0xFD30},
-+ {0, 0x0994, 0xC2DE},
-+ {0, 0x0996, 0x1DEC},
-+ {0, 0x0998, 0x25FD},
-+ {0, 0x099a, 0x30C5},
-+ {0, 0x099c, 0x101},
-+ {0, 0x099e, 0x1FC},
-+ {0, 0x098A, 0x1180},
-+ {0, 0x0990, 0x30C2},
-+ {0, 0x0992, 0xFD06},
-+ {0, 0x0994, 0xD6EC},
-+ {0, 0x0996, 0xC5F},
-+ {0, 0x0998, 0x8402},
-+ {0, 0x099a, 0x4416},
-+ {0, 0x099c, 0x4F30},
-+ {0, 0x099e, 0xE703},
-+ {0, 0x098A, 0x1190},
-+ {0, 0x0990, 0xF10C},
-+ {0, 0x0992, 0xCD27},
-+ {0, 0x0994, 0x15F1},
-+ {0, 0x0996, 0xCCD},
-+ {0, 0x0998, 0x2309},
-+ {0, 0x099a, 0xFC06},
-+ {0, 0x099c, 0xD604},
-+ {0, 0x099e, 0xFD06},
-+ {0, 0x098A, 0x11A0},
-+ {0, 0x0990, 0xD620},
-+ {0, 0x0992, 0x7FC},
-+ {0, 0x0994, 0x6D6},
-+ {0, 0x0996, 0x5FD},
-+ {0, 0x0998, 0x6D6},
-+ {0, 0x099a, 0xDE1D},
-+ {0, 0x099c, 0xE60B},
-+ {0, 0x099e, 0xC407},
-+ {0, 0x098A, 0x11B0},
-+ {0, 0x0990, 0x30E7},
-+ {0, 0x0992, 0x2F1},
-+ {0, 0x0994, 0xCCE},
-+ {0, 0x0996, 0x272C},
-+ {0, 0x0998, 0x7D0C},
-+ {0, 0x099a, 0xCE27},
-+ {0, 0x099c, 0x275D},
-+ {0, 0x099e, 0x2724},
-+ {0, 0x098A, 0x11C0},
-+ {0, 0x0990, 0x7F30},
-+ {0, 0x0992, 0xC4FC},
-+ {0, 0x0994, 0x6D6},
-+ {0, 0x0996, 0xFD30},
-+ {0, 0x0998, 0xC5F6},
-+ {0, 0x099a, 0xCCE},
-+ {0, 0x099c, 0x4FFD},
-+ {0, 0x099e, 0x30C7},
-+ {0, 0x098A, 0x11D0},
-+ {0, 0x0990, 0xC640},
-+ {0, 0x0992, 0xF730},
-+ {0, 0x0994, 0xC4E6},
-+ {0, 0x0996, 0x24F},
-+ {0, 0x0998, 0xFD30},
-+ {0, 0x099a, 0xC501},
-+ {0, 0x099c, 0x101},
-+ {0, 0x099e, 0xFC30},
-+ {0, 0x098A, 0x11E0},
-+ {0, 0x0990, 0xC2FD},
-+ {0, 0x0992, 0x6D6},
-+ {0, 0x0994, 0x7D06},
-+ {0, 0x0996, 0xCB27},
-+ {0, 0x0998, 0x2EC6},
-+ {0, 0x099a, 0x40F7},
-+ {0, 0x099c, 0x30C4},
-+ {0, 0x099e, 0xFC06},
-+ {0, 0x098A, 0x11F0},
-+ {0, 0x0990, 0xC104},
-+ {0, 0x0992, 0xF306},
-+ {0, 0x0994, 0xD6ED},
-+ {0, 0x0996, 0x5F},
-+ {0, 0x0998, 0x6D00},
-+ {0, 0x099a, 0x2A01},
-+ {0, 0x099c, 0x5317},
-+ {0, 0x099e, 0xFD30},
-+ {0, 0x098A, 0x1200},
-+ {0, 0x0990, 0xC0EC},
-+ {0, 0x0992, 0xFD},
-+ {0, 0x0994, 0x30C2},
-+ {0, 0x0996, 0xFC06},
-+ {0, 0x0998, 0xC1FD},
-+ {0, 0x099a, 0x30C5},
-+ {0, 0x099c, 0x101},
-+ {0, 0x099e, 0x1FC},
-+ {0, 0x098A, 0x1210},
-+ {0, 0x0990, 0x30C2},
-+ {0, 0x0992, 0xFD06},
-+ {0, 0x0994, 0xC720},
-+ {0, 0x0996, 0x227F},
-+ {0, 0x0998, 0x30C4},
-+ {0, 0x099a, 0xDE1D},
-+ {0, 0x099c, 0xEC25},
-+ {0, 0x099e, 0xFD30},
-+ {0, 0x098A, 0x1220},
-+ {0, 0x0990, 0xC5FC},
-+ {0, 0x0992, 0x6D6},
-+ {0, 0x0994, 0xFD30},
-+ {0, 0x0996, 0xC701},
-+ {0, 0x0998, 0xFC30},
-+ {0, 0x099a, 0xC0FD},
-+ {0, 0x099c, 0x6D0},
-+ {0, 0x099e, 0xFC30},
-+ {0, 0x098A, 0x1230},
-+ {0, 0x0990, 0xC2FD},
-+ {0, 0x0992, 0x6D2},
-+ {0, 0x0994, 0xEC25},
-+ {0, 0x0996, 0xFD06},
-+ {0, 0x0998, 0xC3BD},
-+ {0, 0x099a, 0x953C},
-+ {0, 0x099c, 0xDE3F},
-+ {0, 0x099e, 0xEE10},
-+ {0, 0x098A, 0x1240},
-+ {0, 0x0990, 0xAD00},
-+ {0, 0x0992, 0x3838},
-+ {0, 0x0994, 0x3930},
-+ {0, 0x0996, 0x8FC3},
-+ {0, 0x0998, 0xFFE9},
-+ {0, 0x099a, 0x8F35},
-+ {0, 0x099c, 0xBDAD},
-+ {0, 0x099e, 0x1530},
-+ {0, 0x098A, 0x1250},
-+ {0, 0x0990, 0x6F16},
-+ {0, 0x0992, 0x18DE},
-+ {0, 0x0994, 0x1918},
-+ {0, 0x0996, 0x8FC3},
-+ {0, 0x0998, 0x14B},
-+ {0, 0x099a, 0x188F},
-+ {0, 0x099c, 0x18EC},
-+ {0, 0x099e, 0xFD},
-+ {0, 0x098A, 0x1260},
-+ {0, 0x0990, 0x50E},
-+ {0, 0x0992, 0x18EC},
-+ {0, 0x0994, 0x2FD},
-+ {0, 0x0996, 0x510},
-+ {0, 0x0998, 0xE616},
-+ {0, 0x099a, 0x4FED},
-+ {0, 0x099c, 0x418},
-+ {0, 0x099e, 0x8FC3},
-+ {0, 0x098A, 0x1270},
-+ {0, 0x0990, 0xFFCB},
-+ {0, 0x0992, 0xE304},
-+ {0, 0x0994, 0x8FE6},
-+ {0, 0x0996, 0xF7},
-+ {0, 0x0998, 0x514},
-+ {0, 0x099a, 0x18DE},
-+ {0, 0x099c, 0x1930},
-+ {0, 0x099e, 0xE616},
-+ {0, 0x098A, 0x1280},
-+ {0, 0x0990, 0x4FED},
-+ {0, 0x0992, 0x418},
-+ {0, 0x0994, 0x8FC3},
-+ {0, 0x0996, 0x119},
-+ {0, 0x0998, 0xE304},
-+ {0, 0x099a, 0x8FE6},
-+ {0, 0x099c, 0xF7},
-+ {0, 0x099e, 0x515},
-+ {0, 0x098A, 0x1290},
-+ {0, 0x0990, 0xFC05},
-+ {0, 0x0992, 0x5BFD},
-+ {0, 0x0994, 0x512},
-+ {0, 0x0996, 0xDE37},
-+ {0, 0x0998, 0xEE08},
-+ {0, 0x099a, 0xAD00},
-+ {0, 0x099c, 0x30E6},
-+ {0, 0x099e, 0x164F},
-+ {0, 0x098A, 0x12A0},
-+ {0, 0x0990, 0x5ED},
-+ {0, 0x0992, 0x48F},
-+ {0, 0x0994, 0xC300},
-+ {0, 0x0996, 0x630},
-+ {0, 0x0998, 0xE304},
-+ {0, 0x099a, 0x8FF6},
-+ {0, 0x099c, 0x516},
-+ {0, 0x099e, 0x4FED},
-+ {0, 0x098A, 0x12B0},
-+ {0, 0x0990, 0x30},
-+ {0, 0x0992, 0x6C16},
-+ {0, 0x0994, 0xE616},
-+ {0, 0x0996, 0xC103},
-+ {0, 0x0998, 0x2598},
-+ {0, 0x099a, 0xCC32},
-+ {0, 0x099c, 0x8EED},
-+ {0, 0x099e, 0xEC},
-+ {0, 0x098A, 0x12C0},
-+ {0, 0x0990, 0x6BD},
-+ {0, 0x0992, 0x7021},
-+ {0, 0x0994, 0xCC32},
-+ {0, 0x0996, 0x6C30},
-+ {0, 0x0998, 0xED02},
-+ {0, 0x099a, 0xCCF8},
-+ {0, 0x099c, 0xED},
-+ {0, 0x099e, 0xA6},
-+ {0, 0x098A, 0x12D0},
-+ {0, 0x0990, 0x9E3},
-+ {0, 0x0992, 0xA84},
-+ {0, 0x0994, 0x7BD},
-+ {0, 0x0996, 0x706D},
-+ {0, 0x0998, 0x30C6},
-+ {0, 0x099a, 0x173A},
-+ {0, 0x099c, 0x3539},
-+ {0, 0x099e, 0x3CBD},
-+ {0, 0x098A, 0x12E0},
-+ {0, 0x0990, 0x776D},
-+ {0, 0x0992, 0xCC32},
-+ {0, 0x0994, 0x5C30},
-+ {0, 0x0996, 0xED00},
-+ {0, 0x0998, 0xFC13},
-+ {0, 0x099a, 0x8683},
-+ {0, 0x099c, 0x1},
-+ {0, 0x099e, 0xBD70},
-+ {0, 0x098A, 0x12F0},
-+ {0, 0x0990, 0x21CC},
-+ {0, 0x0992, 0x325E},
-+ {0, 0x0994, 0x30ED},
-+ {0, 0x0996, 0xFC},
-+ {0, 0x0998, 0x1388},
-+ {0, 0x099a, 0x8300},
-+ {0, 0x099c, 0x1BD},
-+ {0, 0x099e, 0x7021},
-+ {0, 0x098A, 0x1300},
-+ {0, 0x0990, 0x3839},
-+ {0, 0x098E, 0x0010},
-+ {0, 0x0990, 0x1000},
-+ {0, 0x098E, 0x0003},
-+ {100, 0x0990, 0x0004}
-+};
-+
-+mt9t111_regs def_regs1[] ={
-+ {0, 0x001A, 0x0218},
-+ {0, 0x001E, 0x0777},
-+ {0, 0x3084, 0x2409},
-+ {0, 0x3092, 0x0A49},
-+ {0, 0x3094, 0x4949},
-+ {0, 0x3096, 0x4950},
-+ {0, 0x0018, 0x402D},
-+ {100, 0x0018, 0x402C},
-+ {0, 0x098E, 0x6800},
-+ {0, 0x0990, 0x0280},
-+ {0, 0x098E, 0x6802},
-+ {0, 0x0990, 0x01E0},
-+ {0, 0x098E, 0xE88E},
-+ {0, 0x0990, 0x0000},
-+ {0, 0x098E, 0x68A0},
-+ {0, 0x0990, 0x082D},
-+ {0, 0x098E, 0x4802},
-+ {0, 0x0990, 0x0000},
-+ {0, 0x098E, 0x4804},
-+ {0, 0x0990, 0x0000},
-+ {0, 0x098E, 0x4806},
-+ {0, 0x0990, 0x060D},
-+ {0, 0x098E, 0x4808},
-+ {0, 0x0990, 0x080D},
-+ {0, 0x098E, 0x480A},
-+ {0, 0x0990, 0x0111},
-+ {0, 0x098E, 0x480C},
-+ {0, 0x0990, 0x046C},
-+ {0, 0x098E, 0x480F},
-+ {0, 0x0990, 0x00CC},
-+ {0, 0x098E, 0x4811},
-+ {0, 0x0990, 0x0381},
-+ {0, 0x098E, 0x4813},
-+ {0, 0x0990, 0x024F},
-+ {0, 0x098E, 0x481D},
-+ {0, 0x0990, 0x05AE},
-+ {0, 0x098E, 0x481F},
-+ {0, 0x0990, 0x05D0},
-+ {0, 0x098E, 0x4825},
-+ {0, 0x0990, 0x07AC},
-+ {0, 0x098E, 0x6C00},
-+ {0, 0x0990, 0x0800},
-+ {0, 0x098E, 0x6C02},
-+ {0, 0x0990, 0x0600},
-+ {0, 0x098E, 0xEC8E},
-+ {0, 0x0990, 0x0000},
-+ {0, 0x098E, 0x6CA0},
-+ {0, 0x0990, 0x082D},
-+ {0, 0x098E, 0x484A},
-+ {0, 0x0990, 0x0000},
-+ {0, 0x098E, 0x484C},
-+ {0, 0x0990, 0x0000},
-+ {0, 0x098E, 0x484E},
-+ {0, 0x0990, 0x060D},
-+ {0, 0x098E, 0x4850},
-+ {0, 0x0990, 0x080D},
-+ {0, 0x098E, 0x4852},
-+ {0, 0x0990, 0x0111},
-+ {0, 0x098E, 0x4854},
-+ {0, 0x0990, 0x146C},
-+ {0, 0x098E, 0x4857},
-+ {0, 0x0990, 0x00CC},
-+ {0, 0x098E, 0x4859},
-+ {0, 0x0990, 0x0381},
-+ {0, 0x098E, 0x485B},
-+ {0, 0x0990, 0x024F},
-+ {0, 0x098E, 0x4865},
-+ {0, 0x0990, 0x05AE},
-+ {0, 0x098E, 0x4867},
-+ {0, 0x0990, 0x05D0},
-+ {0, 0x098E, 0x486D},
-+ {0, 0x0990, 0x07AC},
-+ {0, 0x098E, 0xC8A5},
-+ {0, 0x0990, 0x001D},
-+ {0, 0x098E, 0xC8A6},
-+ {0, 0x0990, 0x0020},
-+ {0, 0x098E, 0xC8A7},
-+ {0, 0x0990, 0x0023},
-+ {0, 0x098E, 0xC8A8},
-+ {0, 0x0990, 0x0026},
-+ {0, 0x098E, 0xC844},
-+ {0, 0x0990, 0x0091},
-+ {0, 0x098E, 0xC92F},
-+ {0, 0x0990, 0x0000},
-+ {0, 0x098E, 0xC845},
-+ {0, 0x0990, 0x0079},
-+ {0, 0x098E, 0xC92D},
-+ {0, 0x0990, 0x0000},
-+ {0, 0x098E, 0xC88C},
-+ {0, 0x0990, 0x0091},
-+ {0, 0x098E, 0xC930},
-+ {0, 0x0990, 0x0000},
-+ {0, 0x098E, 0xC88D},
-+ {0, 0x0990, 0x0079},
-+ {0, 0x098E, 0xC92E},
-+ {0, 0x0990, 0x0000},
-+ {0, 0x098E, 0xA002},
-+ {0, 0x0990, 0x0010},
-+ {0, 0x098E, 0xA009},
-+ {0, 0x0990, 0x0002},
-+ {0, 0x098E, 0xA00A},
-+ {0, 0x0990, 0x0003},
-+ {0, 0x098E, 0xA00C},
-+ {0, 0x0990, 0x000A},
-+ {0, 0x098E, 0x4846},
-+ {0, 0x0990, 0x0014},
-+ {0, 0x098E, 0x68AA},
-+ {0, 0x0990, 0x0278},
-+ {0, 0x098E, 0x488E},
-+ {0, 0x0990, 0x0014},
-+ {0, 0x098E, 0x6CAA},
-+ {0, 0x0990, 0x0218},
-+ {0, 0x098E, 0x8400},
-+ {0, 0x0990, 0x0006},
-+ {0, 0x098E, 0x8400},
-+ {0, 0x0990, 0x0005},
-+ {0, 0x3C20, 0x0001},
-+ {0, 0x364A, 0x7D2F},
-+ {0, 0x364C, 0x79EB},
-+ {0, 0x364E, 0x18D2},
-+ {0, 0x3650, 0x9F8F},
-+ {0, 0x3652, 0xA7D2},
-+ {0, 0x368A, 0x460C},
-+ {0, 0x368C, 0x14F0},
-+ {0, 0x368E, 0x946F},
-+ {0, 0x3690, 0xC471},
-+ {0, 0x3692, 0x04B1},
-+ {0, 0x36CA, 0x0433},
-+ {0, 0x36CC, 0x680D},
-+ {0, 0x36CE, 0xEEF3},
-+ {0, 0x36D0, 0x4850},
-+ {0, 0x36D2, 0xF233},
-+ {0, 0x370A, 0xB2AF},
-+ {0, 0x370C, 0x2CF0},
-+ {0, 0x370E, 0x3F10},
-+ {0, 0x3710, 0xC673},
-+ {0, 0x3712, 0xA972},
-+ {0, 0x374A, 0x0590},
-+ {0, 0x374C, 0xAFB3},
-+ {0, 0x374E, 0x93D7},
-+ {0, 0x3750, 0x8D12},
-+ {0, 0x3752, 0x2539},
-+ {0, 0x3640, 0x0350},
-+ {0, 0x3642, 0x322C},
-+ {0, 0x3644, 0x77D1},
-+ {0, 0x3646, 0xA26F},
-+ {0, 0x3648, 0xC872},
-+ {0, 0x3680, 0x0C4C},
-+ {0, 0x3682, 0x9510},
-+ {0, 0x3684, 0x110E},
-+ {0, 0x3686, 0x4331},
-+ {0, 0x3688, 0xC1CF},
-+ {0, 0x36C0, 0x6152},
-+ {0, 0x36C2, 0x038E},
-+ {0, 0x36C4, 0x9AF4},
-+ {0, 0x36C6, 0xE12F},
-+ {0, 0x36C8, 0x09F3},
-+ {0, 0x3700, 0xC5AF},
-+ {0, 0x3702, 0xCA90},
-+ {0, 0x3704, 0x5D0F},
-+ {0, 0x3706, 0x3293},
-+ {0, 0x3708, 0x2B92},
-+ {0, 0x3740, 0xC590},
-+ {0, 0x3742, 0x8133},
-+ {0, 0x3744, 0xE0F6},
-+ {0, 0x3746, 0x0254},
-+ {0, 0x3748, 0x10B9},
-+ {0, 0x3654, 0x7F8F},
-+ {0, 0x3656, 0x6F6C},
-+ {0, 0x3658, 0x5971},
-+ {0, 0x365A, 0x9A0F},
-+ {0, 0x365C, 0xA1B2},
-+ {0, 0x3694, 0xB00C},
-+ {0, 0x3696, 0xEBCF},
-+ {0, 0x3698, 0x06AD},
-+ {0, 0x369A, 0x4D31},
-+ {0, 0x369C, 0x2A4E},
-+ {0, 0x36D4, 0x4752},
-+ {0, 0x36D6, 0x724D},
-+ {0, 0x36D8, 0xAD34},
-+ {0, 0x36DA, 0x1350},
-+ {0, 0x36DC, 0x4E94},
-+ {0, 0x3714, 0xA06E},
-+ {0, 0x3716, 0x9152},
-+ {0, 0x3718, 0x1F53},
-+ {0, 0x371A, 0x3933},
-+ {0, 0x371C, 0xBA94},
-+ {0, 0x3754, 0x1233},
-+ {0, 0x3756, 0xA032},
-+ {0, 0x3758, 0xE936},
-+ {0, 0x375A, 0xBE34},
-+ {0, 0x375C, 0x02D9},
-+ {0, 0x365E, 0x7DEF},
-+ {0, 0x3660, 0x434B},
-+ {0, 0x3662, 0x69F1},
-+ {0, 0x3664, 0x8A0F},
-+ {0, 0x3666, 0xBDB2},
-+ {0, 0x369E, 0x290D},
-+ {0, 0x36A0, 0x42CF},
-+ {0, 0x36A2, 0xDC6D},
-+ {0, 0x36A4, 0x91B1},
-+ {0, 0x36A6, 0x9DE9},
-+ {0, 0x36DE, 0x70B2},
-+ {0, 0x36E0, 0x02AC},
-+ {0, 0x36E2, 0x9714},
-+ {0, 0x36E4, 0xF3CF},
-+ {0, 0x36E6, 0x6BD1},
-+ {0, 0x371E, 0xE42E},
-+ {0, 0x3720, 0x1D32},
-+ {0, 0x3722, 0xCC31},
-+ {0, 0x3724, 0xAE94},
-+ {0, 0x3726, 0x6413},
-+ {0, 0x375E, 0xE290},
-+ {0, 0x3760, 0x8F53},
-+ {0, 0x3762, 0xF936},
-+ {0, 0x3764, 0x4614},
-+ {0, 0x3766, 0x1B59},
-+ {0, 0x3784, 0x0404},
-+ {0, 0x3782, 0x0304},
-+ {0, 0x3210, 0x01B8},
-+ {0, 0x098E, 0xC913},
-+ {0, 0x0990, 0x000A},
-+ {0, 0x098E, 0x686B},
-+ {0, 0x0990, 0x05DC},
-+ {0, 0x098E, 0x686D},
-+ {0, 0x0990, 0x0BB8},
-+ {0, 0x098E, 0x6C6B},
-+ {0, 0x0990, 0x05DC},
-+ {0, 0x098E, 0x6C6D},
-+ {0, 0x0990, 0x0BB8},
-+ {0, 0x098E, 0x3439},
-+ {0, 0x0990, 0x05DC},
-+ {0, 0x098E, 0x343B},
-+ {0, 0x0990, 0x0BB8},
-+ {0, 0x098E, 0x4926},
-+ {0, 0x0990, 0x0001},
-+ {0, 0x098E, 0x4928},
-+ {0, 0x0990, 0x0002},
-+ {0, 0x098E, 0x492A},
-+ {0, 0x0990, 0x0656},
-+ {0, 0x098E, 0x4D26},
-+ {0, 0x0990, 0x0001},
-+ {0, 0x098E, 0x4D28},
-+ {0, 0x0990, 0x0002},
-+ {0, 0x098E, 0x4D2A},
-+ {0, 0x0990, 0x0656},
-+ {0, 0x33F4, 0x040B},
-+ {0, 0x098E, 0xC916},
-+ {0, 0x0990, 0x0014},
-+ {0, 0x098E, 0xC919},
-+ {0, 0x0990, 0x0028},
-+ {0, 0x098E, 0xC917},
-+ {0, 0x0990, 0x0004},
-+ {0, 0x098E, 0xC918},
-+ {0, 0x0990, 0x0000},
-+ {0, 0x098E, 0xC91A},
-+ {0, 0x0990, 0x0001},
-+ {0, 0x098E, 0xC91B},
-+ {0, 0x0990, 0x0009},
-+ {0, 0x326C, 0x0C00},
-+ {0, 0x098E, 0x494B},
-+ {0, 0x0990, 0x0042},
-+ {0, 0x098E, 0x494D},
-+ {0, 0x0990, 0x012C},
-+ {0, 0x098E, 0xC91E},
-+ {0, 0x0990, 0x0012},
-+ {0, 0x098E, 0xC91F},
-+ {0, 0x0990, 0x000A},
-+ {0, 0x098E, 0xC920},
-+ {0, 0x0990, 0x0012},
-+ {0, 0x098E, 0xC921},
-+ {0, 0x0990, 0x000A},
-+ {0, 0x098E, 0xC922},
-+ {0, 0x0990, 0x0026},
-+ {0, 0x098E, 0xC923},
-+ {0, 0x0990, 0x001E},
-+ {0, 0x098E, 0xC924},
-+ {0, 0x0990, 0x0026},
-+ {0, 0x098E, 0xC925},
-+ {0, 0x0990, 0x0026},
-+ {0, 0x098E, 0xBC02},
-+ {0, 0x0990, 0x0003},
-+ {0, 0x098E, 0xBC05},
-+ {0, 0x0990, 0x000E},
-+ {0, 0x098E, 0xC950},
-+ {0, 0x0990, 0x0064},
-+ {0, 0x098E, 0xC94F},
-+ {0, 0x0990, 0x0038},
-+ {0, 0x098E, 0xC952},
-+ {0, 0x0990, 0x0064},
-+ {0, 0x098E, 0xC951},
-+ {0, 0x0990, 0x0051},
-+ {0, 0x098E, 0xC954},
-+ {0, 0x0990, 0x0010},
-+ {0, 0x098E, 0xC953},
-+ {0, 0x0990, 0x0020},
-+ {0, 0x098E, 0xC956},
-+ {0, 0x0990, 0x0010},
-+ {0, 0x098E, 0xC955},
-+ {0, 0x0990, 0x0020},
-+ {0, 0x098E, 0xC958},
-+ {0, 0x0990, 0x0020},
-+ {0, 0x098E, 0xC957},
-+ {0, 0x0990, 0x0014},
-+ {0, 0x098E, 0xC95A},
-+ {0, 0x0990, 0x001D},
-+ {0, 0x098E, 0xC959},
-+ {0, 0x0990, 0x0020},
-+ {0, 0x098E, 0xC95C},
-+ {0, 0x0990, 0x000C},
-+ {0, 0x098E, 0xC95B},
-+ {0, 0x0990, 0x0008},
-+ {0, 0x098E, 0xC95E},
-+ {0, 0x0990, 0x000C},
-+ {0, 0x098E, 0xC95D},
-+ {0, 0x0990, 0x0008},
-+ {0, 0x098E, 0xC95F},
-+ {0, 0x0990, 0x0064},
-+ {0, 0x098E, 0x48DC},
-+ {0, 0x0990, 0x004D},
-+ {0, 0x098E, 0x48DE},
-+ {0, 0x0990, 0x0096},
-+ {0, 0x098E, 0x48E0},
-+ {0, 0x0990, 0x001D},
-+ {0, 0x098E, 0x48E2},
-+ {0, 0x0990, 0x004D},
-+ {0, 0x098E, 0x48E4},
-+ {0, 0x0990, 0x0096},
-+ {0, 0x098E, 0x48E6},
-+ {0, 0x0990, 0x001D},
-+ {0, 0x098E, 0x48E8},
-+ {0, 0x0990, 0x004D},
-+ {0, 0x098E, 0x48EA},
-+ {0, 0x0990, 0x0096},
-+ {0, 0x098E, 0x48EC},
-+ {0, 0x0990, 0x001D},
-+ {0, 0x098E, 0xDC2A},
-+ {0, 0x0990, 0x000B},
-+ {0, 0x098E, 0xDC2B},
-+ {0, 0x0990, 0x0017},
-+ {0, 0x098E, 0xBC0B},
-+ {0, 0x0990, 0x0000},
-+ {0, 0x098E, 0xBC0C},
-+ {0, 0x0990, 0x001B},
-+ {0, 0x098E, 0xBC0D},
-+ {0, 0x0990, 0x002A},
-+ {0, 0x098E, 0xBC0E},
-+ {0, 0x0990, 0x003E},
-+ {0, 0x098E, 0xBC0F},
-+ {0, 0x0990, 0x005A},
-+ {0, 0x098E, 0xBC10},
-+ {0, 0x0990, 0x0070},
-+ {0, 0x098E, 0xBC11},
-+ {0, 0x0990, 0x0081},
-+ {0, 0x098E, 0xBC12},
-+ {0, 0x0990, 0x0090},
-+ {0, 0x098E, 0xBC13},
-+ {0, 0x0990, 0x009E},
-+ {0, 0x098E, 0xBC14},
-+ {0, 0x0990, 0x00AB},
-+ {0, 0x098E, 0xBC15},
-+ {0, 0x0990, 0x00B6},
-+ {0, 0x098E, 0xBC16},
-+ {0, 0x0990, 0x00C1},
-+ {0, 0x098E, 0xBC17},
-+ {0, 0x0990, 0x00CB},
-+ {0, 0x098E, 0xBC18},
-+ {0, 0x0990, 0x00D5},
-+ {0, 0x098E, 0xBC19},
-+ {0, 0x0990, 0x00DE},
-+ {0, 0x098E, 0xBC1A},
-+ {0, 0x0990, 0x00E7},
-+ {0, 0x098E, 0xBC1B},
-+ {0, 0x0990, 0x00EF},
-+ {0, 0x098E, 0xBC1C},
-+ {0, 0x0990, 0x00F7},
-+ {0, 0x098E, 0xBC1D},
-+ {0, 0x0990, 0x00FF},
-+ {0, 0x098E, 0xBC1E},
-+ {0, 0x0990, 0x0000},
-+ {0, 0x098E, 0xBC1F},
-+ {0, 0x0990, 0x001B},
-+ {0, 0x098E, 0xBC20},
-+ {0, 0x0990, 0x002A},
-+ {0, 0x098E, 0xBC21},
-+ {0, 0x0990, 0x003E},
-+ {0, 0x098E, 0xBC22},
-+ {0, 0x0990, 0x005A},
-+ {0, 0x098E, 0xBC23},
-+ {0, 0x0990, 0x0070},
-+ {0, 0x098E, 0xBC24},
-+ {0, 0x0990, 0x0081},
-+ {0, 0x098E, 0xBC25},
-+ {0, 0x0990, 0x0090},
-+ {0, 0x098E, 0xBC26},
-+ {0, 0x0990, 0x009E},
-+ {0, 0x098E, 0xBC27},
-+ {0, 0x0990, 0x00AB},
-+ {0, 0x098E, 0xBC28},
-+ {0, 0x0990, 0x00B6},
-+ {0, 0x098E, 0xBC29},
-+ {0, 0x0990, 0x00C1},
-+ {0, 0x098E, 0xBC2A},
-+ {0, 0x0990, 0x00CB},
-+ {0, 0x098E, 0xBC2B},
-+ {0, 0x0990, 0x00D5},
-+ {0, 0x098E, 0xBC2C},
-+ {0, 0x0990, 0x00DE},
-+ {0, 0x098E, 0xBC2D},
-+ {0, 0x0990, 0x00E7},
-+ {0, 0x098E, 0xBC2E},
-+ {0, 0x0990, 0x00EF},
-+ {0, 0x098E, 0xBC2F},
-+ {0, 0x0990, 0x00F7},
-+ {0, 0x098E, 0xBC30},
-+ {0, 0x0990, 0x00FF},
-+ {0, 0x098E, 0xBC31},
-+ {0, 0x0990, 0x0000},
-+ {0, 0x098E, 0xBC32},
-+ {0, 0x0990, 0x000D},
-+ {0, 0x098E, 0xBC33},
-+ {0, 0x0990, 0x0019},
-+ {0, 0x098E, 0xBC34},
-+ {0, 0x0990, 0x0030},
-+ {0, 0x098E, 0xBC35},
-+ {0, 0x0990, 0x0056},
-+ {0, 0x098E, 0xBC36},
-+ {0, 0x0990, 0x0070},
-+ {0, 0x098E, 0xBC37},
-+ {0, 0x0990, 0x0081},
-+ {0, 0x098E, 0xBC38},
-+ {0, 0x0990, 0x0090},
-+ {0, 0x098E, 0xBC39},
-+ {0, 0x0990, 0x009E},
-+ {0, 0x098E, 0xBC3A},
-+ {0, 0x0990, 0x00AB},
-+ {0, 0x098E, 0xBC3B},
-+ {0, 0x0990, 0x00B6},
-+ {0, 0x098E, 0xBC3C},
-+ {0, 0x0990, 0x00C1},
-+ {0, 0x098E, 0xBC3D},
-+ {0, 0x0990, 0x00CB},
-+ {0, 0x098E, 0xBC3E},
-+ {0, 0x0990, 0x00D5},
-+ {0, 0x098E, 0xBC3F},
-+ {0, 0x0990, 0x00DE},
-+ {0, 0x098E, 0xBC40},
-+ {0, 0x0990, 0x00E7},
-+ {0, 0x098E, 0xBC41},
-+ {0, 0x0990, 0x00EF},
-+ {0, 0x098E, 0xBC42},
-+ {0, 0x0990, 0x00F7},
-+ {0, 0x098E, 0xBC43},
-+ {0, 0x0990, 0x00FF},
-+ {0, 0x098E, 0x6865},
-+ {0, 0x0990, 0x00E0},
-+ {0, 0x098E, 0x6867},
-+ {0, 0x0990, 0x00F4},
-+ {0, 0x098E, 0x8400},
-+ {0, 0x0990, 0x0006},
-+ {0, 0x098E, 0xBC4A},
-+ {0, 0x0990, 0x007F},
-+ {0, 0x098E, 0xBC4B},
-+ {0, 0x0990, 0x007F},
-+ {0, 0x098E, 0xBC4C},
-+ {0, 0x0990, 0x007F},
-+ {0, 0x3542, 0x0010},
-+ {0, 0x3544, 0x0030},
-+ {0, 0x3546, 0x0040},
-+ {0, 0x3548, 0x0080},
-+ {0, 0x354A, 0x0100},
-+ {0, 0x354C, 0x0200},
-+ {0, 0x354E, 0x0300},
-+ {0, 0x3550, 0x0010},
-+ {0, 0x3552, 0x0030},
-+ {0, 0x3554, 0x0040},
-+ {0, 0x3556, 0x0080},
-+ {0, 0x3558, 0x012C},
-+ {0, 0x355A, 0x0320},
-+ {0, 0x355C, 0x03E8},
-+ {0, 0x3560, 0x0040},
-+ {0, 0x3562, 0x0020},
-+ {0, 0x3564, 0x0040},
-+ {0, 0x3566, 0x0010},
-+ {0, 0x3568, 0x0008},
-+ {0, 0x356A, 0x0004},
-+ {0, 0x356C, 0x0004},
-+ {0, 0x356E, 0x0004},
-+ {0, 0x098E, 0x3C4D},
-+ {0, 0x0990, 0x0DAC},
-+ {0, 0x098E, 0x3C4F},
-+ {0, 0x0990, 0x148A},
-+ {0, 0x098E, 0xC911},
-+ {0, 0x0990, 0x00C8},
-+ {0, 0x098E, 0xC8F4},
-+ {0, 0x0990, 0x0004},
-+ {0, 0x098E, 0xC8F5},
-+ {0, 0x0990, 0x0002},
-+ {0, 0x098E, 0x48F6},
-+ {0, 0x0990, 0x3B4D},
-+ {0, 0x098E, 0x48F8},
-+ {0, 0x0990, 0x6380},
-+ {0, 0x098E, 0x48FA},
-+ {0, 0x0990, 0x9B18},
-+ {0, 0x098E, 0x48FC},
-+ {0, 0x0990, 0x5D51},
-+ {0, 0x098E, 0x48FE},
-+ {0, 0x0990, 0xEDE8},
-+ {0, 0x098E, 0x4900},
-+ {0, 0x0990, 0xE515},
-+ {0, 0x098E, 0x4902},
-+ {0, 0x0990, 0xBFF4},
-+ {0, 0x098E, 0x4904},
-+ {0, 0x0990, 0x001E},
-+ {0, 0x098E, 0x4906},
-+ {0, 0x0990, 0x0026},
-+ {0, 0x098E, 0x4908},
-+ {0, 0x0990, 0x0033},
-+ {0, 0x098E, 0xE84A},
-+ {0, 0x0990, 0x0083},
-+ {0, 0x098E, 0xE84D},
-+ {0, 0x0990, 0x0083},
-+ {0, 0x098E, 0xE84C},
-+ {0, 0x0990, 0x0080},
-+ {0, 0x098E, 0xE84F},
-+ {0, 0x0990, 0x0080},
-+ {0, 0x098E, 0x8400},
-+ {0, 0x0990, 0x0006},
-+ {0, 0x098E, 0x48B0},
-+ {0, 0x0990, 0x0180},
-+ {0, 0x098E, 0x48B2},
-+ {0, 0x0990, 0xFF7A},
-+ {0, 0x098E, 0x48B4},
-+ {0, 0x0990, 0x0018},
-+ {0, 0x098E, 0x48B6},
-+ {0, 0x0990, 0xFFCA},
-+ {0, 0x098E, 0x48B8},
-+ {0, 0x0990, 0x017C},
-+ {0, 0x098E, 0x48BA},
-+ {0, 0x0990, 0xFFCC},
-+ {0, 0x098E, 0x48BC},
-+ {0, 0x0990, 0x000C},
-+ {0, 0x098E, 0x48BE},
-+ {0, 0x0990, 0xFF1F},
-+ {0, 0x098E, 0x48C0},
-+ {0, 0x0990, 0x01E8},
-+ {0, 0x098E, 0x48C2},
-+ {0, 0x0990, 0x0020},
-+ {0, 0x098E, 0x48C4},
-+ {0, 0x0990, 0x0044},
-+ {0, 0x098E, 0x48C6},
-+ {0, 0x0990, 0x0079},
-+ {0, 0x098E, 0x48C8},
-+ {0, 0x0990, 0xFFAD},
-+ {0, 0x098E, 0x48CA},
-+ {0, 0x0990, 0xFFE2},
-+ {0, 0x098E, 0x48CC},
-+ {0, 0x0990, 0x0033},
-+ {0, 0x098E, 0x48CE},
-+ {0, 0x0990, 0x002A},
-+ {0, 0x098E, 0x48D0},
-+ {0, 0x0990, 0xFFAA},
-+ {0, 0x098E, 0x48D2},
-+ {0, 0x0990, 0x0017},
-+ {0, 0x098E, 0x48D4},
-+ {0, 0x0990, 0x004B},
-+ {0, 0x098E, 0x48D6},
-+ {0, 0x0990, 0xFFA5},
-+ {0, 0x098E, 0x48D8},
-+ {0, 0x0990, 0x0015},
-+ {0, 0x098E, 0x48DA},
-+ {0, 0x0990, 0xFFE2},
-+ {0, 0x35A2, 0x0014},
-+ {0, 0x098E, 0xC949},
-+ {0, 0x0990, 0x0024},
-+ {0, 0x35A4, 0x0596},
-+ {0, 0x098E, 0xC94A},
-+ {0, 0x0990, 0x0062},
-+ {0, 0x098E, 0xC948},
-+ {0, 0x0990, 0x0006},
-+ {0, 0x098E, 0xC914},
-+ {0, 0x0990, 0x0000},
-+ {0, 0x098E, 0xC915},
-+ {0, 0x0990, 0x00FF},
-+ {0, 0x098E, 0xE86F},
-+ {0, 0x0990, 0x0060},
-+ {0, 0x098E, 0xE870},
-+ {0, 0x0990, 0x003C},
-+ {0, 0x098E, 0xEC6F},
-+ {0, 0x0990, 0x0060},
-+ {0, 0x098E, 0xEC70},
-+ {0, 0x0990, 0x003C},
-+ {0, 0x098E, 0xE883},
-+ {0, 0x0990, 0x0000},
-+ {0, 0x098E, 0xEC83},
-+ {0, 0x0990, 0x0000},
-+ {0, 0x098E, 0x8400},
-+ {0, 0x0990, 0x0006},
-+ {0, 0x098E, 0xE885},
-+ {0, 0x0990, 0x001E},
-+ {0, 0x098E, 0xE886},
-+ {0, 0x0990, 0x00D8},
-+ {0, 0x098E, 0xEC85},
-+ {0, 0x0990, 0x001E},
-+ {0, 0x098E, 0xEC86},
-+ {0, 0x0990, 0x00D8},
-+ {0, 0x098E, 0xE884},
-+ {0, 0x0990, 0x005C},
-+ {0, 0x098E, 0xEC84},
-+ {0, 0x0990, 0x005C},
-+ {0, 0x098E, 0x490A},
-+ {0, 0x0990, 0x0666},
-+ {0, 0x098E, 0x490C},
-+ {0, 0x0990, 0x0140},
-+ {0, 0x098E, 0x6857},
-+ {0, 0x0990, 0x0014},
-+ {0, 0x098E, 0x685C},
-+ {0, 0x0990, 0x0005},
-+ {0, 0x098E, 0x490E},
-+ {0, 0x0990, 0x00A4},
-+ {0, 0x098E, 0xB43D},
-+ {0, 0x0990, 0x0031},
-+ {0, 0x098E, 0xB43E},
-+ {0, 0x0990, 0x001B},
-+ {0, 0x098E, 0xB43F},
-+ {0, 0x0990, 0x0028},
-+ {0, 0x098E, 0xB440},
-+ {0, 0x0990, 0x0003},
-+ {0, 0x098E, 0xB441},
-+ {0, 0x0990, 0x00CD},
-+ {0, 0x098E, 0xB442},
-+ {0, 0x0990, 0x0064},
-+ {0, 0x098E, 0xB443},
-+ {0, 0x0990, 0x000F},
-+ {0, 0x098E, 0xB444},
-+ {0, 0x0990, 0x0007},
-+ {0, 0x098E, 0x300D},
-+ {0, 0x0990, 0x000F},
-+ {0, 0x098E, 0x3017},
-+ {0, 0x0990, 0x0F0F},
-+ {0, 0x098E, 0x8400},
-+ {0, 0x0990, 0x0006},
-+ {0, 0x098E, 0xE81F},
-+ {0, 0x0990, 0x0020},
-+ {0, 0x098E, 0x68A0},
-+ {0, 0x0990, 0x082E},
-+ {0, 0x098E, 0x6CA0},
-+ {0, 0x0990, 0x082E},
-+ {0, 0x098E, 0x70A0},
-+ {0, 0x0990, 0x082E},
-+ {0, 0x098E, 0x74A0},
-+ {0, 0x0990, 0x082E},
-+ {0, 0x3C52, 0x082E},
-+ {0, 0x098E, 0x488E},
-+ {0, 0x0990, 0x0020},
-+ {0, 0x098E, 0xECAC},
-+ {0, 0x0990, 0x0000}
-+};
-+
-+mt9t111_regs def_regs2[] = {
-+ {100, 0x0018, 0x0028},
-+ {0, 0x316C, 0x350F},
-+ {0, 0x098E, 0x6817},
-+ {0, 0x0990, 0x000C},
-+ {0, 0x0034, 0x0000}
-+};
-+
-+mt9t111_regs pll_regs1[] = {
-+ {0, 0x0014, 0x2425},
-+ {0, 0x0014, 0x2425},
-+ {0, 0x0014, 0x2145},
-+ {0, 0x0010, 0x0219},
-+ {0, 0x0012, 0x0090},
-+ {0, 0x002A, 0x79DD},
-+ {0, 0x0014, 0x2545},
-+ {0, 0x0014, 0x2547},
-+ {0, 0x0014, 0x3447},
-+ {0, 0x0014, 0x3047}
-+};
-+
-+mt9t111_regs pll_regs2[] = {
-+ {0, 0x0014, 0x3046},
-+ {0, 0x0022, 0x01E0},
-+ {0, 0x001E, 0x0707},
-+ {0, 0x3B84, 0x011D}
-+};
-+
-+mt9t111_regs bayer_pattern_regs[] = {
-+ {0, 0x098E, 0x6807},
-+ {0, 0x0990, 0x0100},
-+ {0, 0x098E, 0x6809},
-+ {0, 0x0990, 0x0000},
-+ {0, 0x098E, 0xE88E},
-+ {0, 0x0990, 0x0000},
-+ {0, 0x098E, 0x6C07},
-+ {0, 0x0990, 0x0100},
-+ {0, 0x098E, 0x6C09},
-+ {0, 0x0990, 0x0000},
-+ {0, 0x098E, 0xEC8E},
-+ {0, 0x0990, 0x0000}
-+};
-+
-+#endif
-diff --git a/include/media/mt9t111.h b/include/media/mt9t111.h
-new file mode 100644
-index 0000000..7acbeed
---- /dev/null
-+++ b/include/media/mt9t111.h
-@@ -0,0 +1,79 @@
-+/*
-+ * include/media/mt9t111.h
-+ *
-+ * mt9t111 sensor driver
-+ *
-+ * Copyright (C) 2009 Leopard Imaging
-+ *
-+ * This file is licensed under the terms of the GNU General Public License
-+ * version 2. This program is licensed "as is" without any warranty of any
-+ * kind, whether express or implied.
-+ */
-+
-+#ifndef MT9T111_H
-+#define MT9T111_H
-+
-+/*********************************
-+ * Defines and Macros and globals
-+ ********************************/
-+
-+#ifdef TRUE
-+#undef TRUE
-+#endif
-+
-+#ifdef FALSE
-+#undef FALSE
-+#endif
-+
-+#define TRUE 1
-+#define FALSE 0
-+
-+#ifdef DEBUG
-+#undef DEBUG
-+#endif
-+
-+#ifndef TYPES
-+#define TYPES
-+#endif
-+
-+#define MT9T111_I2C_REGISTERED (1)
-+#define MT9T111_I2C_UNREGISTERED (0)
-+
-+/*i2c adress for MT9T111*/
-+#define MT9T111_I2C_ADDR (0x78 >>1)
-+
-+#define MT9T111_CLK_MAX (75000000) /* 75MHz */
-+#define MT9T111_CLK_MIN (6000000) /* 6Mhz */
-+
-+#define MT9T111_I2C_CONFIG (1)
-+#define I2C_ONE_BYTE_TRANSFER (1)
-+#define I2C_TWO_BYTE_TRANSFER (2)
-+#define I2C_THREE_BYTE_TRANSFER (3)
-+#define I2C_FOUR_BYTE_TRANSFER (4)
-+#define I2C_TXRX_DATA_MASK (0x00FF)
-+#define I2C_TXRX_DATA_MASK_UPPER (0xFF00)
-+#define I2C_TXRX_DATA_SHIFT (8)
-+
-+struct mt9t111_platform_data {
-+ char *master;
-+ int (*power_set) (enum v4l2_power on);
-+ int (*ifparm) (struct v4l2_ifparm *p);
-+ int (*priv_data_set) (void *);
-+ /* Interface control params */
-+ bool clk_polarity;
-+ bool hs_polarity;
-+ bool vs_polarity;
-+};
-+
-+/**
-+ * struct capture_size - image capture size information
-+ * @width: image width in pixels
-+ * @height: image height in pixels
-+ */
-+struct capture_size {
-+ unsigned long width;
-+ unsigned long height;
-+};
-+
-+#endif /*for ifndef MT9T111 */
-+
---
-1.6.6.1
-
diff --git a/recipes/linux/linux-omap-psp-2.6.32/0008-ARM-OMAP-beagleboard-pre-export-GPIOs-to-userspace-w.patch b/recipes/linux/linux-omap-psp-2.6.32/0008-ARM-OMAP-beagleboard-pre-export-GPIOs-to-userspace-w.patch
new file mode 100644
index 0000000000..be8110e4f1
--- /dev/null
+++ b/recipes/linux/linux-omap-psp-2.6.32/0008-ARM-OMAP-beagleboard-pre-export-GPIOs-to-userspace-w.patch
@@ -0,0 +1,57 @@
+From dec5927ff1ccda36cc982509c9a9e92ff9d49af7 Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen@dominion.thruhere.net>
+Date: Mon, 3 May 2010 21:38:34 +0200
+Subject: [PATCH 08/43] ARM: OMAP: beagleboard: pre-export GPIOs to userspace when using a Tincantools trainerboard
+
+This really needs a for loop, patches welcome
+---
+ arch/arm/mach-omap2/board-omap3beagle.c | 33 ++++++++++++++++++++++++++++++-
+ 1 files changed, 32 insertions(+), 1 deletions(-)
+
+diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
+index ac96551..c9af202 100644
+--- a/arch/arm/mach-omap2/board-omap3beagle.c
++++ b/arch/arm/mach-omap2/board-omap3beagle.c
+@@ -701,7 +701,38 @@ static void __init omap3_beagle_init(void)
+ mmc[1].gpio_wp = 141;
+ mmc[1].gpio_cd = 162;
+ }
+-
++
++ if(!strcmp(expansionboard_name, "trainer"))
++ {
++ printk(KERN_INFO "Beagle expansionboard: exporting GPIOs 130-141,162 to userspace\n");
++ gpio_request(130, "sysfs");
++ gpio_export(130, 1);
++ gpio_request(131, "sysfs");
++ gpio_export(131, 1);
++ gpio_request(132, "sysfs");
++ gpio_export(132, 1);
++ gpio_request(133, "sysfs");
++ gpio_export(133, 1);
++ gpio_request(134, "sysfs");
++ gpio_export(134, 1);
++ gpio_request(135, "sysfs");
++ gpio_export(135, 1);
++ gpio_request(136, "sysfs");
++ gpio_export(136, 1);
++ gpio_request(137, "sysfs");
++ gpio_export(137, 1);
++ gpio_request(138, "sysfs");
++ gpio_export(138, 1);
++ gpio_request(139, "sysfs");
++ gpio_export(139, 1);
++ gpio_request(140, "sysfs");
++ gpio_export(140, 1);
++ gpio_request(141, "sysfs");
++ gpio_export(141, 1);
++ gpio_request(162, "sysfs");
++ gpio_export(162, 1);
++ }
++
+ usb_musb_init();
+ usb_ehci_init(&ehci_pdata);
+ omap3beagle_flash_init();
+--
+1.6.6.1
+
diff --git a/recipes/linux/linux-omap-psp-2.6.32/0008-board-omap3beagle-ugly-copy-paste-job-to-get-mt9p111.patch b/recipes/linux/linux-omap-psp-2.6.32/0008-board-omap3beagle-ugly-copy-paste-job-to-get-mt9p111.patch
deleted file mode 100644
index 5e5bc86e1f..0000000000
--- a/recipes/linux/linux-omap-psp-2.6.32/0008-board-omap3beagle-ugly-copy-paste-job-to-get-mt9p111.patch
+++ /dev/null
@@ -1,214 +0,0 @@
-From 44c4fcfa0af82b3656e9a629a667ecf3a8fe3434 Mon Sep 17 00:00:00 2001
-From: Koen Kooi <k-kooi@ti.com>
-Date: Tue, 9 Feb 2010 20:53:56 +0100
-Subject: [PATCH 08/42] board-omap3beagle: ugly copy/paste job to get mt9p111 sensor data in (only compile tested)
-
----
- arch/arm/mach-omap2/board-omap3beagle.c | 169 +++++++++++++++++++++++++++++++
- 1 files changed, 169 insertions(+), 0 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
-index accf80d..e63bec6 100644
---- a/arch/arm/mach-omap2/board-omap3beagle.c
-+++ b/arch/arm/mach-omap2/board-omap3beagle.c
-@@ -25,6 +25,12 @@
- #include <linux/input.h>
- #include <linux/gpio_keys.h>
-
-+#include <media/v4l2-int-device.h>
-+#include <media/mt9t111.h>
-+
-+/* Include V4L2 ISP-Camera driver related header file */
-+#include <../drivers/media/video/omap34xxcam.h>
-+
- #include <linux/mtd/mtd.h>
- #include <linux/mtd/partitions.h>
- #include <linux/mtd/nand.h>
-@@ -441,6 +447,157 @@ static struct twl4030_platform_data beagle_twldata = {
- .vpll2 = &beagle_vpll2,
- };
-
-+
-+#if defined(CONFIG_VIDEO_MT9T111) || defined(CONFIG_VIDEO_MT9T111_MODULE)
-+static struct isp_interface_config mt9t111_if_config = {
-+ .ccdc_par_ser = ISP_PARLL,
-+ .dataline_shift = 0x0,
-+ .hsvs_syncdetect = ISPCTRL_SYNC_DETECT_VSRISE,
-+ .strobe = 0x0,
-+ .prestrobe = 0x0,
-+ .shutter = 0x0,
-+ .u.par.par_bridge = 0x1,
-+ .u.par.par_clk_pol = 0x0,
-+};
-+
-+static struct v4l2_ifparm mt9t111_ifparm_s = {
-+#if 1
-+ .if_type = V4L2_IF_TYPE_RAW,
-+ .u = {
-+ .raw = {
-+ .frame_start_on_rising_vs = 1,
-+ .bt_sync_correct = 0,
-+ .swap = 0,
-+ .latch_clk_inv = 0,
-+ .nobt_hs_inv = 0, /* active high */
-+ .nobt_vs_inv = 0, /* active high */
-+ .clock_min = MT9T111_CLK_MIN,
-+ .clock_max = MT9T111_CLK_MAX,
-+ },
-+ },
-+#else
-+ .if_type = V4L2_IF_TYPE_YCbCr,
-+ .u = {
-+ .ycbcr = {
-+ .frame_start_on_rising_vs = 1,
-+ .bt_sync_correct = 0,
-+ .swap = 0,
-+ .latch_clk_inv = 0,
-+ .nobt_hs_inv = 0, /* active high */
-+ .nobt_vs_inv = 0, /* active high */
-+ .clock_min = MT9T111_CLK_MIN,
-+ .clock_max = MT9T111_CLK_MAX,
-+ },
-+ },
-+#endif
-+};
-+
-+/**
-+ * @brief mt9t111_ifparm - Returns the mt9t111 interface parameters
-+ *
-+ * @param p - pointer to v4l2_ifparm structure
-+ *
-+ * @return result of operation - 0 is success
-+ */
-+static int mt9t111_ifparm(struct v4l2_ifparm *p)
-+{
-+ if (p == NULL)
-+ return -EINVAL;
-+
-+ *p = mt9t111_ifparm_s;
-+ return 0;
-+}
-+
-+#if defined(CONFIG_VIDEO_OMAP3_CAM) || defined(CONFIG_VIDEO_OMAP3_CAM_MODULE)
-+static struct omap34xxcam_hw_config mt9t111_decoder_hwc = {
-+ .dev_index = 0,
-+ .dev_minor = 0,
-+ .dev_type = OMAP34XXCAM_SLAVE_SENSOR,
-+ .u.sensor.xclk = OMAP34XXCAM_XCLK_NONE,
-+ .u.sensor.sensor_isp = 1,
-+};
-+#endif
-+
-+/**
-+ * @brief mt9t111_set_prv_data - Returns mt9t111 omap34xx driver private data
-+ *
-+ * @param priv - pointer to omap34xxcam_hw_config structure
-+ *
-+ * @return result of operation - 0 is success
-+ */
-+static int mt9t111_set_prv_data(void *priv)
-+{
-+#if defined(CONFIG_VIDEO_OMAP3_CAM) || defined(CONFIG_VIDEO_OMAP3_CAM_MODULE)
-+ struct omap34xxcam_hw_config *hwc = priv;
-+
-+ if (priv == NULL)
-+ return -EINVAL;
-+
-+ hwc->u.sensor.sensor_isp = mt9t111_decoder_hwc.u.sensor.sensor_isp;
-+ hwc->u.sensor.xclk = mt9t111_decoder_hwc.u.sensor.xclk;
-+ hwc->dev_index = mt9t111_decoder_hwc.dev_index;
-+ hwc->dev_minor = mt9t111_decoder_hwc.dev_minor;
-+ hwc->dev_type = mt9t111_decoder_hwc.dev_type;
-+ return 0;
-+#else
-+ return -EINVAL;
-+#endif
-+}
-+
-+/**
-+ * @brief mt9t111_power_set - Power-on or power-off TVP5146 device
-+ *
-+ * @param power - enum, Power on/off, resume/standby
-+ *
-+ * @return result of operation - 0 is success
-+ */
-+static int mt9t111_power_set(enum v4l2_power power)
-+{
-+ switch (power) {
-+ case V4L2_POWER_OFF:
-+ /* Disable mux for TVP5146 decoder data path */
-+// if (omap3evmdc_set_mux(MUX_CAMERA_SENSOR, DISABLE_MUX))
-+// return -ENODEV;
-+ break;
-+
-+ case V4L2_POWER_STANDBY:
-+ break;
-+
-+ case V4L2_POWER_ON:
-+ /* Enable mux for expension camera data path */
-+// if (omap3evmdc_set_mux(MUX_CAMERA_SENSOR, ENABLE_MUX))
-+// return -ENODEV;
-+
-+#if defined(CONFIG_VIDEO_OMAP3_CAM) || defined(CONFIG_VIDEO_OMAP3_CAM_MODULE)
-+ isp_configure_interface(&mt9t111_if_config);
-+#endif
-+ break;
-+
-+ default:
-+ return -ENODEV;
-+ break;
-+ }
-+ return 0;
-+}
-+
-+static struct mt9t111_platform_data mt9t111_pdata = {
-+ .master = "omap34xxcam",
-+ .power_set = mt9t111_power_set,
-+ .priv_data_set = mt9t111_set_prv_data,
-+ .ifparm = mt9t111_ifparm,
-+ /* Some interface dependent params */
-+ .clk_polarity = 0, /* data clocked out on falling edge */
-+ .hs_polarity = 1, /* 0 - Active low, 1- Active high */
-+ .vs_polarity = 1, /* 0 - Active low, 1- Active high */
-+};
-+
-+static struct i2c_board_info __initdata mt9t111_i2c_board_info = {
-+ I2C_BOARD_INFO("mt9t111", MT9T111_I2C_ADDR),
-+ .platform_data = &mt9t111_pdata,
-+};
-+
-+#endif /* #ifdef CONFIG_VIDEO_MT9T111 */
-+
- static struct i2c_board_info __initdata beagle_i2c1_boardinfo[] = {
- {
- I2C_BOARD_INFO("twl4030", 0x48),
-@@ -618,6 +775,8 @@ static struct omap_board_mux board_mux[] __initdata = {
-
- static void __init omap3_beagle_init(void)
- {
-+ int err;
-+
- omap3_mux_init(board_mux, OMAP_PACKAGE_CBB);
- omap3_beagle_i2c_init();
- platform_add_devices(omap3_beagle_devices,
-@@ -640,7 +799,17 @@ static void __init omap3_beagle_init(void)
- omap_mux_init_signal("sdrc_cke1", OMAP_PIN_OUTPUT);
-
- beagle_display_init();
-+
-+ // Revisit: hardcodes i2c bus 2
-+#if defined(CONFIG_VIDEO_MT9T111) || defined(CONFIG_VIDEO_MT9T111_MODULE)
-+ err = i2c_register_board_info(2, &mt9t111_i2c_board_info, 1);
-+ if (err) {
-+ printk("beagle: MT9T111 I2C Board Registration failed \n");
-+ return err;
-+ }
-+#endif
- }
-+
- static void __init omap3_beagle_map_io(void)
- {
- omap2_set_globals_343x();
---
-1.6.6.1
-
diff --git a/recipes/linux/linux-omap-psp-2.6.32/0009-ARM-OMAP-beagleboard-initialize-ds1307-and-eeprom-on.patch b/recipes/linux/linux-omap-psp-2.6.32/0009-ARM-OMAP-beagleboard-initialize-ds1307-and-eeprom-on.patch
new file mode 100644
index 0000000000..fe9383a145
--- /dev/null
+++ b/recipes/linux/linux-omap-psp-2.6.32/0009-ARM-OMAP-beagleboard-initialize-ds1307-and-eeprom-on.patch
@@ -0,0 +1,76 @@
+From 7305c83476fe90a1368f647b7a5e5eba924b6f55 Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen@dominion.thruhere.net>
+Date: Mon, 3 May 2010 22:31:34 +0200
+Subject: [PATCH 09/43] ARM: OMAP: beagleboard: initialize ds1307 and eeprom only for zippy and zippy2
+
+---
+ arch/arm/mach-omap2/board-omap3beagle.c | 39 +++++++++++++++++++++++++++---
+ 1 files changed, 35 insertions(+), 4 deletions(-)
+
+diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
+index c9af202..b3c8cb7 100644
+--- a/arch/arm/mach-omap2/board-omap3beagle.c
++++ b/arch/arm/mach-omap2/board-omap3beagle.c
+@@ -496,24 +496,55 @@ static struct i2c_board_info __initdata beagle_i2c1_boardinfo[] = {
+ },
+ };
+
++
++#if defined(CONFIG_EEPROM_AT24) || defined(CONFIG_EEPROM_AT24_MODULE)
++#include <linux/i2c/at24.h>
++
++static struct at24_platform_data m24c01 = {
++ .byte_len = SZ_1K / 8,
++ .page_size = 16,
++};
++
+ #if defined(CONFIG_RTC_DRV_DS1307) || \
+ defined(CONFIG_RTC_DRV_DS1307_MODULE)
+
+-static struct i2c_board_info __initdata beagle_i2c2_boardinfo[] = {
++static struct i2c_board_info __initdata beagle_zippy_i2c2_boardinfo[] = {
+ {
+ I2C_BOARD_INFO("ds1307", 0x68),
+ },
++ {
++ I2C_BOARD_INFO("24c01", 0x50),
++ .platform_data = &m24c01,
++ },
+ };
+ #else
+-static struct i2c_board_info __initdata beagle_i2c2_boardinfo[] = {};
++static struct i2c_board_info __initdata beagle_zippy_i2c2_boardinfo[] = {
++ {
++ I2C_BOARD_INFO("24c01", 0x50),
++ .platform_data = &m24c01,
++ },
++};
++#endif
++#else
++static struct i2c_board_info __initdata beagle_zippy_i2c2_boardinfo[] = {};
+ #endif
+
++static struct i2c_board_info __initdata beagle_i2c2_boardinfo[] = {};
++
+ static int __init omap3_beagle_i2c_init(void)
+ {
+ omap_register_i2c_bus(1, 2600, beagle_i2c1_boardinfo,
+ ARRAY_SIZE(beagle_i2c1_boardinfo));
+- omap_register_i2c_bus(2, 400, beagle_i2c2_boardinfo,
+- ARRAY_SIZE(beagle_i2c2_boardinfo));
++ if(!strcmp(expansionboard_name, "zippy") || !strcmp(expansionboard_name, "zippy2"))
++ {
++ printk(KERN_INFO "Beagle expansionboard: registering i2c2 bus for zippy/zippy2\n");
++ omap_register_i2c_bus(2, 400, beagle_zippy_i2c2_boardinfo,
++ ARRAY_SIZE(beagle_zippy_i2c2_boardinfo));
++ } else
++ {
++ omap_register_i2c_bus(2, 400, beagle_i2c2_boardinfo,
++ ARRAY_SIZE(beagle_i2c2_boardinfo));
++ }
+ /* Bus 3 is attached to the DVI port where devices like the pico DLP
+ * projector don't work reliably with 400kHz */
+ omap_register_i2c_bus(3, 100, NULL, 0);
+--
+1.6.6.1
+
diff --git a/recipes/linux/linux-omap-psp-2.6.32/0009-board-omap3beagle-turn-on-power-to-camera-on-boot-an.patch b/recipes/linux/linux-omap-psp-2.6.32/0009-board-omap3beagle-turn-on-power-to-camera-on-boot-an.patch
deleted file mode 100644
index 3bb4124d25..0000000000
--- a/recipes/linux/linux-omap-psp-2.6.32/0009-board-omap3beagle-turn-on-power-to-camera-on-boot-an.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 6f6264e5980b822b5853d2f6a7584aa5e3431cfd Mon Sep 17 00:00:00 2001
-From: Koen Kooi <k-kooi@ti.com>
-Date: Thu, 11 Feb 2010 20:23:01 +0100
-Subject: [PATCH 09/42] board-omap3beagle: turn on power to camera on boot and add some comments
-
----
- arch/arm/mach-omap2/board-omap3beagle.c | 5 +++++
- 1 files changed, 5 insertions(+), 0 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
-index e63bec6..91d835a 100644
---- a/arch/arm/mach-omap2/board-omap3beagle.c
-+++ b/arch/arm/mach-omap2/board-omap3beagle.c
-@@ -327,9 +327,14 @@ static int beagle_twl_gpio_setup(struct device *dev,
- */
-
- if (cpu_is_omap3630()) {
-+ /* Power on DVI, Serial and PWR led */
- gpio_request(gpio + 1, "nDVI_PWR_EN");
- gpio_direction_output(gpio + 1, 0);
-
-+ /* Power on camera interface */
-+ gpio_request(gpio + 2, "CAM_EN");
-+ gpio_direction_output(gpio + 2, 1);
-+
- /* 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, 1);
---
-1.6.6.1
-
diff --git a/recipes/linux/linux-omap-psp-2.6.32/0010-ARM-OMAP-update-beagleboard-defconfig.patch b/recipes/linux/linux-omap-psp-2.6.32/0010-ARM-OMAP-update-beagleboard-defconfig.patch
new file mode 100644
index 0000000000..977d000217
--- /dev/null
+++ b/recipes/linux/linux-omap-psp-2.6.32/0010-ARM-OMAP-update-beagleboard-defconfig.patch
@@ -0,0 +1,3323 @@
+From 98b6d38691e00f56a6428768eb042a8f42c2fe41 Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen@dominion.thruhere.net>
+Date: Tue, 27 Apr 2010 10:51:15 +0200
+Subject: [PATCH 10/43] ARM: OMAP: update beagleboard defconfig
+
+---
+ arch/arm/configs/omap3_beagle_defconfig | 2514 +++++++++++++++++++++++++------
+ 1 files changed, 2088 insertions(+), 426 deletions(-)
+
+diff --git a/arch/arm/configs/omap3_beagle_defconfig b/arch/arm/configs/omap3_beagle_defconfig
+index 9cfae37..adb4f8c 100644
+--- a/arch/arm/configs/omap3_beagle_defconfig
++++ b/arch/arm/configs/omap3_beagle_defconfig
+@@ -1,15 +1,13 @@
+ #
+ # Automatically generated make config: don't edit
+-# Linux kernel version: 2.6.27-rc8
+-# Wed Oct 1 17:14:22 2008
++# Linux kernel version: 2.6.32
++# Mon Apr 26 16:59:04 2010
+ #
+ CONFIG_ARM=y
+ CONFIG_SYS_SUPPORTS_APM_EMULATION=y
+ CONFIG_GENERIC_GPIO=y
+ CONFIG_GENERIC_TIME=y
+ CONFIG_GENERIC_CLOCKEVENTS=y
+-CONFIG_MMU=y
+-# CONFIG_NO_IOPORT is not set
+ CONFIG_GENERIC_HARDIRQS=y
+ CONFIG_STACKTRACE_SUPPORT=y
+ CONFIG_HAVE_LATENCYTOP_SUPPORT=y
+@@ -18,134 +16,183 @@ CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+ CONFIG_HARDIRQS_SW_RESEND=y
+ CONFIG_GENERIC_IRQ_PROBE=y
+ CONFIG_RWSEM_GENERIC_SPINLOCK=y
+-# CONFIG_ARCH_HAS_ILOG2_U32 is not set
+-# CONFIG_ARCH_HAS_ILOG2_U64 is not set
++CONFIG_ARCH_HAS_CPUFREQ=y
+ CONFIG_GENERIC_HWEIGHT=y
+ CONFIG_GENERIC_CALIBRATE_DELAY=y
+-CONFIG_ARCH_SUPPORTS_AOUT=y
+-CONFIG_ZONE_DMA=y
+ CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
++CONFIG_OPROFILE_ARMV7=y
+ CONFIG_VECTORS_BASE=0xffff0000
+ CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
++CONFIG_CONSTRUCTORS=y
+
+ #
+ # General setup
+ #
+ CONFIG_EXPERIMENTAL=y
+ CONFIG_BROKEN_ON_SMP=y
++CONFIG_LOCK_KERNEL=y
+ CONFIG_INIT_ENV_ARG_LIMIT=32
+ CONFIG_LOCALVERSION=""
+-CONFIG_LOCALVERSION_AUTO=y
++# CONFIG_LOCALVERSION_AUTO is not set
+ CONFIG_SWAP=y
+ CONFIG_SYSVIPC=y
+ CONFIG_SYSVIPC_SYSCTL=y
+ # CONFIG_POSIX_MQUEUE is not set
+ CONFIG_BSD_PROCESS_ACCT=y
+ # CONFIG_BSD_PROCESS_ACCT_V3 is not set
+-# CONFIG_TASKSTATS is not set
++CONFIG_TASKSTATS=y
++CONFIG_TASK_DELAY_ACCT=y
++CONFIG_TASK_XACCT=y
++CONFIG_TASK_IO_ACCOUNTING=y
+ # CONFIG_AUDIT is not set
+-# CONFIG_IKCONFIG is not set
+-CONFIG_LOG_BUF_SHIFT=14
+-# CONFIG_CGROUPS is not set
++
++#
++# RCU Subsystem
++#
++CONFIG_TREE_RCU=y
++# CONFIG_TREE_PREEMPT_RCU is not set
++# CONFIG_TINY_RCU is not set
++# CONFIG_RCU_TRACE is not set
++CONFIG_RCU_FANOUT=32
++# CONFIG_RCU_FANOUT_EXACT is not set
++# CONFIG_TREE_RCU_TRACE is not set
++CONFIG_IKCONFIG=y
++CONFIG_IKCONFIG_PROC=y
++CONFIG_LOG_BUF_SHIFT=16
+ CONFIG_GROUP_SCHED=y
+ CONFIG_FAIR_GROUP_SCHED=y
+ # CONFIG_RT_GROUP_SCHED is not set
+ CONFIG_USER_SCHED=y
+ # CONFIG_CGROUP_SCHED is not set
+-# CONFIG_SYSFS_DEPRECATED=y is not set
+-# CONFIG_SYSFS_DEPRECATED_V2=y is not set
++# CONFIG_CGROUPS is not set
++# CONFIG_SYSFS_DEPRECATED_V2 is not set
+ # CONFIG_RELAY is not set
+ # CONFIG_NAMESPACES is not set
+ CONFIG_BLK_DEV_INITRD=y
+ CONFIG_INITRAMFS_SOURCE=""
++CONFIG_RD_GZIP=y
++# CONFIG_RD_BZIP2 is not set
++# CONFIG_RD_LZMA is not set
+ CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+ CONFIG_SYSCTL=y
++CONFIG_ANON_INODES=y
+ CONFIG_EMBEDDED=y
+ CONFIG_UID16=y
+ # CONFIG_SYSCTL_SYSCALL is not set
+ CONFIG_KALLSYMS=y
+ # CONFIG_KALLSYMS_ALL is not set
+-CONFIG_KALLSYMS_EXTRA_PASS=y
++# CONFIG_KALLSYMS_EXTRA_PASS is not set
+ CONFIG_HOTPLUG=y
+ CONFIG_PRINTK=y
+ CONFIG_BUG=y
+-CONFIG_ELF_CORE=y
+-CONFIG_COMPAT_BRK=y
++# CONFIG_ELF_CORE is not set
+ CONFIG_BASE_FULL=y
+ CONFIG_FUTEX=y
+-CONFIG_ANON_INODES=y
+ CONFIG_EPOLL=y
+ CONFIG_SIGNALFD=y
+ CONFIG_TIMERFD=y
+ CONFIG_EVENTFD=y
+ CONFIG_SHMEM=y
++CONFIG_AIO=y
++
++#
++# Kernel Performance Events And Counters
++#
+ CONFIG_VM_EVENT_COUNTERS=y
++# CONFIG_COMPAT_BRK is not set
+ CONFIG_SLAB=y
+ # CONFIG_SLUB is not set
+ # CONFIG_SLOB is not set
+-# CONFIG_PROFILING is not set
+-# CONFIG_MARKERS is not set
++CONFIG_PROFILING=y
++CONFIG_TRACEPOINTS=y
++CONFIG_OPROFILE=y
+ CONFIG_HAVE_OPROFILE=y
+ # CONFIG_KPROBES is not set
+-# CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set
+-# CONFIG_HAVE_IOREMAP_PROT is not set
+ CONFIG_HAVE_KPROBES=y
+ CONFIG_HAVE_KRETPROBES=y
+-# CONFIG_HAVE_ARCH_TRACEHOOK is not set
+-# CONFIG_HAVE_DMA_ATTRS is not set
+-# CONFIG_USE_GENERIC_SMP_HELPERS is not set
+ CONFIG_HAVE_CLK=y
+-CONFIG_PROC_PAGE_MONITOR=y
++
++#
++# GCOV-based kernel profiling
++#
++# CONFIG_GCOV_KERNEL is not set
++CONFIG_SLOW_WORK=y
++# CONFIG_SLOW_WORK_DEBUG is not set
+ CONFIG_HAVE_GENERIC_DMA_COHERENT=y
+ CONFIG_SLABINFO=y
+ CONFIG_RT_MUTEXES=y
+-# CONFIG_TINY_SHMEM is not set
+ CONFIG_BASE_SMALL=0
+ CONFIG_MODULES=y
+-# CONFIG_MODULE_FORCE_LOAD is not set
++CONFIG_MODULE_FORCE_LOAD=y
+ CONFIG_MODULE_UNLOAD=y
+-# CONFIG_MODULE_FORCE_UNLOAD is not set
++CONFIG_MODULE_FORCE_UNLOAD=y
+ CONFIG_MODVERSIONS=y
+ CONFIG_MODULE_SRCVERSION_ALL=y
+-CONFIG_KMOD=y
+ CONFIG_BLOCK=y
+-# CONFIG_LBD is not set
+-# CONFIG_BLK_DEV_IO_TRACE is not set
+-# CONFIG_LSF is not set
+-# CONFIG_BLK_DEV_BSG is not set
++CONFIG_LBDAF=y
++CONFIG_BLK_DEV_BSG=y
+ # CONFIG_BLK_DEV_INTEGRITY is not set
+
+ #
+ # IO Schedulers
+ #
+ CONFIG_IOSCHED_NOOP=y
+-CONFIG_IOSCHED_AS=y
+ CONFIG_IOSCHED_DEADLINE=y
+ CONFIG_IOSCHED_CFQ=y
+-CONFIG_DEFAULT_AS=y
+ # CONFIG_DEFAULT_DEADLINE is not set
+-# CONFIG_DEFAULT_CFQ is not set
++CONFIG_DEFAULT_CFQ=y
+ # CONFIG_DEFAULT_NOOP is not set
+-CONFIG_DEFAULT_IOSCHED="anticipatory"
+-CONFIG_CLASSIC_RCU=y
++CONFIG_DEFAULT_IOSCHED="cfq"
++# CONFIG_INLINE_SPIN_TRYLOCK is not set
++# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
++# CONFIG_INLINE_SPIN_LOCK is not set
++# CONFIG_INLINE_SPIN_LOCK_BH is not set
++# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
++# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
++# CONFIG_INLINE_SPIN_UNLOCK is not set
++# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
++# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set
++# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
++# CONFIG_INLINE_READ_TRYLOCK is not set
++# CONFIG_INLINE_READ_LOCK is not set
++# CONFIG_INLINE_READ_LOCK_BH is not set
++# CONFIG_INLINE_READ_LOCK_IRQ is not set
++# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
++# CONFIG_INLINE_READ_UNLOCK is not set
++# CONFIG_INLINE_READ_UNLOCK_BH is not set
++# CONFIG_INLINE_READ_UNLOCK_IRQ is not set
++# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
++# CONFIG_INLINE_WRITE_TRYLOCK is not set
++# CONFIG_INLINE_WRITE_LOCK is not set
++# CONFIG_INLINE_WRITE_LOCK_BH is not set
++# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
++# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
++# CONFIG_INLINE_WRITE_UNLOCK is not set
++# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
++# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set
++# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
++# CONFIG_MUTEX_SPIN_ON_OWNER is not set
+ CONFIG_FREEZER=y
+
+ #
+ # System Type
+ #
++CONFIG_MMU=y
+ # CONFIG_ARCH_AAEC2000 is not set
+ # CONFIG_ARCH_INTEGRATOR is not set
+ # CONFIG_ARCH_REALVIEW is not set
+ # CONFIG_ARCH_VERSATILE is not set
+ # CONFIG_ARCH_AT91 is not set
+-# CONFIG_ARCH_CLPS7500 is not set
+ # CONFIG_ARCH_CLPS711X is not set
++# CONFIG_ARCH_GEMINI is not set
+ # CONFIG_ARCH_EBSA110 is not set
+ # CONFIG_ARCH_EP93XX is not set
+ # CONFIG_ARCH_FOOTBRIDGE is not set
++# CONFIG_ARCH_MXC is not set
++# CONFIG_ARCH_STMP3XXX is not set
+ # CONFIG_ARCH_NETX is not set
+ # CONFIG_ARCH_H720X is not set
+-# CONFIG_ARCH_IMX is not set
++# CONFIG_ARCH_NOMADIK is not set
+ # CONFIG_ARCH_IOP13XX is not set
+ # CONFIG_ARCH_IOP32X is not set
+ # CONFIG_ARCH_IOP33X is not set
+@@ -153,23 +200,30 @@ CONFIG_FREEZER=y
+ # CONFIG_ARCH_IXP2000 is not set
+ # CONFIG_ARCH_IXP4XX is not set
+ # CONFIG_ARCH_L7200 is not set
++# CONFIG_ARCH_DOVE is not set
+ # CONFIG_ARCH_KIRKWOOD is not set
+-# CONFIG_ARCH_KS8695 is not set
+-# CONFIG_ARCH_NS9XXX is not set
+ # CONFIG_ARCH_LOKI is not set
+ # CONFIG_ARCH_MV78XX0 is not set
+-# CONFIG_ARCH_MXC is not set
+ # CONFIG_ARCH_ORION5X is not set
++# CONFIG_ARCH_MMP is not set
++# CONFIG_ARCH_KS8695 is not set
++# CONFIG_ARCH_NS9XXX is not set
++# CONFIG_ARCH_W90X900 is not set
+ # CONFIG_ARCH_PNX4008 is not set
+ # CONFIG_ARCH_PXA is not set
++# CONFIG_ARCH_MSM is not set
+ # CONFIG_ARCH_RPC is not set
+ # CONFIG_ARCH_SA1100 is not set
+ # CONFIG_ARCH_S3C2410 is not set
++# CONFIG_ARCH_S3C64XX is not set
++# CONFIG_ARCH_S5PC1XX is not set
+ # CONFIG_ARCH_SHARK is not set
+ # CONFIG_ARCH_LH7A40X is not set
++# CONFIG_ARCH_U300 is not set
+ # CONFIG_ARCH_DAVINCI is not set
+ CONFIG_ARCH_OMAP=y
+-# CONFIG_ARCH_MSM7X00A is not set
++# CONFIG_ARCH_BCMRING is not set
++# CONFIG_ARCH_U8500 is not set
+
+ #
+ # TI OMAP Implementations
+@@ -178,37 +232,55 @@ CONFIG_ARCH_OMAP_OTG=y
+ # CONFIG_ARCH_OMAP1 is not set
+ # CONFIG_ARCH_OMAP2 is not set
+ CONFIG_ARCH_OMAP3=y
++# CONFIG_ARCH_OMAP4 is not set
+
+ #
+ # OMAP Feature Selections
+ #
+-# CONFIG_OMAP_DEBUG_POWERDOMAIN is not set
+-# CONFIG_OMAP_DEBUG_CLOCKDOMAIN is not set
+-# CONFIG_OMAP_RESET_CLOCKS is not set
++CONFIG_OMAP_SMARTREFLEX=y
++# CONFIG_OMAP_SMARTREFLEX_TESTING is not set
++CONFIG_OMAP_RESET_CLOCKS=y
+ # CONFIG_OMAP_MUX is not set
+-# CONFIG_OMAP_MCBSP is not set
++CONFIG_OMAP_MCBSP=y
++CONFIG_OMAP_MBOX_FWK=m
++CONFIG_OMAP_IOMMU=y
+ # CONFIG_OMAP_MPU_TIMER is not set
+ CONFIG_OMAP_32K_TIMER=y
++# CONFIG_OMAP3_L2_AUX_SECURE_SAVE_RESTORE is not set
++# CONFIG_OMAP3_DEBOBS is not set
+ CONFIG_OMAP_32K_TIMER_HZ=128
+ CONFIG_OMAP_DM_TIMER=y
+ # CONFIG_OMAP_LL_DEBUG_UART1 is not set
+ # CONFIG_OMAP_LL_DEBUG_UART2 is not set
+ CONFIG_OMAP_LL_DEBUG_UART3=y
++# CONFIG_OMAP_LL_DEBUG_NONE is not set
++# CONFIG_OMAP_PM_NONE is not set
++# CONFIG_OMAP_PM_NOOP is not set
++CONFIG_OMAP_PM_SRF=y
+ CONFIG_ARCH_OMAP34XX=y
+ CONFIG_ARCH_OMAP3430=y
++CONFIG_OMAP_PACKAGE_CBB=y
+
+ #
+ # OMAP Board Type
+ #
+ CONFIG_MACH_OMAP3_BEAGLE=y
+-
+-#
+-# Boot options
+-#
+-
+-#
+-# Power management
+-#
++# CONFIG_MACH_OMAP_LDP is not set
++# CONFIG_MACH_OVERO is not set
++CONFIG_MACH_OMAP3EVM=y
++CONFIG_PMIC_TWL4030=y
++# CONFIG_MACH_OMAP3517EVM is not set
++# CONFIG_MACH_OMAP3_PANDORA is not set
++# CONFIG_MACH_OMAP3_TOUCHBOOK is not set
++# CONFIG_MACH_OMAP_3430SDP is not set
++# CONFIG_MACH_NOKIA_RX51 is not set
++# CONFIG_MACH_OMAP_ZOOM2 is not set
++# CONFIG_MACH_OMAP_ZOOM3 is not set
++# CONFIG_MACH_CM_T35 is not set
++# CONFIG_MACH_IGEP0020 is not set
++# CONFIG_MACH_OMAP_3630SDP is not set
++# CONFIG_OMAP3_EMU is not set
++# CONFIG_OMAP3_SDRC_AC_TIMING is not set
+
+ #
+ # Processor Type
+@@ -218,7 +290,7 @@ CONFIG_CPU_32v6K=y
+ CONFIG_CPU_V7=y
+ CONFIG_CPU_32v7=y
+ CONFIG_CPU_ABRT_EV7=y
+-CONFIG_CPU_PABRT_IFAR=y
++CONFIG_CPU_PABRT_V7=y
+ CONFIG_CPU_CACHE_V7=y
+ CONFIG_CPU_CACHE_VIPT=y
+ CONFIG_CPU_COPY_V6=y
+@@ -231,12 +303,17 @@ CONFIG_CPU_CP15_MMU=y
+ # Processor Features
+ #
+ CONFIG_ARM_THUMB=y
+-# CONFIG_ARM_THUMBEE is not set
++CONFIG_ARM_THUMBEE=y
+ # CONFIG_CPU_ICACHE_DISABLE is not set
+ # CONFIG_CPU_DCACHE_DISABLE is not set
+ # CONFIG_CPU_BPREDICT_DISABLE is not set
+ CONFIG_HAS_TLS_REG=y
+-# CONFIG_OUTER_CACHE is not set
++CONFIG_ARM_L1_CACHE_SHIFT=6
++CONFIG_USER_L2_PLE=y
++CONFIG_USER_PMON=y
++# CONFIG_ARM_ERRATA_430973 is not set
++# CONFIG_ARM_ERRATA_458693 is not set
++# CONFIG_ARM_ERRATA_460075 is not set
+ CONFIG_COMMON_CLKDEV=y
+
+ #
+@@ -257,42 +334,63 @@ CONFIG_VMSPLIT_3G=y
+ # CONFIG_VMSPLIT_2G is not set
+ # CONFIG_VMSPLIT_1G is not set
+ CONFIG_PAGE_OFFSET=0xC0000000
+-# CONFIG_PREEMPT is not set
++# CONFIG_PREEMPT_NONE is not set
++# CONFIG_PREEMPT_VOLUNTARY is not set
++CONFIG_PREEMPT=y
+ CONFIG_HZ=128
++# CONFIG_THUMB2_KERNEL is not set
+ CONFIG_AEABI=y
+-CONFIG_OABI_COMPAT=y
+-CONFIG_ARCH_FLATMEM_HAS_HOLES=y
+-# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
++# CONFIG_OABI_COMPAT is not set
++CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y
++# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
++# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
++# CONFIG_HIGHMEM is not set
+ CONFIG_SELECT_MEMORY_MODEL=y
+ CONFIG_FLATMEM_MANUAL=y
+ # CONFIG_DISCONTIGMEM_MANUAL is not set
+ # CONFIG_SPARSEMEM_MANUAL is not set
+ CONFIG_FLATMEM=y
+ CONFIG_FLAT_NODE_MEM_MAP=y
+-# CONFIG_SPARSEMEM_STATIC is not set
+-# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
+ CONFIG_PAGEFLAGS_EXTENDED=y
+ CONFIG_SPLIT_PTLOCK_CPUS=4
+-# CONFIG_RESOURCES_64BIT is not set
+-CONFIG_ZONE_DMA_FLAG=1
+-CONFIG_BOUNCE=y
++# CONFIG_PHYS_ADDR_T_64BIT is not set
++CONFIG_ZONE_DMA_FLAG=0
+ CONFIG_VIRT_TO_BUS=y
+-# CONFIG_LEDS is not set
++# CONFIG_KSM is not set
++CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
++CONFIG_LEDS=y
+ CONFIG_ALIGNMENT_TRAP=y
++# CONFIG_UACCESS_WITH_MEMCPY is not set
++CONFIG_CPU_V7_SYSFS=y
+
+ #
+ # Boot options
+ #
+ CONFIG_ZBOOT_ROM_TEXT=0x0
+ CONFIG_ZBOOT_ROM_BSS=0x0
+-CONFIG_CMDLINE="root=/dev/nfs nfsroot=192.168.0.1:/home/user/buildroot ip=192.168.0.2:192.168.0.1:192.168.0.1:255.255.255.0:tgt:eth0:off rw console=ttyS2,115200n8"
++CONFIG_CMDLINE=" debug "
+ # CONFIG_XIP_KERNEL is not set
+-# CONFIG_KEXEC is not set
++CONFIG_KEXEC=y
++CONFIG_ATAGS_PROC=y
+
+ #
+ # CPU Power Management
+ #
+-# CONFIG_CPU_FREQ is not set
++CONFIG_CPU_FREQ=y
++CONFIG_CPU_FREQ_TABLE=y
++CONFIG_CPU_FREQ_DEBUG=y
++CONFIG_CPU_FREQ_STAT=y
++CONFIG_CPU_FREQ_STAT_DETAILS=y
++CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
++# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
++# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
++# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
++# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
++CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
++CONFIG_CPU_FREQ_GOV_POWERSAVE=y
++CONFIG_CPU_FREQ_GOV_USERSPACE=y
++CONFIG_CPU_FREQ_GOV_ONDEMAND=y
++CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
+ # CONFIG_CPU_IDLE is not set
+
+ #
+@@ -302,29 +400,30 @@ CONFIG_CMDLINE="root=/dev/nfs nfsroot=192.168.0.1:/home/user/buildroot ip=192.16
+ #
+ # At least one emulation must be selected
+ #
+-CONFIG_FPE_NWFPE=y
+-# CONFIG_FPE_NWFPE_XP is not set
+-# CONFIG_FPE_FASTFPE is not set
+ CONFIG_VFP=y
+ CONFIG_VFPv3=y
+-# CONFIG_NEON is not set
++CONFIG_NEON=y
+
+ #
+ # Userspace binary formats
+ #
+ CONFIG_BINFMT_ELF=y
+-# CONFIG_BINFMT_AOUT is not set
++CONFIG_HAVE_AOUT=y
++CONFIG_BINFMT_AOUT=m
+ CONFIG_BINFMT_MISC=y
+
+ #
+ # Power management options
+ #
+ CONFIG_PM=y
+-# CONFIG_PM_DEBUG is not set
++CONFIG_PM_DEBUG=y
++# CONFIG_PM_VERBOSE is not set
++CONFIG_CAN_PM_TRACE=y
+ CONFIG_PM_SLEEP=y
+ CONFIG_SUSPEND=y
+ CONFIG_SUSPEND_FREEZER=y
+ # CONFIG_APM_EMULATION is not set
++CONFIG_PM_RUNTIME=y
+ CONFIG_ARCH_SUSPEND_POSSIBLE=y
+ CONFIG_NET=y
+
+@@ -332,13 +431,14 @@ CONFIG_NET=y
+ # Networking options
+ #
+ CONFIG_PACKET=y
+-# CONFIG_PACKET_MMAP is not set
++CONFIG_PACKET_MMAP=y
+ CONFIG_UNIX=y
+ CONFIG_XFRM=y
+ # CONFIG_XFRM_USER is not set
+ # CONFIG_XFRM_SUB_POLICY is not set
+ # CONFIG_XFRM_MIGRATE is not set
+ # CONFIG_XFRM_STATISTICS is not set
++CONFIG_XFRM_IPCOMP=m
+ CONFIG_NET_KEY=y
+ # CONFIG_NET_KEY_MIGRATE is not set
+ CONFIG_INET=y
+@@ -349,63 +449,462 @@ CONFIG_IP_PNP=y
+ CONFIG_IP_PNP_DHCP=y
+ CONFIG_IP_PNP_BOOTP=y
+ CONFIG_IP_PNP_RARP=y
+-# CONFIG_NET_IPIP is not set
+-# CONFIG_NET_IPGRE is not set
++CONFIG_NET_IPIP=m
++CONFIG_NET_IPGRE=m
+ # CONFIG_ARPD is not set
+ # CONFIG_SYN_COOKIES is not set
+-# CONFIG_INET_AH is not set
+-# CONFIG_INET_ESP is not set
+-# CONFIG_INET_IPCOMP is not set
+-# CONFIG_INET_XFRM_TUNNEL is not set
+-# CONFIG_INET_TUNNEL is not set
++CONFIG_INET_AH=m
++CONFIG_INET_ESP=m
++CONFIG_INET_IPCOMP=m
++CONFIG_INET_XFRM_TUNNEL=m
++CONFIG_INET_TUNNEL=m
+ CONFIG_INET_XFRM_MODE_TRANSPORT=y
+ CONFIG_INET_XFRM_MODE_TUNNEL=y
+ CONFIG_INET_XFRM_MODE_BEET=y
+-# CONFIG_INET_LRO is not set
+-CONFIG_INET_DIAG=y
+-CONFIG_INET_TCP_DIAG=y
+-# CONFIG_TCP_CONG_ADVANCED is not set
++CONFIG_INET_LRO=y
++CONFIG_INET_DIAG=m
++CONFIG_INET_TCP_DIAG=m
++CONFIG_TCP_CONG_ADVANCED=y
++CONFIG_TCP_CONG_BIC=m
+ CONFIG_TCP_CONG_CUBIC=y
++CONFIG_TCP_CONG_WESTWOOD=m
++CONFIG_TCP_CONG_HTCP=m
++CONFIG_TCP_CONG_HSTCP=m
++CONFIG_TCP_CONG_HYBLA=m
++CONFIG_TCP_CONG_VEGAS=m
++CONFIG_TCP_CONG_SCALABLE=m
++CONFIG_TCP_CONG_LP=m
++CONFIG_TCP_CONG_VENO=m
++CONFIG_TCP_CONG_YEAH=m
++CONFIG_TCP_CONG_ILLINOIS=m
++# CONFIG_DEFAULT_BIC is not set
++CONFIG_DEFAULT_CUBIC=y
++# CONFIG_DEFAULT_HTCP is not set
++# CONFIG_DEFAULT_VEGAS is not set
++# CONFIG_DEFAULT_WESTWOOD is not set
++# CONFIG_DEFAULT_RENO is not set
+ CONFIG_DEFAULT_TCP_CONG="cubic"
+ # CONFIG_TCP_MD5SIG is not set
+-# CONFIG_IPV6 is not set
++CONFIG_IPV6=m
++# CONFIG_IPV6_PRIVACY is not set
++# CONFIG_IPV6_ROUTER_PREF is not set
++# CONFIG_IPV6_OPTIMISTIC_DAD is not set
++CONFIG_INET6_AH=m
++CONFIG_INET6_ESP=m
++CONFIG_INET6_IPCOMP=m
++CONFIG_IPV6_MIP6=m
++CONFIG_INET6_XFRM_TUNNEL=m
++CONFIG_INET6_TUNNEL=m
++CONFIG_INET6_XFRM_MODE_TRANSPORT=m
++CONFIG_INET6_XFRM_MODE_TUNNEL=m
++CONFIG_INET6_XFRM_MODE_BEET=m
++CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
++CONFIG_IPV6_SIT=m
++# CONFIG_IPV6_SIT_6RD is not set
++CONFIG_IPV6_NDISC_NODETYPE=y
++CONFIG_IPV6_TUNNEL=m
++CONFIG_IPV6_MULTIPLE_TABLES=y
++CONFIG_IPV6_SUBTREES=y
++CONFIG_IPV6_MROUTE=y
++# CONFIG_IPV6_PIMSM_V2 is not set
+ # CONFIG_NETWORK_SECMARK is not set
+-# CONFIG_NETFILTER is not set
+-# CONFIG_IP_DCCP is not set
+-# CONFIG_IP_SCTP is not set
+-# CONFIG_TIPC is not set
+-# CONFIG_ATM is not set
+-# CONFIG_BRIDGE is not set
+-# CONFIG_VLAN_8021Q is not set
++CONFIG_NETFILTER=y
++# CONFIG_NETFILTER_DEBUG is not set
++CONFIG_NETFILTER_ADVANCED=y
++CONFIG_BRIDGE_NETFILTER=y
++
++#
++# Core Netfilter Configuration
++#
++CONFIG_NETFILTER_NETLINK=m
++CONFIG_NETFILTER_NETLINK_QUEUE=m
++CONFIG_NETFILTER_NETLINK_LOG=m
++CONFIG_NF_CONNTRACK=m
++CONFIG_NF_CT_ACCT=y
++CONFIG_NF_CONNTRACK_MARK=y
++CONFIG_NF_CONNTRACK_EVENTS=y
++CONFIG_NF_CT_PROTO_DCCP=m
++CONFIG_NF_CT_PROTO_GRE=m
++CONFIG_NF_CT_PROTO_SCTP=m
++CONFIG_NF_CT_PROTO_UDPLITE=m
++CONFIG_NF_CONNTRACK_AMANDA=m
++CONFIG_NF_CONNTRACK_FTP=m
++CONFIG_NF_CONNTRACK_H323=m
++CONFIG_NF_CONNTRACK_IRC=m
++CONFIG_NF_CONNTRACK_NETBIOS_NS=m
++CONFIG_NF_CONNTRACK_PPTP=m
++CONFIG_NF_CONNTRACK_SANE=m
++CONFIG_NF_CONNTRACK_SIP=m
++CONFIG_NF_CONNTRACK_TFTP=m
++CONFIG_NF_CT_NETLINK=m
++# CONFIG_NETFILTER_TPROXY is not set
++CONFIG_NETFILTER_XTABLES=m
++CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
++CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
++# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
++CONFIG_NETFILTER_XT_TARGET_HL=m
++# CONFIG_NETFILTER_XT_TARGET_LED is not set
++CONFIG_NETFILTER_XT_TARGET_MARK=m
++CONFIG_NETFILTER_XT_TARGET_NFLOG=m
++CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
++# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set
++CONFIG_NETFILTER_XT_TARGET_RATEEST=m
++# CONFIG_NETFILTER_XT_TARGET_TRACE is not set
++CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
++# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set
++# CONFIG_NETFILTER_XT_MATCH_CLUSTER is not set
++CONFIG_NETFILTER_XT_MATCH_COMMENT=m
++CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
++CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
++CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
++CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
++CONFIG_NETFILTER_XT_MATCH_DCCP=m
++CONFIG_NETFILTER_XT_MATCH_DSCP=m
++CONFIG_NETFILTER_XT_MATCH_ESP=m
++CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
++CONFIG_NETFILTER_XT_MATCH_HELPER=m
++CONFIG_NETFILTER_XT_MATCH_HL=m
++CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
++CONFIG_NETFILTER_XT_MATCH_LENGTH=m
++CONFIG_NETFILTER_XT_MATCH_LIMIT=m
++CONFIG_NETFILTER_XT_MATCH_MAC=m
++CONFIG_NETFILTER_XT_MATCH_MARK=m
++CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
++CONFIG_NETFILTER_XT_MATCH_OWNER=m
++CONFIG_NETFILTER_XT_MATCH_POLICY=m
++# CONFIG_NETFILTER_XT_MATCH_PHYSDEV is not set
++CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
++CONFIG_NETFILTER_XT_MATCH_QUOTA=m
++CONFIG_NETFILTER_XT_MATCH_RATEEST=m
++CONFIG_NETFILTER_XT_MATCH_REALM=m
++CONFIG_NETFILTER_XT_MATCH_RECENT=m
++# CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT is not set
++CONFIG_NETFILTER_XT_MATCH_SCTP=m
++CONFIG_NETFILTER_XT_MATCH_STATE=m
++CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
++CONFIG_NETFILTER_XT_MATCH_STRING=m
++CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
++CONFIG_NETFILTER_XT_MATCH_TIME=m
++CONFIG_NETFILTER_XT_MATCH_U32=m
++# CONFIG_NETFILTER_XT_MATCH_OSF is not set
++CONFIG_IP_VS=m
++CONFIG_IP_VS_IPV6=y
++CONFIG_IP_VS_DEBUG=y
++CONFIG_IP_VS_TAB_BITS=12
++
++#
++# IPVS transport protocol load balancing support
++#
++CONFIG_IP_VS_PROTO_TCP=y
++CONFIG_IP_VS_PROTO_UDP=y
++CONFIG_IP_VS_PROTO_AH_ESP=y
++CONFIG_IP_VS_PROTO_ESP=y
++CONFIG_IP_VS_PROTO_AH=y
++
++#
++# IPVS scheduler
++#
++CONFIG_IP_VS_RR=m
++CONFIG_IP_VS_WRR=m
++CONFIG_IP_VS_LC=m
++CONFIG_IP_VS_WLC=m
++CONFIG_IP_VS_LBLC=m
++CONFIG_IP_VS_LBLCR=m
++CONFIG_IP_VS_DH=m
++CONFIG_IP_VS_SH=m
++CONFIG_IP_VS_SED=m
++CONFIG_IP_VS_NQ=m
++
++#
++# IPVS application helper
++#
++CONFIG_IP_VS_FTP=m
++
++#
++# IP: Netfilter Configuration
++#
++CONFIG_NF_DEFRAG_IPV4=m
++CONFIG_NF_CONNTRACK_IPV4=m
++CONFIG_NF_CONNTRACK_PROC_COMPAT=y
++CONFIG_IP_NF_QUEUE=m
++CONFIG_IP_NF_IPTABLES=m
++CONFIG_IP_NF_MATCH_ADDRTYPE=m
++CONFIG_IP_NF_MATCH_AH=m
++CONFIG_IP_NF_MATCH_ECN=m
++CONFIG_IP_NF_MATCH_TTL=m
++CONFIG_IP_NF_FILTER=m
++CONFIG_IP_NF_TARGET_REJECT=m
++CONFIG_IP_NF_TARGET_LOG=m
++CONFIG_IP_NF_TARGET_ULOG=m
++CONFIG_NF_NAT=m
++CONFIG_NF_NAT_NEEDED=y
++CONFIG_IP_NF_TARGET_MASQUERADE=m
++CONFIG_IP_NF_TARGET_NETMAP=m
++CONFIG_IP_NF_TARGET_REDIRECT=m
++CONFIG_NF_NAT_SNMP_BASIC=m
++CONFIG_NF_NAT_PROTO_DCCP=m
++CONFIG_NF_NAT_PROTO_GRE=m
++CONFIG_NF_NAT_PROTO_UDPLITE=m
++CONFIG_NF_NAT_PROTO_SCTP=m
++CONFIG_NF_NAT_FTP=m
++CONFIG_NF_NAT_IRC=m
++CONFIG_NF_NAT_TFTP=m
++CONFIG_NF_NAT_AMANDA=m
++CONFIG_NF_NAT_PPTP=m
++CONFIG_NF_NAT_H323=m
++CONFIG_NF_NAT_SIP=m
++CONFIG_IP_NF_MANGLE=m
++CONFIG_IP_NF_TARGET_CLUSTERIP=m
++CONFIG_IP_NF_TARGET_ECN=m
++CONFIG_IP_NF_TARGET_TTL=m
++CONFIG_IP_NF_RAW=m
++CONFIG_IP_NF_ARPTABLES=m
++CONFIG_IP_NF_ARPFILTER=m
++CONFIG_IP_NF_ARP_MANGLE=m
++
++#
++# IPv6: Netfilter Configuration
++#
++CONFIG_NF_CONNTRACK_IPV6=m
++CONFIG_IP6_NF_QUEUE=m
++CONFIG_IP6_NF_IPTABLES=m
++CONFIG_IP6_NF_MATCH_AH=m
++CONFIG_IP6_NF_MATCH_EUI64=m
++CONFIG_IP6_NF_MATCH_FRAG=m
++CONFIG_IP6_NF_MATCH_OPTS=m
++CONFIG_IP6_NF_MATCH_HL=m
++CONFIG_IP6_NF_MATCH_IPV6HEADER=m
++CONFIG_IP6_NF_MATCH_MH=m
++CONFIG_IP6_NF_MATCH_RT=m
++CONFIG_IP6_NF_TARGET_HL=m
++CONFIG_IP6_NF_TARGET_LOG=m
++CONFIG_IP6_NF_FILTER=m
++CONFIG_IP6_NF_TARGET_REJECT=m
++CONFIG_IP6_NF_MANGLE=m
++CONFIG_IP6_NF_RAW=m
++# CONFIG_BRIDGE_NF_EBTABLES is not set
++CONFIG_IP_DCCP=m
++CONFIG_INET_DCCP_DIAG=m
++
++#
++# DCCP CCIDs Configuration (EXPERIMENTAL)
++#
++# CONFIG_IP_DCCP_CCID2_DEBUG is not set
++CONFIG_IP_DCCP_CCID3=y
++# CONFIG_IP_DCCP_CCID3_DEBUG is not set
++CONFIG_IP_DCCP_CCID3_RTO=100
++CONFIG_IP_DCCP_TFRC_LIB=y
++
++#
++# DCCP Kernel Hacking
++#
++# CONFIG_IP_DCCP_DEBUG is not set
++CONFIG_IP_SCTP=m
++# CONFIG_SCTP_DBG_MSG is not set
++# CONFIG_SCTP_DBG_OBJCNT is not set
++# CONFIG_SCTP_HMAC_NONE is not set
++# CONFIG_SCTP_HMAC_SHA1 is not set
++CONFIG_SCTP_HMAC_MD5=y
++# CONFIG_RDS is not set
++CONFIG_TIPC=m
++# CONFIG_TIPC_ADVANCED is not set
++# CONFIG_TIPC_DEBUG is not set
++CONFIG_ATM=m
++CONFIG_ATM_CLIP=m
++# CONFIG_ATM_CLIP_NO_ICMP is not set
++CONFIG_ATM_LANE=m
++CONFIG_ATM_MPOA=m
++CONFIG_ATM_BR2684=m
++# CONFIG_ATM_BR2684_IPFILTER is not set
++CONFIG_STP=m
++CONFIG_GARP=m
++CONFIG_BRIDGE=m
++# CONFIG_NET_DSA is not set
++CONFIG_VLAN_8021Q=m
++CONFIG_VLAN_8021Q_GVRP=y
+ # CONFIG_DECNET is not set
++CONFIG_LLC=m
+ # CONFIG_LLC2 is not set
+ # CONFIG_IPX is not set
+ # CONFIG_ATALK is not set
+ # CONFIG_X25 is not set
+ # CONFIG_LAPB is not set
+ # CONFIG_ECONET is not set
+-# CONFIG_WAN_ROUTER is not set
+-# CONFIG_NET_SCHED is not set
++CONFIG_WAN_ROUTER=m
++# CONFIG_PHONET is not set
++# CONFIG_IEEE802154 is not set
++CONFIG_NET_SCHED=y
++
++#
++# Queueing/Scheduling
++#
++CONFIG_NET_SCH_CBQ=m
++CONFIG_NET_SCH_HTB=m
++CONFIG_NET_SCH_HFSC=m
++CONFIG_NET_SCH_ATM=m
++CONFIG_NET_SCH_PRIO=m
++CONFIG_NET_SCH_MULTIQ=m
++CONFIG_NET_SCH_RED=m
++CONFIG_NET_SCH_SFQ=m
++CONFIG_NET_SCH_TEQL=m
++CONFIG_NET_SCH_TBF=m
++CONFIG_NET_SCH_GRED=m
++CONFIG_NET_SCH_DSMARK=m
++CONFIG_NET_SCH_NETEM=m
++CONFIG_NET_SCH_DRR=m
++
++#
++# Classification
++#
++CONFIG_NET_CLS=y
++CONFIG_NET_CLS_BASIC=m
++CONFIG_NET_CLS_TCINDEX=m
++CONFIG_NET_CLS_ROUTE4=m
++CONFIG_NET_CLS_ROUTE=y
++CONFIG_NET_CLS_FW=m
++CONFIG_NET_CLS_U32=m
++CONFIG_CLS_U32_PERF=y
++CONFIG_CLS_U32_MARK=y
++CONFIG_NET_CLS_RSVP=m
++CONFIG_NET_CLS_RSVP6=m
++CONFIG_NET_CLS_FLOW=m
++# CONFIG_NET_EMATCH is not set
++# CONFIG_NET_CLS_ACT is not set
++CONFIG_NET_CLS_IND=y
++CONFIG_NET_SCH_FIFO=y
++# CONFIG_DCB is not set
+
+ #
+ # Network testing
+ #
+ # CONFIG_NET_PKTGEN is not set
++# CONFIG_NET_DROP_MONITOR is not set
+ # CONFIG_HAMRADIO is not set
+-# CONFIG_CAN is not set
+-# CONFIG_IRDA is not set
+-# CONFIG_BT is not set
+-# CONFIG_AF_RXRPC is not set
+-
+-#
+-# Wireless
+-#
+-# CONFIG_CFG80211 is not set
+-# CONFIG_WIRELESS_EXT is not set
+-# CONFIG_MAC80211 is not set
+-# CONFIG_IEEE80211 is not set
+-# CONFIG_RFKILL is not set
+-# CONFIG_NET_9P is not set
++CONFIG_CAN=m
++CONFIG_CAN_RAW=m
++CONFIG_CAN_BCM=m
++
++#
++# CAN Device Drivers
++#
++CONFIG_CAN_VCAN=m
++# CONFIG_CAN_DEV is not set
++# CONFIG_CAN_DEBUG_DEVICES is not set
++CONFIG_IRDA=m
++
++#
++# IrDA protocols
++#
++CONFIG_IRLAN=m
++CONFIG_IRNET=m
++CONFIG_IRCOMM=m
++CONFIG_IRDA_ULTRA=y
++
++#
++# IrDA options
++#
++CONFIG_IRDA_CACHE_LAST_LSAP=y
++CONFIG_IRDA_FAST_RR=y
++CONFIG_IRDA_DEBUG=y
++
++#
++# Infrared-port device drivers
++#
++
++#
++# SIR device drivers
++#
++CONFIG_IRTTY_SIR=m
++
++#
++# Dongle support
++#
++CONFIG_DONGLE=y
++CONFIG_ESI_DONGLE=m
++CONFIG_ACTISYS_DONGLE=m
++CONFIG_TEKRAM_DONGLE=m
++CONFIG_TOIM3232_DONGLE=m
++CONFIG_LITELINK_DONGLE=m
++CONFIG_MA600_DONGLE=m
++CONFIG_GIRBIL_DONGLE=m
++CONFIG_MCP2120_DONGLE=m
++CONFIG_OLD_BELKIN_DONGLE=m
++# CONFIG_ACT200L_DONGLE is not set
++CONFIG_KINGSUN_DONGLE=m
++CONFIG_KSDAZZLE_DONGLE=m
++CONFIG_KS959_DONGLE=m
++
++#
++# FIR device drivers
++#
++CONFIG_USB_IRDA=m
++CONFIG_SIGMATEL_FIR=m
++CONFIG_MCS_FIR=m
++CONFIG_BT=m
++CONFIG_BT_L2CAP=m
++CONFIG_BT_SCO=m
++CONFIG_BT_RFCOMM=m
++CONFIG_BT_RFCOMM_TTY=y
++CONFIG_BT_BNEP=m
++CONFIG_BT_BNEP_MC_FILTER=y
++CONFIG_BT_BNEP_PROTO_FILTER=y
++CONFIG_BT_HIDP=m
++
++#
++# Bluetooth device drivers
++#
++CONFIG_BT_HCIBTUSB=m
++CONFIG_BT_HCIBTSDIO=m
++CONFIG_BT_HCIUART=m
++CONFIG_BT_HCIUART_H4=y
++CONFIG_BT_HCIUART_BCSP=y
++CONFIG_BT_HCIUART_LL=y
++CONFIG_BT_HCIBCM203X=m
++CONFIG_BT_HCIBPA10X=m
++CONFIG_BT_HCIBFUSB=m
++# CONFIG_BT_HCIVHCI is not set
++# CONFIG_BT_MRVL is not set
++CONFIG_AF_RXRPC=m
++# CONFIG_AF_RXRPC_DEBUG is not set
++# CONFIG_RXKAD is not set
++CONFIG_FIB_RULES=y
++CONFIG_WIRELESS=y
++CONFIG_WIRELESS_EXT=y
++CONFIG_WEXT_CORE=y
++CONFIG_WEXT_PROC=y
++CONFIG_WEXT_SPY=y
++CONFIG_WEXT_PRIV=y
++CONFIG_CFG80211=m
++# CONFIG_NL80211_TESTMODE is not set
++# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
++# CONFIG_CFG80211_REG_DEBUG is not set
++CONFIG_CFG80211_DEFAULT_PS=y
++# CONFIG_CFG80211_DEBUGFS is not set
++CONFIG_WIRELESS_OLD_REGULATORY=y
++CONFIG_CFG80211_WEXT=y
++CONFIG_WIRELESS_EXT_SYSFS=y
++CONFIG_LIB80211=y
++CONFIG_LIB80211_CRYPT_WEP=m
++CONFIG_LIB80211_CRYPT_CCMP=m
++CONFIG_LIB80211_CRYPT_TKIP=m
++# CONFIG_LIB80211_DEBUG is not set
++CONFIG_MAC80211=m
++CONFIG_MAC80211_RC_PID=y
++# CONFIG_MAC80211_RC_MINSTREL is not set
++CONFIG_MAC80211_RC_DEFAULT_PID=y
++# CONFIG_MAC80211_RC_DEFAULT_MINSTREL is not set
++CONFIG_MAC80211_RC_DEFAULT="pid"
++# CONFIG_MAC80211_MESH is not set
++CONFIG_MAC80211_LEDS=y
++# CONFIG_MAC80211_DEBUGFS is not set
++# CONFIG_MAC80211_DEBUG_MENU is not set
++CONFIG_WIMAX=m
++CONFIG_WIMAX_DEBUG_LEVEL=8
++CONFIG_RFKILL=m
++CONFIG_RFKILL_LEDS=y
++CONFIG_RFKILL_INPUT=y
++CONFIG_NET_9P=m
++# CONFIG_NET_9P_DEBUG is not set
+
+ #
+ # Device Drivers
+@@ -414,17 +913,22 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
+ #
+ # Generic Driver Options
+ #
+-CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
++CONFIG_UEVENT_HELPER_PATH=""
++CONFIG_DEVTMPFS=y
++CONFIG_DEVTMPFS_MOUNT=y
+ CONFIG_STANDALONE=y
+ CONFIG_PREVENT_FIRMWARE_BUILD=y
+-# CONFIG_FW_LOADER is not set
++CONFIG_FW_LOADER=y
++CONFIG_FIRMWARE_IN_KERNEL=y
++CONFIG_EXTRA_FIRMWARE=""
+ # CONFIG_DEBUG_DRIVER is not set
+ # CONFIG_DEBUG_DEVRES is not set
+ # CONFIG_SYS_HYPERVISOR is not set
+ # CONFIG_CONNECTOR is not set
+ CONFIG_MTD=y
+ # CONFIG_MTD_DEBUG is not set
+-# CONFIG_MTD_CONCAT is not set
++# CONFIG_MTD_TESTS is not set
++CONFIG_MTD_CONCAT=y
+ CONFIG_MTD_PARTITIONS=y
+ # CONFIG_MTD_REDBOOT_PARTS is not set
+ # CONFIG_MTD_CMDLINE_PARTS is not set
+@@ -472,6 +976,9 @@ CONFIG_MTD_CFI_I2=y
+ #
+ # Self-contained MTD device drivers
+ #
++# CONFIG_MTD_DATAFLASH is not set
++# CONFIG_MTD_M25P80 is not set
++# CONFIG_MTD_SST25L is not set
+ # CONFIG_MTD_SLRAM is not set
+ # CONFIG_MTD_PHRAM is not set
+ # CONFIG_MTD_MTDRAM is not set
+@@ -487,38 +994,82 @@ CONFIG_MTD_NAND=y
+ # CONFIG_MTD_NAND_VERIFY_WRITE is not set
+ # CONFIG_MTD_NAND_ECC_SMC is not set
+ # CONFIG_MTD_NAND_MUSEUM_IDS is not set
++# CONFIG_MTD_NAND_GPIO is not set
++CONFIG_MTD_NAND_OMAP2=y
++CONFIG_MTD_NAND_OMAP_PREFETCH=y
++# CONFIG_MTD_NAND_OMAP_PREFETCH_DMA is not set
+ CONFIG_MTD_NAND_IDS=y
+ # CONFIG_MTD_NAND_DISKONCHIP is not set
+ # CONFIG_MTD_NAND_NANDSIM is not set
+-# CONFIG_MTD_NAND_PLATFORM is not set
++CONFIG_MTD_NAND_PLATFORM=y
+ # CONFIG_MTD_ALAUDA is not set
+ # CONFIG_MTD_ONENAND is not set
+
+ #
++# LPDDR flash memory drivers
++#
++# CONFIG_MTD_LPDDR is not set
++
++#
+ # UBI - Unsorted block images
+ #
+-# CONFIG_MTD_UBI is not set
++CONFIG_MTD_UBI=y
++CONFIG_MTD_UBI_WL_THRESHOLD=4096
++CONFIG_MTD_UBI_BEB_RESERVE=1
++# CONFIG_MTD_UBI_GLUEBI is not set
++
++#
++# UBI debugging options
++#
++# CONFIG_MTD_UBI_DEBUG is not set
+ # CONFIG_PARPORT is not set
+ CONFIG_BLK_DEV=y
+ # CONFIG_BLK_DEV_COW_COMMON is not set
+ CONFIG_BLK_DEV_LOOP=y
+-# CONFIG_BLK_DEV_CRYPTOLOOP is not set
++CONFIG_BLK_DEV_CRYPTOLOOP=m
++
++#
++# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
++#
+ # CONFIG_BLK_DEV_NBD is not set
+ # CONFIG_BLK_DEV_UB is not set
+ CONFIG_BLK_DEV_RAM=y
+ CONFIG_BLK_DEV_RAM_COUNT=16
+ CONFIG_BLK_DEV_RAM_SIZE=16384
+ # CONFIG_BLK_DEV_XIP is not set
+-# CONFIG_CDROM_PKTCDVD is not set
++CONFIG_CDROM_PKTCDVD=m
++CONFIG_CDROM_PKTCDVD_BUFFERS=8
++# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+ # CONFIG_ATA_OVER_ETH is not set
+-# CONFIG_MISC_DEVICES is not set
++# CONFIG_MG_DISK is not set
++CONFIG_MISC_DEVICES=y
++# CONFIG_AD525X_DPOT is not set
++# CONFIG_ICS932S401 is not set
++# CONFIG_ENCLOSURE_SERVICES is not set
++CONFIG_CS5535_MFGPT_DEFAULT_IRQ=7
++# CONFIG_ISL29003 is not set
++# CONFIG_DS1682 is not set
++# CONFIG_TI_DAC7512 is not set
++# CONFIG_C2PORT is not set
++
++#
++# EEPROM support
++#
++# CONFIG_EEPROM_AT24 is not set
++# CONFIG_EEPROM_AT25 is not set
++# CONFIG_EEPROM_LEGACY is not set
++# CONFIG_EEPROM_MAX6875 is not set
++CONFIG_EEPROM_93CX6=y
++CONFIG_IWMC3200TOP=m
++# CONFIG_IWMC3200TOP_DEBUG is not set
++# CONFIG_IWMC3200TOP_DEBUGFS is not set
+ CONFIG_HAVE_IDE=y
+ # CONFIG_IDE is not set
+
+ #
+ # SCSI device support
+ #
+-# CONFIG_RAID_ATTRS is not set
++CONFIG_RAID_ATTRS=m
+ CONFIG_SCSI=y
+ CONFIG_SCSI_DMA=y
+ # CONFIG_SCSI_TGT is not set
+@@ -531,14 +1082,11 @@ CONFIG_SCSI_PROC_FS=y
+ CONFIG_BLK_DEV_SD=y
+ # CONFIG_CHR_DEV_ST is not set
+ # CONFIG_CHR_DEV_OSST is not set
+-# CONFIG_BLK_DEV_SR is not set
+-# CONFIG_CHR_DEV_SG is not set
+-# CONFIG_CHR_DEV_SCH is not set
+-
+-#
+-# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
+-#
+-# CONFIG_SCSI_MULTI_LUN is not set
++CONFIG_BLK_DEV_SR=y
++CONFIG_BLK_DEV_SR_VENDOR=y
++CONFIG_CHR_DEV_SG=y
++CONFIG_CHR_DEV_SCH=m
++CONFIG_SCSI_MULTI_LUN=y
+ # CONFIG_SCSI_CONSTANTS is not set
+ # CONFIG_SCSI_LOGGING is not set
+ # CONFIG_SCSI_SCAN_ASYNC is not set
+@@ -549,78 +1097,277 @@ CONFIG_SCSI_WAIT_SCAN=m
+ #
+ # CONFIG_SCSI_SPI_ATTRS is not set
+ # CONFIG_SCSI_FC_ATTRS is not set
+-# CONFIG_SCSI_ISCSI_ATTRS is not set
++CONFIG_SCSI_ISCSI_ATTRS=m
++# CONFIG_SCSI_SAS_ATTRS is not set
+ # CONFIG_SCSI_SAS_LIBSAS is not set
+ # CONFIG_SCSI_SRP_ATTRS is not set
+ CONFIG_SCSI_LOWLEVEL=y
+-# CONFIG_ISCSI_TCP is not set
++CONFIG_ISCSI_TCP=m
++# CONFIG_LIBFC is not set
++# CONFIG_LIBFCOE is not set
+ # CONFIG_SCSI_DEBUG is not set
+ # CONFIG_SCSI_DH is not set
++# CONFIG_SCSI_OSD_INITIATOR is not set
+ # CONFIG_ATA is not set
+-# CONFIG_MD is not set
++CONFIG_MD=y
++CONFIG_BLK_DEV_MD=m
++CONFIG_MD_LINEAR=m
++CONFIG_MD_RAID0=m
++CONFIG_MD_RAID1=m
++CONFIG_MD_RAID10=m
++CONFIG_MD_RAID456=m
++CONFIG_MD_RAID6_PQ=m
++# CONFIG_ASYNC_RAID6_TEST is not set
++CONFIG_MD_MULTIPATH=m
++CONFIG_MD_FAULTY=m
++CONFIG_BLK_DEV_DM=m
++# CONFIG_DM_DEBUG is not set
++CONFIG_DM_CRYPT=m
++CONFIG_DM_SNAPSHOT=m
++CONFIG_DM_MIRROR=m
++# CONFIG_DM_LOG_USERSPACE is not set
++CONFIG_DM_ZERO=m
++CONFIG_DM_MULTIPATH=m
++# CONFIG_DM_MULTIPATH_QL is not set
++# CONFIG_DM_MULTIPATH_ST is not set
++CONFIG_DM_DELAY=m
++# CONFIG_DM_UEVENT is not set
+ CONFIG_NETDEVICES=y
+-# CONFIG_DUMMY is not set
+-# CONFIG_BONDING is not set
+-# CONFIG_MACVLAN is not set
+-# CONFIG_EQUALIZER is not set
+-# CONFIG_TUN is not set
+-# CONFIG_VETH is not set
+-# CONFIG_NET_ETHERNET is not set
++CONFIG_DUMMY=m
++CONFIG_BONDING=m
++CONFIG_MACVLAN=m
++CONFIG_EQUALIZER=m
++CONFIG_TUN=m
++CONFIG_VETH=m
++CONFIG_PHYLIB=y
++
++#
++# MII PHY device drivers
++#
++# CONFIG_MARVELL_PHY is not set
++# CONFIG_DAVICOM_PHY is not set
++# CONFIG_QSEMI_PHY is not set
++# CONFIG_LXT_PHY is not set
++# CONFIG_CICADA_PHY is not set
++# CONFIG_VITESSE_PHY is not set
++# CONFIG_SMSC_PHY is not set
++# CONFIG_BROADCOM_PHY is not set
++# CONFIG_ICPLUS_PHY is not set
++# CONFIG_REALTEK_PHY is not set
++# CONFIG_NATIONAL_PHY is not set
++# CONFIG_STE10XP is not set
++# CONFIG_LSI_ET1011C_PHY is not set
++# CONFIG_FIXED_PHY is not set
++# CONFIG_MDIO_BITBANG is not set
++CONFIG_NET_ETHERNET=y
++CONFIG_MII=y
++# CONFIG_AX88796 is not set
++# CONFIG_SMC91X is not set
++# CONFIG_TI_DAVINCI_EMAC is not set
++# CONFIG_DM9000 is not set
++CONFIG_ENC28J60=y
++# CONFIG_ENC28J60_WRITEVERIFY is not set
++# CONFIG_ETHOC is not set
++CONFIG_SMC911X=y
++CONFIG_SMSC911X=y
++# CONFIG_DNET is not set
++# CONFIG_IBM_NEW_EMAC_ZMII is not set
++# CONFIG_IBM_NEW_EMAC_RGMII is not set
++# CONFIG_IBM_NEW_EMAC_TAH is not set
++# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
++# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
++# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
++# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
++# CONFIG_B44 is not set
++# CONFIG_KS8842 is not set
++CONFIG_KS8851=y
++# CONFIG_KS8851_MLL is not set
+ # CONFIG_NETDEV_1000 is not set
+ # CONFIG_NETDEV_10000 is not set
+-
+-#
+-# Wireless LAN
+-#
+-# CONFIG_WLAN_PRE80211 is not set
+-# CONFIG_WLAN_80211 is not set
+-# CONFIG_IWLWIFI_LEDS is not set
++CONFIG_WLAN=y
++# CONFIG_LIBERTAS_THINFIRM is not set
++CONFIG_AT76C50X_USB=m
++CONFIG_USB_ZD1201=m
++CONFIG_USB_NET_RNDIS_WLAN=m
++CONFIG_RTL8187=m
++CONFIG_RTL8187_LEDS=y
++# CONFIG_MAC80211_HWSIM is not set
++# CONFIG_ATH_COMMON is not set
++CONFIG_B43=m
++# CONFIG_B43_SDIO is not set
++CONFIG_B43_PHY_LP=y
++CONFIG_B43_LEDS=y
++CONFIG_B43_HWRNG=y
++# CONFIG_B43_DEBUG is not set
++# CONFIG_B43LEGACY is not set
++CONFIG_HOSTAP=m
++CONFIG_HOSTAP_FIRMWARE=y
++CONFIG_HOSTAP_FIRMWARE_NVRAM=y
++# CONFIG_IWM is not set
++CONFIG_LIBERTAS=m
++CONFIG_LIBERTAS_USB=m
++# CONFIG_LIBERTAS_SDIO is not set
++# CONFIG_LIBERTAS_SPI is not set
++# CONFIG_LIBERTAS_DEBUG is not set
++CONFIG_P54_COMMON=m
++CONFIG_P54_USB=m
++# CONFIG_P54_SPI is not set
++CONFIG_P54_LEDS=y
++CONFIG_RT2X00=m
++CONFIG_RT2500USB=m
++CONFIG_RT73USB=m
++# CONFIG_RT2800USB is not set
++CONFIG_RT2X00_LIB_USB=m
++CONFIG_RT2X00_LIB=m
++CONFIG_RT2X00_LIB_FIRMWARE=y
++CONFIG_RT2X00_LIB_CRYPTO=y
++CONFIG_RT2X00_LIB_LEDS=y
++# CONFIG_RT2X00_DEBUG is not set
++CONFIG_WL12XX=m
++CONFIG_WL1251=m
++CONFIG_WL1251_SPI=m
++CONFIG_WL1251_SDIO=m
++CONFIG_WL1271=m
++CONFIG_ZD1211RW=m
++# CONFIG_ZD1211RW_DEBUG is not set
++
++#
++# WiMAX Wireless Broadband devices
++#
++CONFIG_WIMAX_I2400M=m
++CONFIG_WIMAX_I2400M_USB=m
++CONFIG_WIMAX_I2400M_SDIO=m
++CONFIG_WIMAX_IWMC3200_SDIO=y
++CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8
+
+ #
+ # USB Network Adapters
+ #
+-# CONFIG_USB_CATC is not set
+-# CONFIG_USB_KAWETH is not set
+-# CONFIG_USB_PEGASUS is not set
+-# CONFIG_USB_RTL8150 is not set
+-# CONFIG_USB_USBNET is not set
++CONFIG_USB_CATC=y
++CONFIG_USB_KAWETH=y
++CONFIG_USB_PEGASUS=y
++CONFIG_USB_RTL8150=y
++CONFIG_USB_USBNET=y
++CONFIG_USB_NET_AX8817X=y
++CONFIG_USB_NET_CDCETHER=y
++CONFIG_USB_NET_CDC_EEM=y
++CONFIG_USB_NET_DM9601=y
++CONFIG_USB_NET_SMSC95XX=y
++CONFIG_USB_NET_GL620A=y
++CONFIG_USB_NET_NET1080=y
++CONFIG_USB_NET_PLUSB=y
++CONFIG_USB_NET_MCS7830=y
++CONFIG_USB_NET_RNDIS_HOST=y
++CONFIG_USB_NET_CDC_SUBSET=y
++CONFIG_USB_ALI_M5632=y
++CONFIG_USB_AN2720=y
++CONFIG_USB_BELKIN=y
++CONFIG_USB_ARMLINUX=y
++CONFIG_USB_EPSON2888=y
++CONFIG_USB_KC2190=y
++CONFIG_USB_NET_ZAURUS=y
++CONFIG_USB_HSO=m
++CONFIG_USB_NET_INT51X1=m
+ # CONFIG_WAN is not set
+-# CONFIG_PPP is not set
++CONFIG_ATM_DRIVERS=y
++# CONFIG_ATM_DUMMY is not set
++# CONFIG_ATM_TCP is not set
++CONFIG_PPP=m
++CONFIG_PPP_MULTILINK=y
++CONFIG_PPP_FILTER=y
++CONFIG_PPP_ASYNC=m
++CONFIG_PPP_SYNC_TTY=m
++CONFIG_PPP_DEFLATE=m
++CONFIG_PPP_BSDCOMP=m
++CONFIG_PPP_MPPE=m
++CONFIG_PPPOE=m
++# CONFIG_PPPOATM is not set
++CONFIG_PPPOL2TP=m
+ # CONFIG_SLIP is not set
+-# CONFIG_NETCONSOLE is not set
+-# CONFIG_NETPOLL is not set
+-# CONFIG_NET_POLL_CONTROLLER is not set
++CONFIG_SLHC=m
++CONFIG_NETCONSOLE=m
++CONFIG_NETCONSOLE_DYNAMIC=y
++CONFIG_NETPOLL=y
++CONFIG_NETPOLL_TRAP=y
++CONFIG_NET_POLL_CONTROLLER=y
+ # CONFIG_ISDN is not set
++# CONFIG_PHONE is not set
+
+ #
+ # Input device support
+ #
+ CONFIG_INPUT=y
+-# CONFIG_INPUT_FF_MEMLESS is not set
+-# CONFIG_INPUT_POLLDEV is not set
++CONFIG_INPUT_FF_MEMLESS=y
++CONFIG_INPUT_POLLDEV=y
++# CONFIG_INPUT_SPARSEKMAP is not set
+
+ #
+ # Userland interfaces
+ #
+-# CONFIG_INPUT_MOUSEDEV is not set
++CONFIG_INPUT_MOUSEDEV=y
++CONFIG_INPUT_MOUSEDEV_PSAUX=y
++CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
++CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+ # CONFIG_INPUT_JOYDEV is not set
+-# CONFIG_INPUT_EVDEV is not set
++CONFIG_INPUT_EVDEV=y
+ # CONFIG_INPUT_EVBUG is not set
+
+ #
+ # Input Device Drivers
+ #
+-# CONFIG_INPUT_KEYBOARD is not set
+-# CONFIG_INPUT_MOUSE is not set
++CONFIG_INPUT_KEYBOARD=y
++# CONFIG_KEYBOARD_ADP5588 is not set
++# CONFIG_KEYBOARD_ATKBD is not set
++# CONFIG_QT2160 is not set
++# CONFIG_KEYBOARD_LKKBD is not set
++CONFIG_KEYBOARD_GPIO=y
++# CONFIG_KEYBOARD_TCA6416 is not set
++# CONFIG_KEYBOARD_MATRIX is not set
++# CONFIG_KEYBOARD_LM8323 is not set
++# CONFIG_KEYBOARD_MAX7359 is not set
++# CONFIG_KEYBOARD_NEWTON is not set
++# CONFIG_KEYBOARD_OPENCORES is not set
++# CONFIG_KEYBOARD_STOWAWAY is not set
++# CONFIG_KEYBOARD_SUNKBD is not set
++# CONFIG_KEYBOARD_TWL4030 is not set
++# CONFIG_KEYBOARD_XTKBD is not set
++CONFIG_INPUT_MOUSE=y
++CONFIG_MOUSE_PS2=y
++CONFIG_MOUSE_PS2_ALPS=y
++CONFIG_MOUSE_PS2_LOGIPS2PP=y
++CONFIG_MOUSE_PS2_SYNAPTICS=y
++CONFIG_MOUSE_PS2_TRACKPOINT=y
++# CONFIG_MOUSE_PS2_ELANTECH is not set
++# CONFIG_MOUSE_PS2_SENTELIC is not set
++# CONFIG_MOUSE_PS2_TOUCHKIT is not set
++# CONFIG_MOUSE_SERIAL is not set
++# CONFIG_MOUSE_APPLETOUCH is not set
++# CONFIG_MOUSE_BCM5974 is not set
++# CONFIG_MOUSE_VSXXXAA is not set
++# CONFIG_MOUSE_GPIO is not set
++# CONFIG_MOUSE_SYNAPTICS_I2C is not set
+ # CONFIG_INPUT_JOYSTICK is not set
+ # CONFIG_INPUT_TABLET is not set
+ # CONFIG_INPUT_TOUCHSCREEN is not set
+-# CONFIG_INPUT_MISC is not set
++CONFIG_INPUT_MISC=y
++# CONFIG_INPUT_ATI_REMOTE is not set
++# CONFIG_INPUT_ATI_REMOTE2 is not set
++# CONFIG_INPUT_KEYSPAN_REMOTE is not set
++# CONFIG_INPUT_POWERMATE is not set
++# CONFIG_INPUT_YEALINK is not set
++# CONFIG_INPUT_CM109 is not set
++CONFIG_INPUT_TWL4030_PWRBUTTON=y
++CONFIG_INPUT_UINPUT=y
++# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set
+
+ #
+ # Hardware I/O ports
+ #
+-# CONFIG_SERIO is not set
++CONFIG_SERIO=y
++CONFIG_SERIO_SERPORT=y
++CONFIG_SERIO_LIBPS2=y
++# CONFIG_SERIO_RAW is not set
++# CONFIG_SERIO_ALTERA_PS2 is not set
+ # CONFIG_GAMEPORT is not set
+
+ #
+@@ -630,7 +1377,7 @@ CONFIG_VT=y
+ CONFIG_CONSOLE_TRANSLATIONS=y
+ CONFIG_VT_CONSOLE=y
+ CONFIG_HW_CONSOLE=y
+-# CONFIG_VT_HW_CONSOLE_BINDING is not set
++CONFIG_VT_HW_CONSOLE_BINDING=y
+ CONFIG_DEVKMEM=y
+ # CONFIG_SERIAL_NONSTANDARD is not set
+
+@@ -650,18 +1397,21 @@ CONFIG_SERIAL_8250_RSA=y
+ #
+ # Non-8250 serial port support
+ #
++# CONFIG_SERIAL_MAX3100 is not set
+ CONFIG_SERIAL_CORE=y
+ CONFIG_SERIAL_CORE_CONSOLE=y
+ CONFIG_UNIX98_PTYS=y
++# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
+ # CONFIG_LEGACY_PTYS is not set
+ # CONFIG_IPMI_HANDLER is not set
+ CONFIG_HW_RANDOM=y
+-# CONFIG_NVRAM is not set
++# CONFIG_HW_RANDOM_TIMERIOMEM is not set
+ # CONFIG_R3964 is not set
+ # CONFIG_RAW_DRIVER is not set
+ # CONFIG_TCG_TPM is not set
+ CONFIG_I2C=y
+ CONFIG_I2C_BOARDINFO=y
++CONFIG_I2C_COMPAT=y
+ CONFIG_I2C_CHARDEV=y
+ CONFIG_I2C_HELPER_AUTO=y
+
+@@ -672,6 +1422,7 @@ CONFIG_I2C_HELPER_AUTO=y
+ #
+ # I2C system bus drivers (mostly embedded / system-on-chip)
+ #
++# CONFIG_I2C_DESIGNWARE is not set
+ # CONFIG_I2C_GPIO is not set
+ # CONFIG_I2C_OCORES is not set
+ CONFIG_I2C_OMAP=y
+@@ -693,26 +1444,41 @@ CONFIG_I2C_OMAP=y
+ #
+ # Miscellaneous I2C Chip support
+ #
+-# CONFIG_DS1682 is not set
+-# CONFIG_EEPROM_AT24 is not set
+-# CONFIG_EEPROM_LEGACY is not set
+-# CONFIG_SENSORS_PCF8574 is not set
+-# CONFIG_PCF8575 is not set
+-# CONFIG_SENSORS_PCA9539 is not set
+-# CONFIG_SENSORS_PCF8591 is not set
+-# CONFIG_ISP1301_OMAP is not set
+-# CONFIG_TPS65010 is not set
+-# CONFIG_SENSORS_MAX6875 is not set
+ # CONFIG_SENSORS_TSL2550 is not set
+ # CONFIG_I2C_DEBUG_CORE is not set
+ # CONFIG_I2C_DEBUG_ALGO is not set
+ # CONFIG_I2C_DEBUG_BUS is not set
+ # CONFIG_I2C_DEBUG_CHIP is not set
+-# CONFIG_SPI is not set
++CONFIG_SPI=y
++# CONFIG_SPI_DEBUG is not set
++CONFIG_SPI_MASTER=y
++
++#
++# SPI Master Controller Drivers
++#
++# CONFIG_SPI_BITBANG is not set
++# CONFIG_SPI_GPIO is not set
++CONFIG_SPI_OMAP24XX=y
++# CONFIG_SPI_XILINX is not set
++
++#
++# SPI Protocol Masters
++#
++CONFIG_SPI_SPIDEV=y
++# CONFIG_SPI_TLE62X0 is not set
++
++#
++# PPS support
++#
++# CONFIG_PPS is not set
+ CONFIG_ARCH_REQUIRE_GPIOLIB=y
+ CONFIG_GPIOLIB=y
+ # CONFIG_DEBUG_GPIO is not set
+-# CONFIG_GPIO_SYSFS is not set
++CONFIG_GPIO_SYSFS=y
++
++#
++# Memory mapped GPIO expanders:
++#
+
+ #
+ # I2C GPIO expanders:
+@@ -729,49 +1495,469 @@ CONFIG_GPIO_TWL4030=y
+ #
+ # SPI GPIO expanders:
+ #
++# CONFIG_GPIO_MAX7301 is not set
++# CONFIG_GPIO_MCP23S08 is not set
++# CONFIG_GPIO_MC33880 is not set
++
++#
++# AC97 GPIO expanders:
++#
+ # CONFIG_W1 is not set
+-# CONFIG_POWER_SUPPLY is not set
+-# CONFIG_HWMON is not set
+-# CONFIG_THERMAL is not set
+-# CONFIG_THERMAL_HWMON is not set
+-# CONFIG_WATCHDOG is not set
++CONFIG_POWER_SUPPLY=m
++# CONFIG_POWER_SUPPLY_DEBUG is not set
++# CONFIG_PDA_POWER is not set
++# CONFIG_BATTERY_DS2760 is not set
++# CONFIG_BATTERY_DS2782 is not set
++# CONFIG_BATTERY_BQ27x00 is not set
++# CONFIG_BATTERY_MAX17040 is not set
++CONFIG_HWMON=y
++# CONFIG_HWMON_VID is not set
++# CONFIG_HWMON_DEBUG_CHIP is not set
++
++#
++# Native drivers
++#
++# CONFIG_SENSORS_AD7414 is not set
++# CONFIG_SENSORS_AD7418 is not set
++# CONFIG_SENSORS_ADCXX is not set
++# CONFIG_SENSORS_ADM1021 is not set
++# CONFIG_SENSORS_ADM1025 is not set
++# CONFIG_SENSORS_ADM1026 is not set
++# CONFIG_SENSORS_ADM1029 is not set
++# CONFIG_SENSORS_ADM1031 is not set
++# CONFIG_SENSORS_ADM9240 is not set
++# CONFIG_SENSORS_ADT7462 is not set
++# CONFIG_SENSORS_ADT7470 is not set
++# CONFIG_SENSORS_ADT7473 is not set
++# CONFIG_SENSORS_ADT7475 is not set
++# CONFIG_SENSORS_ATXP1 is not set
++# CONFIG_SENSORS_DS1621 is not set
++# CONFIG_SENSORS_F71805F is not set
++# CONFIG_SENSORS_F71882FG is not set
++# CONFIG_SENSORS_F75375S is not set
++# CONFIG_SENSORS_G760A is not set
++# CONFIG_SENSORS_GL518SM is not set
++# CONFIG_SENSORS_GL520SM is not set
++# CONFIG_SENSORS_IT87 is not set
++# CONFIG_SENSORS_LM63 is not set
++# CONFIG_SENSORS_LM70 is not set
++# CONFIG_SENSORS_LM73 is not set
++# CONFIG_SENSORS_LM75 is not set
++# CONFIG_SENSORS_LM77 is not set
++# CONFIG_SENSORS_LM78 is not set
++# CONFIG_SENSORS_LM80 is not set
++# CONFIG_SENSORS_LM83 is not set
++# CONFIG_SENSORS_LM85 is not set
++# CONFIG_SENSORS_LM87 is not set
++# CONFIG_SENSORS_LM90 is not set
++# CONFIG_SENSORS_LM92 is not set
++# CONFIG_SENSORS_LM93 is not set
++# CONFIG_SENSORS_LTC4215 is not set
++# CONFIG_SENSORS_LTC4245 is not set
++# CONFIG_SENSORS_LM95241 is not set
++# CONFIG_SENSORS_MAX1111 is not set
++# CONFIG_SENSORS_MAX1619 is not set
++# CONFIG_SENSORS_MAX6650 is not set
++# CONFIG_SENSORS_PC87360 is not set
++# CONFIG_SENSORS_PC87427 is not set
++# CONFIG_SENSORS_PCF8591 is not set
++# CONFIG_SENSORS_SHT15 is not set
++# CONFIG_SENSORS_DME1737 is not set
++# CONFIG_SENSORS_SMSC47M1 is not set
++# CONFIG_SENSORS_SMSC47M192 is not set
++# CONFIG_SENSORS_SMSC47B397 is not set
++# CONFIG_SENSORS_ADS7828 is not set
++# CONFIG_SENSORS_THMC50 is not set
++# CONFIG_SENSORS_TMP401 is not set
++# CONFIG_SENSORS_TMP421 is not set
++# CONFIG_SENSORS_VT1211 is not set
++# CONFIG_SENSORS_W83781D is not set
++# CONFIG_SENSORS_W83791D is not set
++# CONFIG_SENSORS_W83792D is not set
++# CONFIG_SENSORS_W83793 is not set
++# CONFIG_SENSORS_W83L785TS is not set
++# CONFIG_SENSORS_W83L786NG is not set
++# CONFIG_SENSORS_W83627HF is not set
++# CONFIG_SENSORS_W83627EHF is not set
++# CONFIG_SENSORS_LIS3_SPI is not set
++CONFIG_THERMAL=y
++CONFIG_THERMAL_HWMON=y
++CONFIG_WATCHDOG=y
++CONFIG_WATCHDOG_NOWAYOUT=y
++
++#
++# Watchdog Device Drivers
++#
++# CONFIG_SOFT_WATCHDOG is not set
++CONFIG_OMAP_WATCHDOG=y
++# CONFIG_TWL4030_WATCHDOG is not set
++
++#
++# USB-based Watchdog Cards
++#
++# CONFIG_USBPCWATCHDOG is not set
++CONFIG_SSB_POSSIBLE=y
+
+ #
+ # Sonics Silicon Backplane
+ #
+-CONFIG_SSB_POSSIBLE=y
+-# CONFIG_SSB is not set
++CONFIG_SSB=y
++CONFIG_SSB_SDIOHOST_POSSIBLE=y
++# CONFIG_SSB_SDIOHOST is not set
++# CONFIG_SSB_SILENT is not set
++# CONFIG_SSB_DEBUG is not set
+
+ #
+ # Multifunction device drivers
+ #
+-# CONFIG_MFD_CORE is not set
++CONFIG_MFD_CORE=y
+ # CONFIG_MFD_SM501 is not set
++# CONFIG_MFD_ASIC3 is not set
+ # CONFIG_HTC_EGPIO is not set
+ # CONFIG_HTC_PASIC3 is not set
++# CONFIG_TPS65010 is not set
+ CONFIG_TWL4030_CORE=y
+-# CONFIG_UCB1400_CORE is not set
++CONFIG_TWL4030_POWER=y
++CONFIG_TWL4030_CODEC=y
++# CONFIG_TWL4030_MADC is not set
+ # CONFIG_MFD_TMIO is not set
+ # CONFIG_MFD_T7L66XB is not set
+ # CONFIG_MFD_TC6387XB is not set
+ # CONFIG_MFD_TC6393XB is not set
+-
+-#
+-# Multimedia devices
+-#
++# CONFIG_PMIC_DA903X is not set
++# CONFIG_PMIC_ADP5520 is not set
++# CONFIG_MFD_WM8400 is not set
++# CONFIG_MFD_WM831X is not set
++# CONFIG_MFD_WM8350_I2C is not set
++# CONFIG_MFD_PCF50633 is not set
++# CONFIG_MFD_MC13783 is not set
++# CONFIG_AB3100_CORE is not set
++# CONFIG_EZX_PCAP is not set
++# CONFIG_MFD_88PM8607 is not set
++# CONFIG_AB4500_CORE is not set
++CONFIG_REGULATOR=y
++# CONFIG_REGULATOR_DEBUG is not set
++# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
++# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
++# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
++# CONFIG_REGULATOR_BQ24022 is not set
++# CONFIG_REGULATOR_MAX1586 is not set
++CONFIG_REGULATOR_TWL4030=y
++# CONFIG_REGULATOR_LP3971 is not set
++# CONFIG_REGULATOR_TPS65023 is not set
++# CONFIG_REGULATOR_TPS6507X is not set
++CONFIG_MEDIA_SUPPORT=y
+
+ #
+ # Multimedia core support
+ #
+-# CONFIG_VIDEO_DEV is not set
+-# CONFIG_DVB_CORE is not set
+-# CONFIG_VIDEO_MEDIA is not set
++CONFIG_VIDEO_DEV=y
++CONFIG_VIDEO_V4L2_COMMON=y
++CONFIG_VIDEO_ALLOW_V4L1=y
++CONFIG_VIDEO_V4L1_COMPAT=y
++CONFIG_DVB_CORE=m
++CONFIG_VIDEO_MEDIA=m
+
+ #
+ # Multimedia drivers
+ #
+-CONFIG_DAB=y
+-# CONFIG_USB_DABUSB is not set
++CONFIG_MEDIA_ATTACH=y
++CONFIG_MEDIA_TUNER=m
++CONFIG_MEDIA_TUNER_CUSTOMISE=y
++CONFIG_MEDIA_TUNER_SIMPLE=m
++CONFIG_MEDIA_TUNER_TDA8290=m
++CONFIG_MEDIA_TUNER_TDA827X=m
++CONFIG_MEDIA_TUNER_TDA18271=m
++CONFIG_MEDIA_TUNER_TDA9887=m
++CONFIG_MEDIA_TUNER_TEA5761=m
++CONFIG_MEDIA_TUNER_TEA5767=m
++CONFIG_MEDIA_TUNER_MT20XX=m
++CONFIG_MEDIA_TUNER_MT2060=m
++CONFIG_MEDIA_TUNER_MT2266=m
++CONFIG_MEDIA_TUNER_MT2131=m
++CONFIG_MEDIA_TUNER_QT1010=m
++CONFIG_MEDIA_TUNER_XC2028=m
++CONFIG_MEDIA_TUNER_XC5000=m
++CONFIG_MEDIA_TUNER_MXL5005S=m
++CONFIG_MEDIA_TUNER_MXL5007T=m
++CONFIG_MEDIA_TUNER_MC44S803=m
++CONFIG_MEDIA_TUNER_MAX2165=m
++CONFIG_VIDEO_V4L2=y
++CONFIG_VIDEO_V4L1=y
++CONFIG_VIDEOBUF_GEN=y
++CONFIG_VIDEOBUF_DMA_SG=y
++CONFIG_VIDEOBUF_VMALLOC=m
++CONFIG_VIDEOBUF_DMA_CONTIG=y
++CONFIG_VIDEOBUF_DVB=m
++CONFIG_VIDEO_IR=m
++CONFIG_VIDEO_TVEEPROM=m
++CONFIG_VIDEO_TUNER=m
++CONFIG_VIDEO_CAPTURE_DRIVERS=y
++# CONFIG_VIDEO_ADV_DEBUG is not set
++# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
++# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set
++CONFIG_VIDEO_IR_I2C=m
++
++#
++# Encoders/decoders and other helper chips
++#
++
++#
++# Audio decoders
++#
++# CONFIG_VIDEO_TVAUDIO is not set
++# CONFIG_VIDEO_TDA7432 is not set
++# CONFIG_VIDEO_TDA9840 is not set
++# CONFIG_VIDEO_TDA9875 is not set
++# CONFIG_VIDEO_TEA6415C is not set
++# CONFIG_VIDEO_TEA6420 is not set
++CONFIG_VIDEO_MSP3400=m
++# CONFIG_VIDEO_CS5345 is not set
++CONFIG_VIDEO_CS53L32A=m
++# CONFIG_VIDEO_M52790 is not set
++# CONFIG_VIDEO_TLV320AIC23B is not set
++CONFIG_VIDEO_WM8775=m
++# CONFIG_VIDEO_WM8739 is not set
++# CONFIG_VIDEO_VP27SMPX is not set
++
++#
++# RDS decoders
++#
++# CONFIG_VIDEO_SAA6588 is not set
++
++#
++# Video decoders
++#
++# CONFIG_VIDEO_ADV7180 is not set
++# CONFIG_VIDEO_BT819 is not set
++# CONFIG_VIDEO_BT856 is not set
++# CONFIG_VIDEO_BT866 is not set
++# CONFIG_VIDEO_KS0127 is not set
++# CONFIG_VIDEO_OV7670 is not set
++CONFIG_VIDEO_MT9V011=m
++# CONFIG_VIDEO_TCM825X is not set
++CONFIG_VIDEO_MT9P012=m
++# CONFIG_VIDEO_MT9T111 is not set
++# CONFIG_VIDEO_DW9710 is not set
++# CONFIG_VIDEO_OV3640 is not set
++# CONFIG_VIDEO_IMX046 is not set
++# CONFIG_VIDEO_LV8093 is not set
++# CONFIG_VIDEO_SAA7110 is not set
++CONFIG_VIDEO_SAA711X=m
++# CONFIG_VIDEO_SAA717X is not set
++# CONFIG_VIDEO_SAA7191 is not set
++# CONFIG_VIDEO_TVP514X is not set
++# CONFIG_VIDEO_TVP5150 is not set
++# CONFIG_VIDEO_VPX3220 is not set
++
++#
++# Video and audio decoders
++#
++CONFIG_VIDEO_CX25840=m
++
++#
++# MPEG video encoders
++#
++CONFIG_VIDEO_CX2341X=m
++
++#
++# Video encoders
++#
++# CONFIG_VIDEO_SAA7127 is not set
++# CONFIG_VIDEO_SAA7185 is not set
++# CONFIG_VIDEO_ADV7170 is not set
++# CONFIG_VIDEO_ADV7175 is not set
++# CONFIG_VIDEO_THS7303 is not set
++# CONFIG_VIDEO_ADV7343 is not set
++
++#
++# Video improvement chips
++#
++# CONFIG_VIDEO_UPD64031A is not set
++# CONFIG_VIDEO_UPD64083 is not set
++CONFIG_VIDEO_VIVI=m
++# CONFIG_VIDEO_CPIA is not set
++# CONFIG_VIDEO_CPIA2 is not set
++# CONFIG_VIDEO_SAA5246A is not set
++# CONFIG_VIDEO_SAA5249 is not set
++# CONFIG_VIDEO_AU0828 is not set
++CONFIG_TI_MEDIA=y
++CONFIG_VIDEO_VPSS_SYSTEM=y
++CONFIG_VIDEO_VPFE_CAPTURE=y
++# CONFIG_VIDEO_DM6446_CCDC is not set
++# CONFIG_VIDEO_DM355_CCDC is not set
++CONFIG_VIDEO_OMAP2_VOUT=y
++CONFIG_VIDEO_OMAP3=y
++CONFIG_VIDEO_OMAP3_ISP=y
++CONFIG_VIDEO_OMAP34XX_ISP_PREVIEWER=y
++CONFIG_VIDEO_OMAP34XX_ISP_RESIZER=y
++# CONFIG_SOC_CAMERA is not set
++CONFIG_V4L_USB_DRIVERS=y
++CONFIG_USB_VIDEO_CLASS=m
++CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
++CONFIG_USB_GSPCA=m
++CONFIG_USB_M5602=m
++CONFIG_USB_STV06XX=m
++# CONFIG_USB_GL860 is not set
++CONFIG_USB_GSPCA_CONEX=m
++CONFIG_USB_GSPCA_ETOMS=m
++CONFIG_USB_GSPCA_FINEPIX=m
++# CONFIG_USB_GSPCA_JEILINJ is not set
++CONFIG_USB_GSPCA_MARS=m
++# CONFIG_USB_GSPCA_MR97310A is not set
++CONFIG_USB_GSPCA_OV519=m
++CONFIG_USB_GSPCA_OV534=m
++CONFIG_USB_GSPCA_PAC207=m
++# CONFIG_USB_GSPCA_PAC7302 is not set
++CONFIG_USB_GSPCA_PAC7311=m
++# CONFIG_USB_GSPCA_SN9C20X is not set
++CONFIG_USB_GSPCA_SONIXB=m
++CONFIG_USB_GSPCA_SONIXJ=m
++CONFIG_USB_GSPCA_SPCA500=m
++CONFIG_USB_GSPCA_SPCA501=m
++CONFIG_USB_GSPCA_SPCA505=m
++CONFIG_USB_GSPCA_SPCA506=m
++CONFIG_USB_GSPCA_SPCA508=m
++CONFIG_USB_GSPCA_SPCA561=m
++# CONFIG_USB_GSPCA_SQ905 is not set
++# CONFIG_USB_GSPCA_SQ905C is not set
++CONFIG_USB_GSPCA_STK014=m
++# CONFIG_USB_GSPCA_STV0680 is not set
++CONFIG_USB_GSPCA_SUNPLUS=m
++CONFIG_USB_GSPCA_T613=m
++CONFIG_USB_GSPCA_TV8532=m
++CONFIG_USB_GSPCA_VC032X=m
++CONFIG_USB_GSPCA_ZC3XX=m
++CONFIG_VIDEO_PVRUSB2=m
++CONFIG_VIDEO_PVRUSB2_SYSFS=y
++CONFIG_VIDEO_PVRUSB2_DVB=y
++# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set
++CONFIG_VIDEO_HDPVR=m
++CONFIG_VIDEO_EM28XX=m
++CONFIG_VIDEO_EM28XX_ALSA=m
++CONFIG_VIDEO_EM28XX_DVB=m
++CONFIG_VIDEO_CX231XX=m
++# CONFIG_VIDEO_CX231XX_ALSA is not set
++CONFIG_VIDEO_CX231XX_DVB=m
++CONFIG_VIDEO_USBVISION=m
++CONFIG_VIDEO_USBVIDEO=m
++CONFIG_USB_VICAM=m
++CONFIG_USB_IBMCAM=m
++CONFIG_USB_KONICAWC=m
++CONFIG_USB_QUICKCAM_MESSENGER=m
++CONFIG_USB_ET61X251=m
++CONFIG_VIDEO_OVCAMCHIP=m
++CONFIG_USB_W9968CF=m
++CONFIG_USB_OV511=m
++CONFIG_USB_SE401=m
++CONFIG_USB_SN9C102=m
++CONFIG_USB_STV680=m
++CONFIG_USB_ZC0301=m
++CONFIG_USB_PWC=m
++# CONFIG_USB_PWC_DEBUG is not set
++CONFIG_USB_PWC_INPUT_EVDEV=y
++CONFIG_USB_ZR364XX=m
++CONFIG_USB_STKWEBCAM=m
++CONFIG_USB_S2255=m
++CONFIG_RADIO_ADAPTERS=y
++# CONFIG_I2C_SI4713 is not set
++# CONFIG_RADIO_SI4713 is not set
++# CONFIG_USB_DSBR is not set
++# CONFIG_RADIO_SI470X is not set
++# CONFIG_USB_MR800 is not set
++# CONFIG_RADIO_TEA5764 is not set
++# CONFIG_RADIO_TEF6862 is not set
++CONFIG_DVB_MAX_ADAPTERS=8
++CONFIG_DVB_DYNAMIC_MINORS=y
++CONFIG_DVB_CAPTURE_DRIVERS=y
++# CONFIG_TTPCI_EEPROM is not set
++
++#
++# Supported USB Adapters
++#
++CONFIG_DVB_USB=m
++# CONFIG_DVB_USB_DEBUG is not set
++CONFIG_DVB_USB_A800=m
++CONFIG_DVB_USB_DIBUSB_MB=m
++# CONFIG_DVB_USB_DIBUSB_MB_FAULTY is not set
++CONFIG_DVB_USB_DIBUSB_MC=m
++CONFIG_DVB_USB_DIB0700=m
++CONFIG_DVB_USB_UMT_010=m
++CONFIG_DVB_USB_CXUSB=m
++CONFIG_DVB_USB_M920X=m
++CONFIG_DVB_USB_GL861=m
++CONFIG_DVB_USB_AU6610=m
++CONFIG_DVB_USB_DIGITV=m
++CONFIG_DVB_USB_VP7045=m
++CONFIG_DVB_USB_VP702X=m
++CONFIG_DVB_USB_GP8PSK=m
++CONFIG_DVB_USB_NOVA_T_USB2=m
++CONFIG_DVB_USB_TTUSB2=m
++CONFIG_DVB_USB_DTT200U=m
++CONFIG_DVB_USB_OPERA1=m
++CONFIG_DVB_USB_AF9005=m
++CONFIG_DVB_USB_AF9005_REMOTE=m
++CONFIG_DVB_USB_DW2102=m
++CONFIG_DVB_USB_CINERGY_T2=m
++CONFIG_DVB_USB_ANYSEE=m
++CONFIG_DVB_USB_DTV5100=m
++CONFIG_DVB_USB_AF9015=m
++# CONFIG_DVB_USB_CE6230 is not set
++# CONFIG_DVB_USB_FRIIO is not set
++# CONFIG_DVB_USB_EC168 is not set
++# CONFIG_SMS_SIANO_MDTV is not set
++
++#
++# Supported FlexCopII (B2C2) Adapters
++#
++CONFIG_DVB_B2C2_FLEXCOP=m
++CONFIG_DVB_B2C2_FLEXCOP_USB=m
++# CONFIG_DVB_B2C2_FLEXCOP_DEBUG is not set
++
++#
++# Supported DVB Frontends
++#
++# CONFIG_DVB_FE_CUSTOMISE is not set
++CONFIG_DVB_CX24123=m
++CONFIG_DVB_MT312=m
++CONFIG_DVB_ZL10039=m
++CONFIG_DVB_S5H1420=m
++CONFIG_DVB_STV0288=m
++CONFIG_DVB_STB6000=m
++CONFIG_DVB_STV0299=m
++CONFIG_DVB_TDA10086=m
++CONFIG_DVB_TUNER_ITD1000=m
++CONFIG_DVB_TUNER_CX24113=m
++CONFIG_DVB_TDA826X=m
++CONFIG_DVB_CX24116=m
++CONFIG_DVB_SI21XX=m
++CONFIG_DVB_CX22702=m
++CONFIG_DVB_TDA1004X=m
++CONFIG_DVB_NXT6000=m
++CONFIG_DVB_MT352=m
++CONFIG_DVB_ZL10353=m
++CONFIG_DVB_DIB3000MB=m
++CONFIG_DVB_DIB3000MC=m
++CONFIG_DVB_DIB7000M=m
++CONFIG_DVB_DIB7000P=m
++CONFIG_DVB_TDA10048=m
++CONFIG_DVB_AF9013=m
++CONFIG_DVB_TDA10021=m
++CONFIG_DVB_TDA10023=m
++CONFIG_DVB_STV0297=m
++CONFIG_DVB_NXT200X=m
++CONFIG_DVB_BCM3510=m
++CONFIG_DVB_LGDT330X=m
++CONFIG_DVB_LGDT3305=m
++CONFIG_DVB_S5H1409=m
++CONFIG_DVB_S5H1411=m
++CONFIG_DVB_DIB8000=m
++CONFIG_DVB_PLL=m
++CONFIG_DVB_TUNER_DIB0070=m
++CONFIG_DVB_LNBP21=m
++CONFIG_DVB_ISL6421=m
++CONFIG_DVB_LGS8GL5=m
++# CONFIG_DAB is not set
+
+ #
+ # Graphics support
+@@ -781,6 +1967,7 @@ CONFIG_DAB=y
+ CONFIG_FB=y
+ # CONFIG_FIRMWARE_EDID is not set
+ # CONFIG_FB_DDC is not set
++# CONFIG_FB_BOOT_VESA_SUPPORT is not set
+ CONFIG_FB_CFB_FILLRECT=y
+ CONFIG_FB_CFB_COPYAREA=y
+ CONFIG_FB_CFB_IMAGEBLIT=y
+@@ -793,24 +1980,57 @@ CONFIG_FB_CFB_IMAGEBLIT=y
+ # CONFIG_FB_SVGALIB is not set
+ # CONFIG_FB_MACMODES is not set
+ # CONFIG_FB_BACKLIGHT is not set
+-# CONFIG_FB_MODE_HELPERS is not set
++CONFIG_FB_MODE_HELPERS=y
+ # CONFIG_FB_TILEBLITTING is not set
+
+ #
+ # Frame buffer hardware drivers
+ #
+ # CONFIG_FB_S1D13XXX is not set
++# CONFIG_FB_TMIO is not set
+ # CONFIG_FB_VIRTUAL is not set
+-CONFIG_FB_OMAP=y
+-# CONFIG_FB_OMAP_LCDC_EXTERNAL is not set
++# CONFIG_FB_METRONOME is not set
++# CONFIG_FB_MB862XX is not set
++# CONFIG_FB_BROADSHEET is not set
+ # CONFIG_FB_OMAP_BOOTLOADER_INIT is not set
+-CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE=2
++CONFIG_OMAP2_VRAM=y
++CONFIG_OMAP2_VRFB=y
++CONFIG_OMAP2_DSS=y
++CONFIG_OMAP2_VRAM_SIZE=14
++CONFIG_OMAP2_DSS_DEBUG_SUPPORT=y
++# CONFIG_OMAP2_DSS_RFBI is not set
++CONFIG_OMAP2_DSS_VENC=y
++CONFIG_OMAP2_VENC_OUT_TYPE_SVIDEO=y
++# CONFIG_OMAP2_VENC_OUT_TYPE_COMPOSITE is not set
++# CONFIG_OMAP2_DSS_SDI is not set
++CONFIG_OMAP2_DSS_DSI=y
++CONFIG_OMAP2_DSS_USE_DSI_PLL=y
++# CONFIG_OMAP2_DSS_FAKE_VSYNC is not set
++CONFIG_OMAP2_DSS_MIN_FCK_PER_PCK=0
++CONFIG_FB_OMAP2=y
++CONFIG_FB_OMAP2_DEBUG_SUPPORT=y
++# CONFIG_FB_OMAP2_FORCE_AUTO_UPDATE is not set
++CONFIG_FB_OMAP2_NUM_FBS=3
++
++#
++# OMAP2/3 Display Device Drivers
++#
++CONFIG_PANEL_GENERIC=y
++# CONFIG_PANEL_LGPHILIPS_LB035Q02 is not set
++# CONFIG_PANEL_SAMSUNG_LTE430WQ_F0C is not set
++CONFIG_PANEL_SHARP_LS037V7DW01=y
++# CONFIG_PANEL_SHARP_LQ043T1DG01 is not set
++# CONFIG_PANEL_TAAL is not set
+ # CONFIG_BACKLIGHT_LCD_SUPPORT is not set
+
+ #
+ # Display device support
+ #
+-# CONFIG_DISPLAY_SUPPORT is not set
++CONFIG_DISPLAY_SUPPORT=y
++
++#
++# Display hardware drivers
++#
+
+ #
+ # Console display driver support
+@@ -820,31 +2040,113 @@ CONFIG_DUMMY_CONSOLE=y
+ CONFIG_FRAMEBUFFER_CONSOLE=y
+ # CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
+ CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
+-CONFIG_FONTS=y
++# CONFIG_FONTS is not set
+ CONFIG_FONT_8x8=y
+ CONFIG_FONT_8x16=y
+-# CONFIG_FONT_6x11 is not set
+-# CONFIG_FONT_7x14 is not set
+-# CONFIG_FONT_PEARL_8x8 is not set
+-# CONFIG_FONT_ACORN_8x8 is not set
+-# CONFIG_FONT_MINI_4x6 is not set
+-# CONFIG_FONT_SUN8x16 is not set
+-# CONFIG_FONT_SUN12x22 is not set
+-# CONFIG_FONT_10x18 is not set
+-# CONFIG_LOGO is not set
+-
+-#
+-# Sound
+-#
+-# CONFIG_SOUND is not set
+-# CONFIG_HID_SUPPORT is not set
++CONFIG_LOGO=y
++# CONFIG_LOGO_LINUX_MONO is not set
++# CONFIG_LOGO_LINUX_VGA16 is not set
++CONFIG_LOGO_LINUX_CLUT224=y
++CONFIG_SOUND=y
++CONFIG_SOUND_OSS_CORE=y
++CONFIG_SOUND_OSS_CORE_PRECLAIM=y
++CONFIG_SND=y
++CONFIG_SND_TIMER=y
++CONFIG_SND_PCM=y
++CONFIG_SND_HWDEP=y
++CONFIG_SND_RAWMIDI=y
++CONFIG_SND_JACK=y
++CONFIG_SND_SEQUENCER=m
++# CONFIG_SND_SEQ_DUMMY is not set
++CONFIG_SND_OSSEMUL=y
++CONFIG_SND_MIXER_OSS=y
++CONFIG_SND_PCM_OSS=y
++CONFIG_SND_PCM_OSS_PLUGINS=y
++CONFIG_SND_SEQUENCER_OSS=y
++CONFIG_SND_HRTIMER=m
++CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
++# CONFIG_SND_DYNAMIC_MINORS is not set
++CONFIG_SND_SUPPORT_OLD_API=y
++CONFIG_SND_VERBOSE_PROCFS=y
++# CONFIG_SND_VERBOSE_PRINTK is not set
++# CONFIG_SND_DEBUG is not set
++CONFIG_SND_RAWMIDI_SEQ=m
++# CONFIG_SND_OPL3_LIB_SEQ is not set
++# CONFIG_SND_OPL4_LIB_SEQ is not set
++# CONFIG_SND_SBAWE_SEQ is not set
++# CONFIG_SND_EMU10K1_SEQ is not set
++CONFIG_SND_DRIVERS=y
++# CONFIG_SND_DUMMY is not set
++# CONFIG_SND_VIRMIDI is not set
++# CONFIG_SND_MTPAV is not set
++# CONFIG_SND_SERIAL_U16550 is not set
++# CONFIG_SND_MPU401 is not set
++# CONFIG_SND_ARM is not set
++CONFIG_SND_SPI=y
++CONFIG_SND_USB=y
++CONFIG_SND_USB_AUDIO=y
++CONFIG_SND_USB_CAIAQ=m
++CONFIG_SND_USB_CAIAQ_INPUT=y
++CONFIG_SND_SOC=y
++CONFIG_SND_OMAP_SOC=y
++CONFIG_SND_OMAP_SOC_MCBSP=y
++# CONFIG_SND_OMAP_SOC_OMAP3EVM is not set
++CONFIG_SND_OMAP_SOC_OMAP3_BEAGLE=y
++CONFIG_SND_SOC_I2C_AND_SPI=y
++# CONFIG_SND_SOC_ALL_CODECS is not set
++CONFIG_SND_SOC_TWL4030=y
++# CONFIG_SOUND_PRIME is not set
++CONFIG_HID_SUPPORT=y
++CONFIG_HID=y
++# CONFIG_HIDRAW is not set
++
++#
++# USB Input Devices
++#
++CONFIG_USB_HID=y
++# CONFIG_HID_PID is not set
++# CONFIG_USB_HIDDEV is not set
++
++#
++# Special HID drivers
++#
++CONFIG_HID_A4TECH=y
++CONFIG_HID_APPLE=y
++CONFIG_HID_BELKIN=y
++CONFIG_HID_CHERRY=y
++CONFIG_HID_CHICONY=y
++CONFIG_HID_CYPRESS=y
++# CONFIG_HID_DRAGONRISE is not set
++CONFIG_HID_EZKEY=y
++# CONFIG_HID_KYE is not set
++CONFIG_HID_GYRATION=y
++# CONFIG_HID_TWINHAN is not set
++# CONFIG_HID_KENSINGTON is not set
++CONFIG_HID_LOGITECH=y
++# CONFIG_LOGITECH_FF is not set
++# CONFIG_LOGIRUMBLEPAD2_FF is not set
++CONFIG_HID_MICROSOFT=y
++CONFIG_HID_MONTEREY=y
++CONFIG_HID_NTRIG=y
++CONFIG_HID_PANTHERLORD=y
++# CONFIG_PANTHERLORD_FF is not set
++CONFIG_HID_PETALYNX=y
++CONFIG_HID_SAMSUNG=y
++CONFIG_HID_SONY=y
++CONFIG_HID_SUNPLUS=y
++# CONFIG_HID_GREENASIA is not set
++# CONFIG_HID_SMARTJOYPLUS is not set
++CONFIG_HID_TOPSEED=y
++# CONFIG_HID_THRUSTMASTER is not set
++# CONFIG_HID_WACOM is not set
++# CONFIG_HID_ZEROPLUS is not set
+ CONFIG_USB_SUPPORT=y
+ CONFIG_USB_ARCH_HAS_HCD=y
+ CONFIG_USB_ARCH_HAS_OHCI=y
+ CONFIG_USB_ARCH_HAS_EHCI=y
+ CONFIG_USB=y
+ # CONFIG_USB_DEBUG is not set
+-# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
++CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
+
+ #
+ # Miscellaneous USB options
+@@ -857,18 +2159,25 @@ CONFIG_USB_OTG=y
+ # CONFIG_USB_OTG_WHITELIST is not set
+ # CONFIG_USB_OTG_BLACKLIST_HUB is not set
+ CONFIG_USB_MON=y
++# CONFIG_USB_WUSB is not set
++# CONFIG_USB_WUSB_CBAF is not set
+
+ #
+ # USB Host Controller Drivers
+ #
+-CONFIG_USB_EHCI_HCD=y
+-CONFIG_USB_EHCI_ROOT_HUB_TT=y
+ # CONFIG_USB_C67X00_HCD is not set
++CONFIG_USB_EHCI_HCD=y
++# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
++CONFIG_USB_EHCI_TT_NEWSCHED=y
++# CONFIG_USB_OXU210HP_HCD is not set
+ # CONFIG_USB_ISP116X_HCD is not set
+ # CONFIG_USB_ISP1760_HCD is not set
++# CONFIG_USB_ISP1362_HCD is not set
+ # CONFIG_USB_OHCI_HCD is not set
++# CONFIG_USB_U132_HCD is not set
+ # CONFIG_USB_SL811_HCD is not set
+ # CONFIG_USB_R8A66597_HCD is not set
++# CONFIG_USB_HWA_HCD is not set
+ CONFIG_USB_MUSB_HDRC=y
+ CONFIG_USB_MUSB_SOC=y
+
+@@ -882,24 +2191,39 @@ CONFIG_USB_GADGET_MUSB_HDRC=y
+ CONFIG_USB_MUSB_HDRC_HCD=y
+ # CONFIG_MUSB_PIO_ONLY is not set
+ CONFIG_USB_INVENTRA_DMA=y
++CONFIG_MUSB_USE_SYSTEM_DMA_RX=y
+ # CONFIG_USB_TI_CPPI_DMA is not set
++# CONFIG_USB_TI_CPPI41_DMA is not set
+ # CONFIG_USB_MUSB_DEBUG is not set
+
+ #
+ # USB Device Class drivers
+ #
+-# CONFIG_USB_ACM is not set
+-# CONFIG_USB_PRINTER is not set
+-# CONFIG_USB_WDM is not set
++CONFIG_USB_ACM=m
++CONFIG_USB_PRINTER=m
++CONFIG_USB_WDM=m
++CONFIG_USB_TMC=m
+
+ #
+-# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
++# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
+ #
+
+ #
+-# may also be needed; see USB_STORAGE Help for more information
++# also be needed; see USB_STORAGE Help for more info
+ #
+-# CONFIG_USB_STORAGE is not set
++CONFIG_USB_STORAGE=y
++# CONFIG_USB_STORAGE_DEBUG is not set
++# CONFIG_USB_STORAGE_DATAFAB is not set
++# CONFIG_USB_STORAGE_FREECOM is not set
++# CONFIG_USB_STORAGE_ISD200 is not set
++# CONFIG_USB_STORAGE_USBAT is not set
++# CONFIG_USB_STORAGE_SDDR09 is not set
++# CONFIG_USB_STORAGE_SDDR55 is not set
++# CONFIG_USB_STORAGE_JUMPSHOT is not set
++# CONFIG_USB_STORAGE_ALAUDA is not set
++# CONFIG_USB_STORAGE_ONETOUCH is not set
++# CONFIG_USB_STORAGE_KARMA is not set
++# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
+ # CONFIG_USB_LIBUSUAL is not set
+
+ #
+@@ -911,92 +2235,200 @@ CONFIG_USB_INVENTRA_DMA=y
+ #
+ # USB port drivers
+ #
+-# CONFIG_USB_SERIAL is not set
++CONFIG_USB_SERIAL=m
++CONFIG_USB_EZUSB=y
++CONFIG_USB_SERIAL_GENERIC=y
++CONFIG_USB_SERIAL_AIRCABLE=m
++CONFIG_USB_SERIAL_ARK3116=m
++CONFIG_USB_SERIAL_BELKIN=m
++CONFIG_USB_SERIAL_CH341=m
++CONFIG_USB_SERIAL_WHITEHEAT=m
++CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
++# CONFIG_USB_SERIAL_CP210X is not set
++CONFIG_USB_SERIAL_CYPRESS_M8=m
++CONFIG_USB_SERIAL_EMPEG=m
++CONFIG_USB_SERIAL_FTDI_SIO=m
++CONFIG_USB_SERIAL_FUNSOFT=m
++CONFIG_USB_SERIAL_VISOR=m
++CONFIG_USB_SERIAL_IPAQ=m
++CONFIG_USB_SERIAL_IR=m
++CONFIG_USB_SERIAL_EDGEPORT=m
++CONFIG_USB_SERIAL_EDGEPORT_TI=m
++CONFIG_USB_SERIAL_GARMIN=m
++CONFIG_USB_SERIAL_IPW=m
++CONFIG_USB_SERIAL_IUU=m
++CONFIG_USB_SERIAL_KEYSPAN_PDA=m
++CONFIG_USB_SERIAL_KEYSPAN=m
++CONFIG_USB_SERIAL_KEYSPAN_MPR=y
++CONFIG_USB_SERIAL_KEYSPAN_USA28=y
++CONFIG_USB_SERIAL_KEYSPAN_USA28X=y
++CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y
++CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y
++CONFIG_USB_SERIAL_KEYSPAN_USA19=y
++CONFIG_USB_SERIAL_KEYSPAN_USA18X=y
++CONFIG_USB_SERIAL_KEYSPAN_USA19W=y
++CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y
++CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y
++CONFIG_USB_SERIAL_KEYSPAN_USA49W=y
++CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
++CONFIG_USB_SERIAL_KLSI=m
++CONFIG_USB_SERIAL_KOBIL_SCT=m
++CONFIG_USB_SERIAL_MCT_U232=m
++CONFIG_USB_SERIAL_MOS7720=m
++CONFIG_USB_SERIAL_MOS7840=m
++CONFIG_USB_SERIAL_MOTOROLA=m
++CONFIG_USB_SERIAL_NAVMAN=m
++CONFIG_USB_SERIAL_PL2303=m
++CONFIG_USB_SERIAL_OTI6858=m
++# CONFIG_USB_SERIAL_QUALCOMM is not set
++CONFIG_USB_SERIAL_SPCP8X5=m
++CONFIG_USB_SERIAL_HP4X=m
++CONFIG_USB_SERIAL_SAFE=m
++# CONFIG_USB_SERIAL_SAFE_PADDED is not set
++CONFIG_USB_SERIAL_SIEMENS_MPI=m
++CONFIG_USB_SERIAL_SIERRAWIRELESS=m
++# CONFIG_USB_SERIAL_SYMBOL is not set
++CONFIG_USB_SERIAL_TI=m
++CONFIG_USB_SERIAL_CYBERJACK=m
++CONFIG_USB_SERIAL_XIRCOM=m
++CONFIG_USB_SERIAL_OPTION=m
++CONFIG_USB_SERIAL_OMNINET=m
++CONFIG_USB_SERIAL_OPTICON=m
++CONFIG_USB_SERIAL_DEBUG=m
+
+ #
+ # USB Miscellaneous drivers
+ #
+-# CONFIG_USB_EMI62 is not set
+-# CONFIG_USB_EMI26 is not set
++CONFIG_USB_EMI62=m
++CONFIG_USB_EMI26=m
+ # CONFIG_USB_ADUTUX is not set
++# CONFIG_USB_SEVSEG is not set
+ # CONFIG_USB_RIO500 is not set
+-# CONFIG_USB_LEGOTOWER is not set
+-# CONFIG_USB_LCD is not set
+-# CONFIG_USB_BERRY_CHARGE is not set
+-# CONFIG_USB_LED is not set
+-# CONFIG_USB_CYPRESS_CY7C63 is not set
+-# CONFIG_USB_CYTHERM is not set
+-# CONFIG_USB_PHIDGET is not set
+-# CONFIG_USB_IDMOUSE is not set
+-# CONFIG_USB_FTDI_ELAN is not set
++CONFIG_USB_LEGOTOWER=m
++CONFIG_USB_LCD=m
++CONFIG_USB_BERRY_CHARGE=m
++CONFIG_USB_LED=m
++CONFIG_USB_CYPRESS_CY7C63=m
++CONFIG_USB_CYTHERM=m
++CONFIG_USB_IDMOUSE=m
++CONFIG_USB_FTDI_ELAN=m
+ # CONFIG_USB_APPLEDISPLAY is not set
+-# CONFIG_USB_LD is not set
+-# CONFIG_USB_TRANCEVIBRATOR is not set
++CONFIG_USB_SISUSBVGA=m
++CONFIG_USB_SISUSBVGA_CON=y
++CONFIG_USB_LD=m
++CONFIG_USB_TRANCEVIBRATOR=m
+ # CONFIG_USB_IOWARRIOR is not set
+-# CONFIG_USB_TEST is not set
++CONFIG_USB_TEST=m
+ # CONFIG_USB_ISIGHTFW is not set
++CONFIG_USB_VST=m
++CONFIG_USB_ATM=m
++CONFIG_USB_SPEEDTOUCH=m
++CONFIG_USB_CXACRU=m
++CONFIG_USB_UEAGLEATM=m
++CONFIG_USB_XUSBATM=m
+ CONFIG_USB_GADGET=y
+ # CONFIG_USB_GADGET_DEBUG is not set
+ # CONFIG_USB_GADGET_DEBUG_FILES is not set
++CONFIG_USB_GADGET_DEBUG_FS=y
++CONFIG_USB_GADGET_VBUS_DRAW=2
+ CONFIG_USB_GADGET_SELECTED=y
+-# CONFIG_USB_GADGET_AMD5536UDC is not set
++# CONFIG_USB_GADGET_AT91 is not set
+ # CONFIG_USB_GADGET_ATMEL_USBA is not set
+ # CONFIG_USB_GADGET_FSL_USB2 is not set
+-# CONFIG_USB_GADGET_NET2280 is not set
+-# CONFIG_USB_GADGET_PXA25X is not set
+-# CONFIG_USB_GADGET_M66592 is not set
+-# CONFIG_USB_M66592 is not set
+-# CONFIG_USB_GADGET_PXA27X is not set
+-# CONFIG_USB_GADGET_GOKU is not set
+ # CONFIG_USB_GADGET_LH7A40X is not set
+ # CONFIG_USB_GADGET_OMAP is not set
++# CONFIG_USB_GADGET_PXA25X is not set
++# CONFIG_USB_GADGET_R8A66597 is not set
++# CONFIG_USB_GADGET_PXA27X is not set
++# CONFIG_USB_GADGET_S3C_HSOTG is not set
++# CONFIG_USB_GADGET_IMX is not set
+ # CONFIG_USB_GADGET_S3C2410 is not set
+-# CONFIG_USB_GADGET_AT91 is not set
++# CONFIG_USB_GADGET_M66592 is not set
++# CONFIG_USB_GADGET_AMD5536UDC is not set
++# CONFIG_USB_GADGET_FSL_QE is not set
++# CONFIG_USB_GADGET_CI13XXX is not set
++# CONFIG_USB_GADGET_NET2280 is not set
++# CONFIG_USB_GADGET_GOKU is not set
++# CONFIG_USB_GADGET_LANGWELL is not set
+ # CONFIG_USB_GADGET_DUMMY_HCD is not set
+ CONFIG_USB_GADGET_DUALSPEED=y
+-# CONFIG_USB_ZERO is not set
++CONFIG_USB_ZERO=m
++CONFIG_USB_ZERO_HNPTEST=y
++# CONFIG_USB_AUDIO is not set
+ CONFIG_USB_ETH=m
+ CONFIG_USB_ETH_RNDIS=y
+-# CONFIG_USB_GADGETFS is not set
+-# CONFIG_USB_FILE_STORAGE is not set
+-# CONFIG_USB_G_SERIAL is not set
+-# CONFIG_USB_MIDI_GADGET is not set
+-# CONFIG_USB_G_PRINTER is not set
+-# CONFIG_USB_CDC_COMPOSITE is not set
++# CONFIG_USB_ETH_EEM is not set
++CONFIG_USB_GADGETFS=m
++CONFIG_USB_FILE_STORAGE=m
++# CONFIG_USB_FILE_STORAGE_TEST is not set
++# CONFIG_USB_MASS_STORAGE is not set
++CONFIG_USB_G_SERIAL=m
++CONFIG_USB_MIDI_GADGET=m
++CONFIG_USB_G_PRINTER=m
++CONFIG_USB_CDC_COMPOSITE=m
++# CONFIG_USB_G_MULTI is not set
+
+ #
+ # OTG and related infrastructure
+ #
+ CONFIG_USB_OTG_UTILS=y
+-# CONFIG_USB_GPIO_VBUS is not set
++CONFIG_USB_GPIO_VBUS=y
++# CONFIG_ISP1301_OMAP is not set
++# CONFIG_USB_ULPI is not set
+ CONFIG_TWL4030_USB=y
+-# CONFIG_NOP_USB_XCEIV is not set
++CONFIG_NOP_USB_XCEIV=y
+ CONFIG_MMC=y
+ # CONFIG_MMC_DEBUG is not set
+-# CONFIG_MMC_UNSAFE_RESUME is not set
++CONFIG_MMC_UNSAFE_RESUME=y
+
+ #
+-# MMC/SD Card Drivers
++# MMC/SD/SDIO Card Drivers
+ #
+ CONFIG_MMC_BLOCK=y
+ CONFIG_MMC_BLOCK_BOUNCE=y
+-# CONFIG_SDIO_UART is not set
++CONFIG_SDIO_UART=y
+ # CONFIG_MMC_TEST is not set
+
+ #
+-# MMC/SD Host Controller Drivers
++# MMC/SD/SDIO Host Controller Drivers
+ #
+ # CONFIG_MMC_SDHCI is not set
+ # CONFIG_MMC_OMAP is not set
+ CONFIG_MMC_OMAP_HS=y
++# CONFIG_MMC_AT91 is not set
++# CONFIG_MMC_ATMELMCI is not set
++CONFIG_MMC_SPI=m
+ # CONFIG_MEMSTICK is not set
++CONFIG_NEW_LEDS=y
++CONFIG_LEDS_CLASS=y
++
++#
++# LED drivers
++#
++# CONFIG_LEDS_PCA9532 is not set
++CONFIG_LEDS_GPIO=y
++CONFIG_LEDS_GPIO_PLATFORM=y
++# CONFIG_LEDS_LP3944 is not set
++# CONFIG_LEDS_PCA955X is not set
++# CONFIG_LEDS_DAC124S085 is not set
++# CONFIG_LEDS_BD2802 is not set
++
++#
++# LED Triggers
++#
++CONFIG_LEDS_TRIGGERS=y
++CONFIG_LEDS_TRIGGER_TIMER=m
++CONFIG_LEDS_TRIGGER_HEARTBEAT=y
++CONFIG_LEDS_TRIGGER_BACKLIGHT=m
++# CONFIG_LEDS_TRIGGER_GPIO is not set
++CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
++
++#
++# iptables trigger is under Netfilter config (LED target)
++#
+ # CONFIG_ACCESSIBILITY is not set
+-# CONFIG_NEW_LEDS is not set
+ CONFIG_RTC_LIB=y
+-CONFIG_RTC_CLASS=y
+-CONFIG_RTC_HCTOSYS=y
+-CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+-# CONFIG_RTC_DEBUG is not set
++CONFIG_RTC_CLASS=m
+
+ #
+ # RTC interfaces
+@@ -1020,73 +2452,178 @@ CONFIG_RTC_INTF_DEV=y
+ # CONFIG_RTC_DRV_PCF8563 is not set
+ # CONFIG_RTC_DRV_PCF8583 is not set
+ # CONFIG_RTC_DRV_M41T80 is not set
++CONFIG_RTC_DRV_TWL4030=m
+ # CONFIG_RTC_DRV_S35390A is not set
+ # CONFIG_RTC_DRV_FM3130 is not set
++# CONFIG_RTC_DRV_RX8581 is not set
++# CONFIG_RTC_DRV_RX8025 is not set
+
+ #
+ # SPI RTC drivers
+ #
++# CONFIG_RTC_DRV_M41T94 is not set
++# CONFIG_RTC_DRV_DS1305 is not set
++# CONFIG_RTC_DRV_DS1390 is not set
++# CONFIG_RTC_DRV_MAX6902 is not set
++# CONFIG_RTC_DRV_R9701 is not set
++# CONFIG_RTC_DRV_RS5C348 is not set
++# CONFIG_RTC_DRV_DS3234 is not set
++# CONFIG_RTC_DRV_PCF2123 is not set
+
+ #
+ # Platform RTC drivers
+ #
+ # CONFIG_RTC_DRV_CMOS is not set
++# CONFIG_RTC_DRV_DS1286 is not set
+ # CONFIG_RTC_DRV_DS1511 is not set
+ # CONFIG_RTC_DRV_DS1553 is not set
+ # CONFIG_RTC_DRV_DS1742 is not set
+ # CONFIG_RTC_DRV_STK17TA8 is not set
+ # CONFIG_RTC_DRV_M48T86 is not set
++# CONFIG_RTC_DRV_M48T35 is not set
+ # CONFIG_RTC_DRV_M48T59 is not set
++# CONFIG_RTC_DRV_MSM6242 is not set
++# CONFIG_RTC_DRV_BQ4802 is not set
++# CONFIG_RTC_DRV_RP5C01 is not set
+ # CONFIG_RTC_DRV_V3020 is not set
+
+ #
+ # on-CPU RTC drivers
+ #
+ # CONFIG_DMADEVICES is not set
++# CONFIG_AUXDISPLAY is not set
++CONFIG_UIO=m
++CONFIG_UIO_PDRV=m
++CONFIG_UIO_PDRV_GENIRQ=m
++# CONFIG_UIO_SMX is not set
++# CONFIG_UIO_SERCOS3 is not set
+
+ #
+-# Voltage and Current regulators
++# TI VLYNQ
+ #
+-CONFIG_REGULATOR=y
+-# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
+-# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
+-# CONFIG_REGULATOR_BQ24022 is not set
+-CONFIG_REGULATOR_TWL4030=y
+-# CONFIG_UIO is not set
++CONFIG_STAGING=y
++# CONFIG_STAGING_EXCLUDE_BUILD is not set
++# CONFIG_USB_IP_COMMON is not set
++CONFIG_W35UND=m
++# CONFIG_PRISM2_USB is not set
++CONFIG_ECHO=m
++CONFIG_OTUS=m
++# CONFIG_COMEDI is not set
++# CONFIG_ASUS_OLED is not set
++# CONFIG_INPUT_MIMIO is not set
++# CONFIG_TRANZPORT is not set
++
++#
++# Qualcomm MSM Camera And Video
++#
++
++#
++# Camera Sensor Selection
++#
++# CONFIG_INPUT_GPIO is not set
++# CONFIG_DST is not set
++# CONFIG_POHMELFS is not set
++# CONFIG_PLAN9AUTH is not set
++# CONFIG_LINE6_USB is not set
++# CONFIG_USB_SERIAL_QUATECH2 is not set
++# CONFIG_USB_SERIAL_QUATECH_USB2 is not set
++# CONFIG_VT6656 is not set
++# CONFIG_FB_UDL is not set
++
++#
++# RAR Register Driver
++#
++# CONFIG_RAR_REGISTER is not set
++# CONFIG_IIO is not set
++# CONFIG_RAMZSWAP is not set
++# CONFIG_BATMAN_ADV is not set
++# CONFIG_STRIP is not set
++
++#
++# CBUS support
++#
++# CONFIG_CBUS is not set
+
+ #
+ # File systems
+ #
++CONFIG_FS_JOURNAL_INFO=y
+ CONFIG_EXT2_FS=y
+ # CONFIG_EXT2_FS_XATTR is not set
+ # CONFIG_EXT2_FS_XIP is not set
+ CONFIG_EXT3_FS=y
++# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
+ # CONFIG_EXT3_FS_XATTR is not set
+-# CONFIG_EXT4DEV_FS is not set
++CONFIG_EXT4_FS=y
++CONFIG_EXT4_FS_XATTR=y
++# CONFIG_EXT4_FS_POSIX_ACL is not set
++# CONFIG_EXT4_FS_SECURITY is not set
++# CONFIG_EXT4_DEBUG is not set
+ CONFIG_JBD=y
+-# CONFIG_REISERFS_FS is not set
+-# CONFIG_JFS_FS is not set
+-# CONFIG_FS_POSIX_ACL is not set
+-# CONFIG_XFS_FS is not set
+-# CONFIG_OCFS2_FS is not set
++# CONFIG_JBD_DEBUG is not set
++CONFIG_JBD2=y
++# CONFIG_JBD2_DEBUG is not set
++CONFIG_FS_MBCACHE=y
++CONFIG_REISERFS_FS=m
++# CONFIG_REISERFS_CHECK is not set
++CONFIG_REISERFS_PROC_INFO=y
++CONFIG_REISERFS_FS_XATTR=y
++# CONFIG_REISERFS_FS_POSIX_ACL is not set
++# CONFIG_REISERFS_FS_SECURITY is not set
++CONFIG_JFS_FS=m
++# CONFIG_JFS_POSIX_ACL is not set
++# CONFIG_JFS_SECURITY is not set
++# CONFIG_JFS_DEBUG is not set
++# CONFIG_JFS_STATISTICS is not set
++CONFIG_FS_POSIX_ACL=y
++CONFIG_XFS_FS=m
++# CONFIG_XFS_QUOTA is not set
++# CONFIG_XFS_POSIX_ACL is not set
++# CONFIG_XFS_RT is not set
++# CONFIG_XFS_DEBUG is not set
++CONFIG_GFS2_FS=m
++# CONFIG_GFS2_FS_LOCKING_DLM is not set
++CONFIG_OCFS2_FS=m
++CONFIG_OCFS2_FS_O2CB=m
++CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
++CONFIG_OCFS2_FS_STATS=y
++CONFIG_OCFS2_DEBUG_MASKLOG=y
++# CONFIG_OCFS2_DEBUG_FS is not set
++# CONFIG_OCFS2_FS_POSIX_ACL is not set
++CONFIG_BTRFS_FS=m
++# CONFIG_BTRFS_FS_POSIX_ACL is not set
++# CONFIG_NILFS2_FS is not set
++CONFIG_FILE_LOCKING=y
++CONFIG_FSNOTIFY=y
+ CONFIG_DNOTIFY=y
+ CONFIG_INOTIFY=y
+ CONFIG_INOTIFY_USER=y
+ CONFIG_QUOTA=y
+ # CONFIG_QUOTA_NETLINK_INTERFACE is not set
+ CONFIG_PRINT_QUOTA_WARNING=y
++CONFIG_QUOTA_TREE=y
+ # CONFIG_QFMT_V1 is not set
+ CONFIG_QFMT_V2=y
+ CONFIG_QUOTACTL=y
+ # CONFIG_AUTOFS_FS is not set
+-# CONFIG_AUTOFS4_FS is not set
+-# CONFIG_FUSE_FS is not set
++CONFIG_AUTOFS4_FS=m
++CONFIG_FUSE_FS=m
++# CONFIG_CUSE is not set
++CONFIG_GENERIC_ACL=y
++
++#
++# Caches
++#
++# CONFIG_FSCACHE is not set
+
+ #
+ # CD-ROM/DVD Filesystems
+ #
+-# CONFIG_ISO9660_FS is not set
+-# CONFIG_UDF_FS is not set
++CONFIG_ISO9660_FS=m
++CONFIG_JOLIET=y
++CONFIG_ZISOFS=y
++CONFIG_UDF_FS=m
++CONFIG_UDF_NLS=y
+
+ #
+ # DOS/FAT/NT Filesystems
+@@ -1096,68 +2633,118 @@ CONFIG_MSDOS_FS=y
+ CONFIG_VFAT_FS=y
+ CONFIG_FAT_DEFAULT_CODEPAGE=437
+ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+-# CONFIG_NTFS_FS is not set
++CONFIG_NTFS_FS=m
++# CONFIG_NTFS_DEBUG is not set
++CONFIG_NTFS_RW=y
+
+ #
+ # Pseudo filesystems
+ #
+ CONFIG_PROC_FS=y
+ CONFIG_PROC_SYSCTL=y
++CONFIG_PROC_PAGE_MONITOR=y
+ CONFIG_SYSFS=y
+ CONFIG_TMPFS=y
+-# CONFIG_TMPFS_POSIX_ACL is not set
++CONFIG_TMPFS_POSIX_ACL=y
+ # CONFIG_HUGETLB_PAGE is not set
+-# CONFIG_CONFIGFS_FS is not set
+-
+-#
+-# Miscellaneous filesystems
+-#
+-# CONFIG_ADFS_FS is not set
+-# CONFIG_AFFS_FS is not set
+-# CONFIG_HFS_FS is not set
+-# CONFIG_HFSPLUS_FS is not set
+-# CONFIG_BEFS_FS is not set
+-# CONFIG_BFS_FS is not set
+-# CONFIG_EFS_FS is not set
++CONFIG_CONFIGFS_FS=m
++CONFIG_MISC_FILESYSTEMS=y
++CONFIG_ADFS_FS=m
++# CONFIG_ADFS_FS_RW is not set
++CONFIG_AFFS_FS=m
++# CONFIG_ECRYPT_FS is not set
++CONFIG_HFS_FS=m
++CONFIG_HFSPLUS_FS=m
++CONFIG_BEFS_FS=m
++# CONFIG_BEFS_DEBUG is not set
++CONFIG_BFS_FS=m
++CONFIG_EFS_FS=m
+ CONFIG_JFFS2_FS=y
+ CONFIG_JFFS2_FS_DEBUG=0
+ CONFIG_JFFS2_FS_WRITEBUFFER=y
+ # CONFIG_JFFS2_FS_WBUF_VERIFY is not set
+-# CONFIG_JFFS2_SUMMARY is not set
+-# CONFIG_JFFS2_FS_XATTR is not set
+-# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
++CONFIG_JFFS2_SUMMARY=y
++CONFIG_JFFS2_FS_XATTR=y
++CONFIG_JFFS2_FS_POSIX_ACL=y
++CONFIG_JFFS2_FS_SECURITY=y
++CONFIG_JFFS2_COMPRESSION_OPTIONS=y
+ CONFIG_JFFS2_ZLIB=y
+-# CONFIG_JFFS2_LZO is not set
++CONFIG_JFFS2_LZO=y
+ CONFIG_JFFS2_RTIME=y
+-# CONFIG_JFFS2_RUBIN is not set
+-# CONFIG_CRAMFS is not set
+-# CONFIG_VXFS_FS is not set
+-# CONFIG_MINIX_FS is not set
+-# CONFIG_OMFS_FS is not set
+-# CONFIG_HPFS_FS is not set
+-# CONFIG_QNX4FS_FS is not set
+-# CONFIG_ROMFS_FS is not set
+-# CONFIG_SYSV_FS is not set
+-# CONFIG_UFS_FS is not set
++CONFIG_JFFS2_RUBIN=y
++# CONFIG_JFFS2_CMODE_NONE is not set
++# CONFIG_JFFS2_CMODE_PRIORITY is not set
++# CONFIG_JFFS2_CMODE_SIZE is not set
++CONFIG_JFFS2_CMODE_FAVOURLZO=y
++CONFIG_UBIFS_FS=y
++CONFIG_UBIFS_FS_XATTR=y
++CONFIG_UBIFS_FS_ADVANCED_COMPR=y
++CONFIG_UBIFS_FS_LZO=y
++CONFIG_UBIFS_FS_ZLIB=y
++# CONFIG_UBIFS_FS_DEBUG is not set
++CONFIG_CRAMFS=m
++CONFIG_SQUASHFS=y
++# CONFIG_SQUASHFS_EMBEDDED is not set
++CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
++CONFIG_VXFS_FS=m
++CONFIG_MINIX_FS=m
++CONFIG_OMFS_FS=m
++CONFIG_HPFS_FS=m
++CONFIG_QNX4FS_FS=m
++CONFIG_ROMFS_FS=m
++CONFIG_ROMFS_BACKED_BY_BLOCK=y
++# CONFIG_ROMFS_BACKED_BY_MTD is not set
++# CONFIG_ROMFS_BACKED_BY_BOTH is not set
++CONFIG_ROMFS_ON_BLOCK=y
++CONFIG_SYSV_FS=m
++CONFIG_UFS_FS=m
++# CONFIG_UFS_FS_WRITE is not set
++# CONFIG_UFS_DEBUG is not set
+ CONFIG_NETWORK_FILESYSTEMS=y
+ CONFIG_NFS_FS=y
+ CONFIG_NFS_V3=y
+ # CONFIG_NFS_V3_ACL is not set
+ CONFIG_NFS_V4=y
++# CONFIG_NFS_V4_1 is not set
+ CONFIG_ROOT_NFS=y
+-# CONFIG_NFSD is not set
++CONFIG_NFSD=m
++CONFIG_NFSD_V2_ACL=y
++CONFIG_NFSD_V3=y
++CONFIG_NFSD_V3_ACL=y
++CONFIG_NFSD_V4=y
+ CONFIG_LOCKD=y
+ CONFIG_LOCKD_V4=y
++CONFIG_EXPORTFS=m
++CONFIG_NFS_ACL_SUPPORT=m
+ CONFIG_NFS_COMMON=y
+ CONFIG_SUNRPC=y
+ CONFIG_SUNRPC_GSS=y
+ CONFIG_RPCSEC_GSS_KRB5=y
+ # CONFIG_RPCSEC_GSS_SPKM3 is not set
+-# CONFIG_SMB_FS is not set
+-# CONFIG_CIFS is not set
+-# CONFIG_NCP_FS is not set
+-# CONFIG_CODA_FS is not set
+-# CONFIG_AFS_FS is not set
++CONFIG_SMB_FS=m
++# CONFIG_SMB_NLS_DEFAULT is not set
++CONFIG_CIFS=m
++CONFIG_CIFS_STATS=y
++CONFIG_CIFS_STATS2=y
++# CONFIG_CIFS_WEAK_PW_HASH is not set
++# CONFIG_CIFS_UPCALL is not set
++# CONFIG_CIFS_XATTR is not set
++# CONFIG_CIFS_DEBUG2 is not set
++# CONFIG_CIFS_DFS_UPCALL is not set
++CONFIG_CIFS_EXPERIMENTAL=y
++CONFIG_NCP_FS=m
++# CONFIG_NCPFS_PACKET_SIGNING is not set
++# CONFIG_NCPFS_IOCTL_LOCKING is not set
++# CONFIG_NCPFS_STRONG is not set
++# CONFIG_NCPFS_NFS_NS is not set
++# CONFIG_NCPFS_OS2_NS is not set
++# CONFIG_NCPFS_SMALLDOS is not set
++# CONFIG_NCPFS_NLS is not set
++# CONFIG_NCPFS_EXTRAS is not set
++CONFIG_CODA_FS=m
++CONFIG_AFS_FS=m
++# CONFIG_AFS_DEBUG is not set
++CONFIG_9P_FS=m
+
+ #
+ # Partition Types
+@@ -1167,82 +2754,90 @@ CONFIG_PARTITION_ADVANCED=y
+ # CONFIG_OSF_PARTITION is not set
+ # CONFIG_AMIGA_PARTITION is not set
+ # CONFIG_ATARI_PARTITION is not set
+-# CONFIG_MAC_PARTITION is not set
++CONFIG_MAC_PARTITION=y
+ CONFIG_MSDOS_PARTITION=y
+-# CONFIG_BSD_DISKLABEL is not set
+-# CONFIG_MINIX_SUBPARTITION is not set
+-# CONFIG_SOLARIS_X86_PARTITION is not set
++CONFIG_BSD_DISKLABEL=y
++CONFIG_MINIX_SUBPARTITION=y
++CONFIG_SOLARIS_X86_PARTITION=y
+ # CONFIG_UNIXWARE_DISKLABEL is not set
+-# CONFIG_LDM_PARTITION is not set
++CONFIG_LDM_PARTITION=y
++CONFIG_LDM_DEBUG=y
+ # CONFIG_SGI_PARTITION is not set
+ # CONFIG_ULTRIX_PARTITION is not set
+ # CONFIG_SUN_PARTITION is not set
+ # CONFIG_KARMA_PARTITION is not set
+-# CONFIG_EFI_PARTITION is not set
++CONFIG_EFI_PARTITION=y
+ # CONFIG_SYSV68_PARTITION is not set
+ CONFIG_NLS=y
+ CONFIG_NLS_DEFAULT="iso8859-1"
+ CONFIG_NLS_CODEPAGE_437=y
+-# CONFIG_NLS_CODEPAGE_737 is not set
+-# CONFIG_NLS_CODEPAGE_775 is not set
+-# CONFIG_NLS_CODEPAGE_850 is not set
+-# CONFIG_NLS_CODEPAGE_852 is not set
+-# CONFIG_NLS_CODEPAGE_855 is not set
+-# CONFIG_NLS_CODEPAGE_857 is not set
+-# CONFIG_NLS_CODEPAGE_860 is not set
+-# CONFIG_NLS_CODEPAGE_861 is not set
+-# CONFIG_NLS_CODEPAGE_862 is not set
+-# CONFIG_NLS_CODEPAGE_863 is not set
+-# CONFIG_NLS_CODEPAGE_864 is not set
+-# CONFIG_NLS_CODEPAGE_865 is not set
+-# CONFIG_NLS_CODEPAGE_866 is not set
+-# CONFIG_NLS_CODEPAGE_869 is not set
+-# CONFIG_NLS_CODEPAGE_936 is not set
+-# CONFIG_NLS_CODEPAGE_950 is not set
+-# CONFIG_NLS_CODEPAGE_932 is not set
+-# CONFIG_NLS_CODEPAGE_949 is not set
+-# CONFIG_NLS_CODEPAGE_874 is not set
+-# CONFIG_NLS_ISO8859_8 is not set
+-# CONFIG_NLS_CODEPAGE_1250 is not set
+-# CONFIG_NLS_CODEPAGE_1251 is not set
+-# CONFIG_NLS_ASCII is not set
++CONFIG_NLS_CODEPAGE_737=m
++CONFIG_NLS_CODEPAGE_775=m
++CONFIG_NLS_CODEPAGE_850=m
++CONFIG_NLS_CODEPAGE_852=m
++CONFIG_NLS_CODEPAGE_855=m
++CONFIG_NLS_CODEPAGE_857=m
++CONFIG_NLS_CODEPAGE_860=m
++CONFIG_NLS_CODEPAGE_861=m
++CONFIG_NLS_CODEPAGE_862=m
++CONFIG_NLS_CODEPAGE_863=m
++CONFIG_NLS_CODEPAGE_864=m
++CONFIG_NLS_CODEPAGE_865=m
++CONFIG_NLS_CODEPAGE_866=m
++CONFIG_NLS_CODEPAGE_869=m
++CONFIG_NLS_CODEPAGE_936=m
++CONFIG_NLS_CODEPAGE_950=m
++CONFIG_NLS_CODEPAGE_932=m
++CONFIG_NLS_CODEPAGE_949=m
++CONFIG_NLS_CODEPAGE_874=m
++CONFIG_NLS_ISO8859_8=m
++CONFIG_NLS_CODEPAGE_1250=m
++CONFIG_NLS_CODEPAGE_1251=m
++CONFIG_NLS_ASCII=m
+ CONFIG_NLS_ISO8859_1=y
+-# CONFIG_NLS_ISO8859_2 is not set
+-# CONFIG_NLS_ISO8859_3 is not set
+-# CONFIG_NLS_ISO8859_4 is not set
+-# CONFIG_NLS_ISO8859_5 is not set
+-# CONFIG_NLS_ISO8859_6 is not set
+-# CONFIG_NLS_ISO8859_7 is not set
+-# CONFIG_NLS_ISO8859_9 is not set
+-# CONFIG_NLS_ISO8859_13 is not set
+-# CONFIG_NLS_ISO8859_14 is not set
+-# CONFIG_NLS_ISO8859_15 is not set
+-# CONFIG_NLS_KOI8_R is not set
+-# CONFIG_NLS_KOI8_U is not set
+-# CONFIG_NLS_UTF8 is not set
+-# CONFIG_DLM is not set
++CONFIG_NLS_ISO8859_2=m
++CONFIG_NLS_ISO8859_3=m
++CONFIG_NLS_ISO8859_4=m
++CONFIG_NLS_ISO8859_5=m
++CONFIG_NLS_ISO8859_6=m
++CONFIG_NLS_ISO8859_7=m
++CONFIG_NLS_ISO8859_9=m
++CONFIG_NLS_ISO8859_13=m
++CONFIG_NLS_ISO8859_14=m
++CONFIG_NLS_ISO8859_15=m
++CONFIG_NLS_KOI8_R=m
++CONFIG_NLS_KOI8_U=m
++CONFIG_NLS_UTF8=y
++CONFIG_DLM=m
++# CONFIG_DLM_DEBUG is not set
+
+ #
+ # Kernel hacking
+ #
+-# CONFIG_PRINTK_TIME is not set
++CONFIG_PRINTK_TIME=y
+ CONFIG_ENABLE_WARN_DEPRECATED=y
+ CONFIG_ENABLE_MUST_CHECK=y
+ CONFIG_FRAME_WARN=1024
+ CONFIG_MAGIC_SYSRQ=y
++# CONFIG_STRIP_ASM_SYMS is not set
+ # CONFIG_UNUSED_SYMBOLS is not set
+-# CONFIG_DEBUG_FS is not set
++CONFIG_DEBUG_FS=y
+ # CONFIG_HEADERS_CHECK is not set
+ CONFIG_DEBUG_KERNEL=y
+ # CONFIG_DEBUG_SHIRQ is not set
+ CONFIG_DETECT_SOFTLOCKUP=y
+ # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
+ CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
++CONFIG_DETECT_HUNG_TASK=y
++# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
++CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
+ CONFIG_SCHED_DEBUG=y
+-# CONFIG_SCHEDSTATS is not set
+-# CONFIG_TIMER_STATS is not set
++CONFIG_SCHEDSTATS=y
++CONFIG_TIMER_STATS=y
+ # CONFIG_DEBUG_OBJECTS is not set
+ # CONFIG_DEBUG_SLAB is not set
++# CONFIG_DEBUG_KMEMLEAK is not set
++CONFIG_DEBUG_PREEMPT=y
+ # CONFIG_DEBUG_RT_MUTEXES is not set
+ # CONFIG_RT_MUTEX_TESTER is not set
+ # CONFIG_DEBUG_SPINLOCK is not set
+@@ -1252,137 +2847,204 @@ CONFIG_DEBUG_MUTEXES=y
+ # CONFIG_LOCK_STAT is not set
+ # CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+ # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
++CONFIG_STACKTRACE=y
+ # CONFIG_DEBUG_KOBJECT is not set
+ # CONFIG_DEBUG_BUGVERBOSE is not set
+-CONFIG_DEBUG_INFO=y
++# CONFIG_DEBUG_INFO is not set
+ # CONFIG_DEBUG_VM is not set
+ # CONFIG_DEBUG_WRITECOUNT is not set
+ # CONFIG_DEBUG_MEMORY_INIT is not set
+ # CONFIG_DEBUG_LIST is not set
+ # CONFIG_DEBUG_SG is not set
+-CONFIG_FRAME_POINTER=y
++# CONFIG_DEBUG_NOTIFIERS is not set
++# CONFIG_DEBUG_CREDENTIALS is not set
+ # CONFIG_BOOT_PRINTK_DELAY is not set
+ # CONFIG_RCU_TORTURE_TEST is not set
++# CONFIG_RCU_CPU_STALL_DETECTOR is not set
+ # CONFIG_BACKTRACE_SELF_TEST is not set
++# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
++# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
+ # CONFIG_FAULT_INJECTION is not set
+ # CONFIG_LATENCYTOP is not set
+-CONFIG_HAVE_FTRACE=y
+-CONFIG_HAVE_DYNAMIC_FTRACE=y
+-# CONFIG_FTRACE is not set
++# CONFIG_SYSCTL_SYSCALL_CHECK is not set
++# CONFIG_PAGE_POISONING is not set
++CONFIG_NOP_TRACER=y
++CONFIG_HAVE_FUNCTION_TRACER=y
++CONFIG_RING_BUFFER=y
++CONFIG_EVENT_TRACING=y
++CONFIG_CONTEXT_SWITCH_TRACER=y
++CONFIG_RING_BUFFER_ALLOW_SWAP=y
++CONFIG_TRACING=y
++CONFIG_TRACING_SUPPORT=y
++CONFIG_FTRACE=y
++# CONFIG_FUNCTION_TRACER is not set
+ # CONFIG_IRQSOFF_TRACER is not set
++# CONFIG_PREEMPT_TRACER is not set
+ # CONFIG_SCHED_TRACER is not set
+-# CONFIG_CONTEXT_SWITCH_TRACER is not set
++# CONFIG_ENABLE_DEFAULT_TRACERS is not set
++# CONFIG_BOOT_TRACER is not set
++CONFIG_BRANCH_PROFILE_NONE=y
++# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
++# CONFIG_PROFILE_ALL_BRANCHES is not set
++# CONFIG_STACK_TRACER is not set
++# CONFIG_KMEMTRACE is not set
++# CONFIG_WORKQUEUE_TRACER is not set
++# CONFIG_BLK_DEV_IO_TRACE is not set
++# CONFIG_RING_BUFFER_BENCHMARK is not set
++# CONFIG_DYNAMIC_DEBUG is not set
+ # CONFIG_SAMPLES is not set
+ CONFIG_HAVE_ARCH_KGDB=y
+ # CONFIG_KGDB is not set
++CONFIG_ARM_UNWIND=y
+ # CONFIG_DEBUG_USER is not set
+ # CONFIG_DEBUG_ERRORS is not set
+ # CONFIG_DEBUG_STACK_USAGE is not set
+ # CONFIG_DEBUG_LL is not set
++# CONFIG_OC_ETM is not set
+
+ #
+ # Security options
+ #
+-# CONFIG_KEYS is not set
++CONFIG_KEYS=y
++# CONFIG_KEYS_DEBUG_PROC_KEYS is not set
+ # CONFIG_SECURITY is not set
+-# CONFIG_SECURITY_FILE_CAPABILITIES is not set
++# CONFIG_SECURITYFS is not set
++# CONFIG_DEFAULT_SECURITY_SELINUX is not set
++# CONFIG_DEFAULT_SECURITY_SMACK is not set
++# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
++CONFIG_DEFAULT_SECURITY_DAC=y
++CONFIG_DEFAULT_SECURITY=""
++CONFIG_XOR_BLOCKS=m
++CONFIG_ASYNC_CORE=m
++CONFIG_ASYNC_MEMCPY=m
++CONFIG_ASYNC_XOR=m
++CONFIG_ASYNC_PQ=m
++CONFIG_ASYNC_RAID6_RECOV=m
+ CONFIG_CRYPTO=y
+
+ #
+ # Crypto core or helper
+ #
++CONFIG_CRYPTO_FIPS=y
+ CONFIG_CRYPTO_ALGAPI=y
++CONFIG_CRYPTO_ALGAPI2=y
++CONFIG_CRYPTO_AEAD=m
++CONFIG_CRYPTO_AEAD2=y
+ CONFIG_CRYPTO_BLKCIPHER=y
++CONFIG_CRYPTO_BLKCIPHER2=y
++CONFIG_CRYPTO_HASH=y
++CONFIG_CRYPTO_HASH2=y
++CONFIG_CRYPTO_RNG=m
++CONFIG_CRYPTO_RNG2=y
++CONFIG_CRYPTO_PCOMP=y
+ CONFIG_CRYPTO_MANAGER=y
+-# CONFIG_CRYPTO_GF128MUL is not set
+-# CONFIG_CRYPTO_NULL is not set
+-# CONFIG_CRYPTO_CRYPTD is not set
+-# CONFIG_CRYPTO_AUTHENC is not set
+-# CONFIG_CRYPTO_TEST is not set
++CONFIG_CRYPTO_MANAGER2=y
++CONFIG_CRYPTO_GF128MUL=m
++CONFIG_CRYPTO_NULL=m
++CONFIG_CRYPTO_WORKQUEUE=y
++CONFIG_CRYPTO_CRYPTD=m
++CONFIG_CRYPTO_AUTHENC=m
++CONFIG_CRYPTO_TEST=m
+
+ #
+ # Authenticated Encryption with Associated Data
+ #
+-# CONFIG_CRYPTO_CCM is not set
+-# CONFIG_CRYPTO_GCM is not set
+-# CONFIG_CRYPTO_SEQIV is not set
++CONFIG_CRYPTO_CCM=m
++CONFIG_CRYPTO_GCM=m
++CONFIG_CRYPTO_SEQIV=m
+
+ #
+ # Block modes
+ #
+ CONFIG_CRYPTO_CBC=y
+-# CONFIG_CRYPTO_CTR is not set
+-# CONFIG_CRYPTO_CTS is not set
+-CONFIG_CRYPTO_ECB=m
+-# CONFIG_CRYPTO_LRW is not set
++CONFIG_CRYPTO_CTR=m
++CONFIG_CRYPTO_CTS=m
++CONFIG_CRYPTO_ECB=y
++CONFIG_CRYPTO_LRW=m
+ CONFIG_CRYPTO_PCBC=m
+-# CONFIG_CRYPTO_XTS is not set
++CONFIG_CRYPTO_XTS=m
+
+ #
+ # Hash modes
+ #
+-# CONFIG_CRYPTO_HMAC is not set
+-# CONFIG_CRYPTO_XCBC is not set
++CONFIG_CRYPTO_HMAC=m
++CONFIG_CRYPTO_XCBC=m
++# CONFIG_CRYPTO_VMAC is not set
+
+ #
+ # Digest
+ #
+-# CONFIG_CRYPTO_CRC32C is not set
+-# CONFIG_CRYPTO_MD4 is not set
++CONFIG_CRYPTO_CRC32C=y
++CONFIG_CRYPTO_GHASH=m
++CONFIG_CRYPTO_MD4=m
+ CONFIG_CRYPTO_MD5=y
+-# CONFIG_CRYPTO_MICHAEL_MIC is not set
+-# CONFIG_CRYPTO_RMD128 is not set
+-# CONFIG_CRYPTO_RMD160 is not set
+-# CONFIG_CRYPTO_RMD256 is not set
+-# CONFIG_CRYPTO_RMD320 is not set
+-# CONFIG_CRYPTO_SHA1 is not set
+-# CONFIG_CRYPTO_SHA256 is not set
+-# CONFIG_CRYPTO_SHA512 is not set
+-# CONFIG_CRYPTO_TGR192 is not set
+-# CONFIG_CRYPTO_WP512 is not set
++CONFIG_CRYPTO_MICHAEL_MIC=y
++CONFIG_CRYPTO_RMD128=m
++CONFIG_CRYPTO_RMD160=m
++CONFIG_CRYPTO_RMD256=m
++CONFIG_CRYPTO_RMD320=m
++CONFIG_CRYPTO_SHA1=m
++CONFIG_CRYPTO_SHA256=m
++CONFIG_CRYPTO_SHA512=m
++CONFIG_CRYPTO_TGR192=m
++CONFIG_CRYPTO_WP512=m
+
+ #
+ # Ciphers
+ #
+-# CONFIG_CRYPTO_AES is not set
+-# CONFIG_CRYPTO_ANUBIS is not set
+-# CONFIG_CRYPTO_ARC4 is not set
+-# CONFIG_CRYPTO_BLOWFISH is not set
+-# CONFIG_CRYPTO_CAMELLIA is not set
+-# CONFIG_CRYPTO_CAST5 is not set
+-# CONFIG_CRYPTO_CAST6 is not set
++CONFIG_CRYPTO_AES=y
++CONFIG_CRYPTO_ANUBIS=m
++CONFIG_CRYPTO_ARC4=y
++CONFIG_CRYPTO_BLOWFISH=m
++CONFIG_CRYPTO_CAMELLIA=m
++CONFIG_CRYPTO_CAST5=m
++CONFIG_CRYPTO_CAST6=m
+ CONFIG_CRYPTO_DES=y
+-# CONFIG_CRYPTO_FCRYPT is not set
+-# CONFIG_CRYPTO_KHAZAD is not set
+-# CONFIG_CRYPTO_SALSA20 is not set
+-# CONFIG_CRYPTO_SEED is not set
+-# CONFIG_CRYPTO_SERPENT is not set
+-# CONFIG_CRYPTO_TEA is not set
+-# CONFIG_CRYPTO_TWOFISH is not set
++CONFIG_CRYPTO_FCRYPT=m
++CONFIG_CRYPTO_KHAZAD=m
++CONFIG_CRYPTO_SALSA20=m
++CONFIG_CRYPTO_SEED=m
++CONFIG_CRYPTO_SERPENT=m
++CONFIG_CRYPTO_TEA=m
++CONFIG_CRYPTO_TWOFISH=m
++CONFIG_CRYPTO_TWOFISH_COMMON=m
+
+ #
+ # Compression
+ #
+-# CONFIG_CRYPTO_DEFLATE is not set
+-# CONFIG_CRYPTO_LZO is not set
++CONFIG_CRYPTO_DEFLATE=y
++# CONFIG_CRYPTO_ZLIB is not set
++CONFIG_CRYPTO_LZO=y
++
++#
++# Random Number Generation
++#
++CONFIG_CRYPTO_ANSI_CPRNG=m
+ CONFIG_CRYPTO_HW=y
++CONFIG_BINARY_PRINTF=y
+
+ #
+ # Library routines
+ #
+ CONFIG_BITREVERSE=y
+-# CONFIG_GENERIC_FIND_FIRST_BIT is not set
+-# CONFIG_GENERIC_FIND_NEXT_BIT is not set
++CONFIG_GENERIC_FIND_LAST_BIT=y
+ CONFIG_CRC_CCITT=y
+-# CONFIG_CRC16 is not set
+-# CONFIG_CRC_T10DIF is not set
+-# CONFIG_CRC_ITU_T is not set
++CONFIG_CRC16=y
++CONFIG_CRC_T10DIF=y
++CONFIG_CRC_ITU_T=y
+ CONFIG_CRC32=y
+-# CONFIG_CRC7 is not set
++CONFIG_CRC7=y
+ CONFIG_LIBCRC32C=y
+ CONFIG_ZLIB_INFLATE=y
+ CONFIG_ZLIB_DEFLATE=y
+-CONFIG_PLIST=y
++CONFIG_LZO_COMPRESS=y
++CONFIG_LZO_DECOMPRESS=y
++CONFIG_DECOMPRESS_GZIP=y
++CONFIG_TEXTSEARCH=y
++CONFIG_TEXTSEARCH_KMP=m
++CONFIG_TEXTSEARCH_BM=m
++CONFIG_TEXTSEARCH_FSM=m
+ CONFIG_HAS_IOMEM=y
+ CONFIG_HAS_IOPORT=y
+ CONFIG_HAS_DMA=y
++CONFIG_NLATTR=y
+--
+1.6.6.1
+
diff --git a/recipes/linux/linux-omap-psp-2.6.32/0010-board-omap3beagle-update-omap34xxcam-to-more-recent-.patch b/recipes/linux/linux-omap-psp-2.6.32/0010-board-omap3beagle-update-omap34xxcam-to-more-recent-.patch
deleted file mode 100644
index 99a1f99afc..0000000000
--- a/recipes/linux/linux-omap-psp-2.6.32/0010-board-omap3beagle-update-omap34xxcam-to-more-recent-.patch
+++ /dev/null
@@ -1,84 +0,0 @@
-From 035bb20e5f119fab09686b30d9d57979462bbca6 Mon Sep 17 00:00:00 2001
-From: Koen Kooi <k-kooi@ti.com>
-Date: Thu, 11 Feb 2010 22:59:19 +0100
-Subject: [PATCH 10/42] board-omap3beagle: update omap34xxcam to more recent v4l-int-device-api
-
----
- arch/arm/mach-omap2/board-omap3beagle.c | 20 +++++++++++---------
- 1 files changed, 11 insertions(+), 9 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
-index 91d835a..d09a676 100644
---- a/arch/arm/mach-omap2/board-omap3beagle.c
-+++ b/arch/arm/mach-omap2/board-omap3beagle.c
-@@ -461,6 +461,7 @@ static struct isp_interface_config mt9t111_if_config = {
- .strobe = 0x0,
- .prestrobe = 0x0,
- .shutter = 0x0,
-+ .wait_hs_vs = 2,
- .u.par.par_bridge = 0x1,
- .u.par.par_clk_pol = 0x0,
- };
-@@ -513,14 +514,13 @@ static int mt9t111_ifparm(struct v4l2_ifparm *p)
- return 0;
- }
-
--#if defined(CONFIG_VIDEO_OMAP3_CAM) || defined(CONFIG_VIDEO_OMAP3_CAM_MODULE)
-+#if defined(CONFIG_VIDEO_OMAP3)
- static struct omap34xxcam_hw_config mt9t111_decoder_hwc = {
- .dev_index = 0,
- .dev_minor = 0,
- .dev_type = OMAP34XXCAM_SLAVE_SENSOR,
-- .u.sensor.xclk = OMAP34XXCAM_XCLK_NONE,
- .u.sensor.sensor_isp = 1,
--};
-+ .u.sensor.capture_mem = PAGE_ALIGN(2048*1536*2*4),};
- #endif
-
- /**
-@@ -530,16 +530,16 @@ static struct omap34xxcam_hw_config mt9t111_decoder_hwc = {
- *
- * @return result of operation - 0 is success
- */
--static int mt9t111_set_prv_data(void *priv)
-+static int mt9t111_set_prv_data(struct v4l2_int_device *s, void *priv)
- {
--#if defined(CONFIG_VIDEO_OMAP3_CAM) || defined(CONFIG_VIDEO_OMAP3_CAM_MODULE)
-+#if defined(CONFIG_VIDEO_OMAP3)
- struct omap34xxcam_hw_config *hwc = priv;
-
- if (priv == NULL)
- return -EINVAL;
-
- hwc->u.sensor.sensor_isp = mt9t111_decoder_hwc.u.sensor.sensor_isp;
-- hwc->u.sensor.xclk = mt9t111_decoder_hwc.u.sensor.xclk;
-+ hwc->u.sensor.capture_mem = mt9t111_decoder_hwc.u.sensor.capture_mem;
- hwc->dev_index = mt9t111_decoder_hwc.dev_index;
- hwc->dev_minor = mt9t111_decoder_hwc.dev_minor;
- hwc->dev_type = mt9t111_decoder_hwc.dev_type;
-@@ -556,8 +556,10 @@ static int mt9t111_set_prv_data(void *priv)
- *
- * @return result of operation - 0 is success
- */
--static int mt9t111_power_set(enum v4l2_power power)
-+static int mt9t111_power_set(struct v4l2_int_device *s, enum v4l2_power power)
- {
-+ struct omap34xxcam_videodev *vdev = s->u.slave->master->priv;
-+
- switch (power) {
- case V4L2_POWER_OFF:
- /* Disable mux for TVP5146 decoder data path */
-@@ -573,8 +575,8 @@ static int mt9t111_power_set(enum v4l2_power power)
- // if (omap3evmdc_set_mux(MUX_CAMERA_SENSOR, ENABLE_MUX))
- // return -ENODEV;
-
--#if defined(CONFIG_VIDEO_OMAP3_CAM) || defined(CONFIG_VIDEO_OMAP3_CAM_MODULE)
-- isp_configure_interface(&mt9t111_if_config);
-+#if defined(CONFIG_VIDEO_OMAP3)
-+ isp_configure_interface(vdev->cam->isp, &mt9t111_if_config);
- #endif
- break;
-
---
-1.6.6.1
-
diff --git a/recipes/linux/linux-omap-psp-2.6.32/0011-ASoC-enable-audio-capture-by-default-for-twl4030.patch b/recipes/linux/linux-omap-psp-2.6.32/0011-ASoC-enable-audio-capture-by-default-for-twl4030.patch
index 40a51c0851..d5038dcce9 100644
--- a/recipes/linux/linux-omap-psp-2.6.32/0011-ASoC-enable-audio-capture-by-default-for-twl4030.patch
+++ b/recipes/linux/linux-omap-psp-2.6.32/0011-ASoC-enable-audio-capture-by-default-for-twl4030.patch
@@ -1,7 +1,7 @@
-From d9be2e8e3592ba85c04966ece2a5b9de0db0b4a4 Mon Sep 17 00:00:00 2001
+From a27b4854330f9f7430c757bd5b4476fb85bae6c6 Mon Sep 17 00:00:00 2001
From: Steve Sakoman <steve@sakoman.com>
Date: Thu, 17 Dec 2009 12:45:20 -0800
-Subject: [PATCH 11/42] ASoC: enable audio capture by default for twl4030
+Subject: [PATCH 11/43] ASoC: enable audio capture by default for twl4030
---
sound/soc/codecs/twl4030.c | 4 ++--
diff --git a/recipes/linux/linux-omap-psp-2.6.32/0012-MTD-NAND-omap2-proper-fix-for-subpage-read-ECC-error.patch b/recipes/linux/linux-omap-psp-2.6.32/0012-MTD-NAND-omap2-proper-fix-for-subpage-read-ECC-error.patch
index 0637d5b7bd..325cb366c2 100644
--- a/recipes/linux/linux-omap-psp-2.6.32/0012-MTD-NAND-omap2-proper-fix-for-subpage-read-ECC-error.patch
+++ b/recipes/linux/linux-omap-psp-2.6.32/0012-MTD-NAND-omap2-proper-fix-for-subpage-read-ECC-error.patch
@@ -1,7 +1,7 @@
-From 180b861858043d6fda4eada1eec16f1340179258 Mon Sep 17 00:00:00 2001
+From 6ea180bb9b73b36b5b3ff47fdd1d3d0194ee03c1 Mon Sep 17 00:00:00 2001
From: Steve Sakoman <steve@sakoman.com>
Date: Thu, 31 Dec 2009 07:05:02 -0800
-Subject: [PATCH 12/42] MTD: NAND: omap2: proper fix for subpage read ECC errors
+Subject: [PATCH 12/43] MTD: NAND: omap2: proper fix for subpage read ECC errors
---
drivers/mtd/nand/omap2.c | 11 +++++++----
diff --git a/recipes/linux/linux-omap-psp-2.6.32/0013-OMAP3630-DSS2-Enable-Pre-Multiplied-Alpha-Support.patch b/recipes/linux/linux-omap-psp-2.6.32/0013-OMAP3630-DSS2-Enable-Pre-Multiplied-Alpha-Support.patch
index f415c5b079..329076b0bf 100644
--- a/recipes/linux/linux-omap-psp-2.6.32/0013-OMAP3630-DSS2-Enable-Pre-Multiplied-Alpha-Support.patch
+++ b/recipes/linux/linux-omap-psp-2.6.32/0013-OMAP3630-DSS2-Enable-Pre-Multiplied-Alpha-Support.patch
@@ -1,7 +1,7 @@
-From 4a8af93ef5fc14877be52716794db928ce7de34a Mon Sep 17 00:00:00 2001
+From 83006da4037e890d5c4eec9f5fe0e8d0ea4af44b Mon Sep 17 00:00:00 2001
From: Sudeep Basavaraj <sudeep.basavaraj@ti.com>
Date: Tue, 5 Jan 2010 18:58:18 +0530
-Subject: [PATCH 13/42] OMAP3630:DSS2:Enable Pre-Multiplied Alpha Support
+Subject: [PATCH 13/43] OMAP3630:DSS2:Enable Pre-Multiplied Alpha Support
Enables dss to process color formats with pre-mulitplied alpha values.
With this we can have alpha values defined for each pixel
diff --git a/recipes/linux/linux-omap-psp-2.6.32/0014-DSS2-add-bootarg-for-selecting-svideo-or-composite-f.patch b/recipes/linux/linux-omap-psp-2.6.32/0014-DSS2-add-bootarg-for-selecting-svideo-or-composite-f.patch
index 4e71495293..f8c939264d 100644
--- a/recipes/linux/linux-omap-psp-2.6.32/0014-DSS2-add-bootarg-for-selecting-svideo-or-composite-f.patch
+++ b/recipes/linux/linux-omap-psp-2.6.32/0014-DSS2-add-bootarg-for-selecting-svideo-or-composite-f.patch
@@ -1,7 +1,7 @@
-From a5b124082b2c7b96ccf58db7eb2137a759332471 Mon Sep 17 00:00:00 2001
+From da46218c8e601d44ab125bd7dc27af93a8b21e5b Mon Sep 17 00:00:00 2001
From: Steve Sakoman <steve@sakoman.com>
Date: Tue, 19 Jan 2010 21:19:15 -0800
-Subject: [PATCH 14/42] DSS2: add bootarg for selecting svideo or composite for tv output
+Subject: [PATCH 14/43] DSS2: add bootarg for selecting svideo or composite for tv output
also add pal-16 and ntsc-16 omapfb.mode settings for 16bpp
---
@@ -10,7 +10,7 @@ also add pal-16 and ntsc-16 omapfb.mode settings for 16bpp
2 files changed, 31 insertions(+), 1 deletions(-)
diff --git a/drivers/video/omap2/dss/venc.c b/drivers/video/omap2/dss/venc.c
-index 749a5a0..14aa721 100644
+index 1127e85..53fa54e 100644
--- a/drivers/video/omap2/dss/venc.c
+++ b/drivers/video/omap2/dss/venc.c
@@ -87,6 +87,11 @@
@@ -25,7 +25,7 @@ index 749a5a0..14aa721 100644
struct venc_config {
u32 f_control;
u32 vidout_ctrl;
-@@ -409,6 +414,23 @@ static int venc_panel_probe(struct omap_dss_device *dssdev)
+@@ -430,6 +435,23 @@ static int venc_panel_probe(struct omap_dss_device *dssdev)
{
dssdev->panel.timings = omap_dss_pal_timings;
@@ -50,10 +50,10 @@ index 749a5a0..14aa721 100644
}
diff --git a/drivers/video/omap2/omapfb/omapfb-main.c b/drivers/video/omap2/omapfb/omapfb-main.c
-index 340ab51..c2c9663 100644
+index ef29983..015831b 100644
--- a/drivers/video/omap2/omapfb/omapfb-main.c
+++ b/drivers/video/omap2/omapfb/omapfb-main.c
-@@ -1988,7 +1988,15 @@ static int omapfb_mode_to_timings(const char *mode_str,
+@@ -1961,7 +1961,15 @@ static int omapfb_mode_to_timings(const char *mode_str,
int r;
#ifdef CONFIG_OMAP2_DSS_VENC
diff --git a/recipes/linux/linux-omap-psp-2.6.32/0015-ISP-add-some-more-from-Leopard-imaging-patch.patch b/recipes/linux/linux-omap-psp-2.6.32/0015-ISP-add-some-more-from-Leopard-imaging-patch.patch
index 62333a35f0..92041048fb 100644
--- a/recipes/linux/linux-omap-psp-2.6.32/0015-ISP-add-some-more-from-Leopard-imaging-patch.patch
+++ b/recipes/linux/linux-omap-psp-2.6.32/0015-ISP-add-some-more-from-Leopard-imaging-patch.patch
@@ -1,7 +1,7 @@
-From 876c73557fcf9f31b4d8c23b163fd7675164033d Mon Sep 17 00:00:00 2001
+From 77eaef7dfa42ecf2fbf66e95bc1e4642bf52c989 Mon Sep 17 00:00:00 2001
From: Koen Kooi <k-kooi@ti.com>
Date: Thu, 11 Feb 2010 21:34:00 +0100
-Subject: [PATCH 15/42] ISP: add some more from Leopard imaging patch
+Subject: [PATCH 15/43] ISP: add some more from Leopard imaging patch
---
drivers/media/video/isp/isppreview.c | 16 ++++++++-
diff --git a/recipes/linux/linux-omap-psp-2.6.32/0016-ARM-OMAP-Overo-Add-support-for-second-ethernet-port.patch b/recipes/linux/linux-omap-psp-2.6.32/0016-ARM-OMAP-Overo-Add-support-for-second-ethernet-port.patch
index 16d37e0c99..ea032e2985 100644
--- a/recipes/linux/linux-omap-psp-2.6.32/0016-ARM-OMAP-Overo-Add-support-for-second-ethernet-port.patch
+++ b/recipes/linux/linux-omap-psp-2.6.32/0016-ARM-OMAP-Overo-Add-support-for-second-ethernet-port.patch
@@ -1,7 +1,7 @@
-From d28b6bd38dd25494d088a0de1a25e7154e11dab4 Mon Sep 17 00:00:00 2001
+From 0f494c3545ebbc375a7241ede3aa0db33295bebe Mon Sep 17 00:00:00 2001
From: Steve Sakoman <sakoman@gmail.com>
Date: Tue, 15 Dec 2009 14:59:42 -0800
-Subject: [PATCH 16/42] ARM: OMAP: Overo: Add support for second ethernet port
+Subject: [PATCH 16/43] ARM: OMAP: Overo: Add support for second ethernet port
Signed-off-by: Steve Sakoman <sakoman@gmail.com>
---
diff --git a/recipes/linux/linux-omap-psp-2.6.32/0017-drivers-net-smsc911x-return-ENODEV-if-device-is-not-.patch b/recipes/linux/linux-omap-psp-2.6.32/0017-drivers-net-smsc911x-return-ENODEV-if-device-is-not-.patch
index 3296d703eb..57253a9bb3 100644
--- a/recipes/linux/linux-omap-psp-2.6.32/0017-drivers-net-smsc911x-return-ENODEV-if-device-is-not-.patch
+++ b/recipes/linux/linux-omap-psp-2.6.32/0017-drivers-net-smsc911x-return-ENODEV-if-device-is-not-.patch
@@ -1,7 +1,7 @@
-From 68ba8c73c3b889e05f7664a35d89ee22776ff5fe Mon Sep 17 00:00:00 2001
+From e6b2441d2d92a62cf30dfde9451bdaebf6a2cee0 Mon Sep 17 00:00:00 2001
From: Steve Sakoman <sakoman@gmail.com>
Date: Tue, 15 Dec 2009 15:17:44 -0800
-Subject: [PATCH 17/42] drivers: net: smsc911x: return ENODEV if device is not found
+Subject: [PATCH 17/43] drivers: net: smsc911x: return ENODEV if device is not found
Signed-off-by: Steve Sakoman <sakoman@gmail.com>
---
diff --git a/recipes/linux/linux-omap-psp-2.6.32/0018-drivers-input-touchscreen-ads7846-return-ENODEV-if-d.patch b/recipes/linux/linux-omap-psp-2.6.32/0018-drivers-input-touchscreen-ads7846-return-ENODEV-if-d.patch
index cc0f2f0e16..a90245abd3 100644
--- a/recipes/linux/linux-omap-psp-2.6.32/0018-drivers-input-touchscreen-ads7846-return-ENODEV-if-d.patch
+++ b/recipes/linux/linux-omap-psp-2.6.32/0018-drivers-input-touchscreen-ads7846-return-ENODEV-if-d.patch
@@ -1,7 +1,7 @@
-From ea0fbdecf6d630d93ce03e64fb70c4740ed08f56 Mon Sep 17 00:00:00 2001
+From 551a2a661a3b55820560a30fb19c6df10086b91f Mon Sep 17 00:00:00 2001
From: Steve Sakoman <sakoman@gmail.com>
Date: Tue, 15 Dec 2009 15:24:10 -0800
-Subject: [PATCH 18/42] drivers: input: touchscreen: ads7846: return ENODEV if device is not found
+Subject: [PATCH 18/43] drivers: input: touchscreen: ads7846: return ENODEV if device is not found
Signed-off-by: Steve Sakoman <sakoman@gmail.com>
---
diff --git a/recipes/linux/linux-omap-psp-2.6.32/0019-drivers-mfd-add-twl4030-madc-driver.patch b/recipes/linux/linux-omap-psp-2.6.32/0019-drivers-mfd-add-twl4030-madc-driver.patch
index b6b7a3b208..09c62a7478 100644
--- a/recipes/linux/linux-omap-psp-2.6.32/0019-drivers-mfd-add-twl4030-madc-driver.patch
+++ b/recipes/linux/linux-omap-psp-2.6.32/0019-drivers-mfd-add-twl4030-madc-driver.patch
@@ -1,7 +1,7 @@
-From 06188f0f2fbdfb68844585eefe68dc5b0b49499a Mon Sep 17 00:00:00 2001
+From c9ff40a9288c0cbac9d10b14ae05db1bdba71a53 Mon Sep 17 00:00:00 2001
From: Steve Sakoman <steve@sakoman.com>
Date: Thu, 17 Dec 2009 14:19:34 -0800
-Subject: [PATCH 19/42] drivers: mfd: add twl4030 madc driver
+Subject: [PATCH 19/43] drivers: mfd: add twl4030 madc driver
---
drivers/mfd/Kconfig | 21 ++
diff --git a/recipes/linux/linux-omap-psp-2.6.32/0020-ARM-OMAP-Add-missing-twl4030-madc-header-file.patch b/recipes/linux/linux-omap-psp-2.6.32/0020-ARM-OMAP-Add-missing-twl4030-madc-header-file.patch
index d2ab973833..c92d46ab81 100644
--- a/recipes/linux/linux-omap-psp-2.6.32/0020-ARM-OMAP-Add-missing-twl4030-madc-header-file.patch
+++ b/recipes/linux/linux-omap-psp-2.6.32/0020-ARM-OMAP-Add-missing-twl4030-madc-header-file.patch
@@ -1,7 +1,7 @@
-From c5e422625ca688666e11e34184199bc9925db2e6 Mon Sep 17 00:00:00 2001
+From 9b4c740531916992ba11be300250d51e2e2a1638 Mon Sep 17 00:00:00 2001
From: Steve Sakoman <steve@sakoman.com>
Date: Thu, 17 Dec 2009 15:54:58 -0800
-Subject: [PATCH 20/42] ARM: OMAP: Add missing twl4030 madc header file
+Subject: [PATCH 20/43] ARM: OMAP: Add missing twl4030 madc header file
---
include/linux/i2c/twl4030-madc.h | 130 ++++++++++++++++++++++++++++++++++++++
diff --git a/recipes/linux/linux-omap-psp-2.6.32/0021-ARM-OMAP-Add-twl4030-madc-support-to-Overo.patch b/recipes/linux/linux-omap-psp-2.6.32/0021-ARM-OMAP-Add-twl4030-madc-support-to-Overo.patch
index 4eee0607b2..98a1b65d6e 100644
--- a/recipes/linux/linux-omap-psp-2.6.32/0021-ARM-OMAP-Add-twl4030-madc-support-to-Overo.patch
+++ b/recipes/linux/linux-omap-psp-2.6.32/0021-ARM-OMAP-Add-twl4030-madc-support-to-Overo.patch
@@ -1,7 +1,7 @@
-From 301b3b310aafd2ce4d6daa64eabf32729885ba7d Mon Sep 17 00:00:00 2001
+From 9957678090f6e4bee24dca76b668b4daec02d88c Mon Sep 17 00:00:00 2001
From: Steve Sakoman <steve@sakoman.com>
Date: Thu, 17 Dec 2009 14:27:15 -0800
-Subject: [PATCH 21/42] ARM: OMAP: Add twl4030 madc support to Overo
+Subject: [PATCH 21/43] ARM: OMAP: Add twl4030 madc support to Overo
---
arch/arm/mach-omap2/board-overo.c | 5 +++++
diff --git a/recipes/linux/linux-omap-psp-2.6.32/0022-ARM-OMAP-Add-twl4030-madc-support-to-Beagle.patch b/recipes/linux/linux-omap-psp-2.6.32/0022-ARM-OMAP-Add-twl4030-madc-support-to-Beagle.patch
index a7708150d1..b77ebf1e18 100644
--- a/recipes/linux/linux-omap-psp-2.6.32/0022-ARM-OMAP-Add-twl4030-madc-support-to-Beagle.patch
+++ b/recipes/linux/linux-omap-psp-2.6.32/0022-ARM-OMAP-Add-twl4030-madc-support-to-Beagle.patch
@@ -1,17 +1,17 @@
-From 6b5bbbc27f497023e7897c9a8d378a8050644be9 Mon Sep 17 00:00:00 2001
+From 1e7a9e815e97782f4aa69b27822fe1664faf7fd4 Mon Sep 17 00:00:00 2001
From: Steve Sakoman <steve@sakoman.com>
Date: Thu, 17 Dec 2009 14:32:36 -0800
-Subject: [PATCH 22/42] ARM: OMAP: Add twl4030 madc support to Beagle
+Subject: [PATCH 22/43] ARM: OMAP: Add twl4030 madc support to Beagle
---
arch/arm/mach-omap2/board-omap3beagle.c | 5 +++++
1 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
-index d09a676..4b7ed8a 100644
+index b3c8cb7..dd830b1 100644
--- a/arch/arm/mach-omap2/board-omap3beagle.c
+++ b/arch/arm/mach-omap2/board-omap3beagle.c
-@@ -438,6 +438,10 @@ static struct twl4030_codec_data beagle_codec_data = {
+@@ -473,6 +473,10 @@ static struct twl4030_codec_data beagle_codec_data = {
.audio = &beagle_audio_data,
};
@@ -22,7 +22,7 @@ index d09a676..4b7ed8a 100644
static struct twl4030_platform_data beagle_twldata = {
.irq_base = TWL4030_IRQ_BASE,
.irq_end = TWL4030_IRQ_END,
-@@ -446,6 +450,7 @@ static struct twl4030_platform_data beagle_twldata = {
+@@ -481,6 +485,7 @@ static struct twl4030_platform_data beagle_twldata = {
.usb = &beagle_usb_data,
.gpio = &beagle_gpio_data,
.codec = &beagle_codec_data,
diff --git a/recipes/linux/linux-omap-psp-2.6.32/0023-netdev-rt73usb-add-vendor-device-ID-for-Ceiva-Wirele.patch b/recipes/linux/linux-omap-psp-2.6.32/0023-netdev-rt73usb-add-vendor-device-ID-for-Ceiva-Wirele.patch
index f1504f4153..bb6bd7598b 100644
--- a/recipes/linux/linux-omap-psp-2.6.32/0023-netdev-rt73usb-add-vendor-device-ID-for-Ceiva-Wirele.patch
+++ b/recipes/linux/linux-omap-psp-2.6.32/0023-netdev-rt73usb-add-vendor-device-ID-for-Ceiva-Wirele.patch
@@ -1,7 +1,7 @@
-From b0247dd9c5004da683efeab8466f4ea2e2b133aa Mon Sep 17 00:00:00 2001
+From b7fda334f7a394647422f58b91b4890dc72b1c30 Mon Sep 17 00:00:00 2001
From: Steve Sakoman <steve@sakoman.com>
Date: Tue, 19 Jan 2010 20:00:46 -0800
-Subject: [PATCH 23/42] netdev: rt73usb - add vendor/device ID for Ceiva Wireless PartNo 81726-00702
+Subject: [PATCH 23/43] netdev: rt73usb - add vendor/device ID for Ceiva Wireless PartNo 81726-00702
---
drivers/net/wireless/rt2x00/rt73usb.c | 2 ++
diff --git a/recipes/linux/linux-omap-psp-2.6.32/0024-mmc-don-t-display-single-block-read-console-messages.patch b/recipes/linux/linux-omap-psp-2.6.32/0024-mmc-don-t-display-single-block-read-console-messages.patch
index 15be999f1c..20b6ca7be8 100644
--- a/recipes/linux/linux-omap-psp-2.6.32/0024-mmc-don-t-display-single-block-read-console-messages.patch
+++ b/recipes/linux/linux-omap-psp-2.6.32/0024-mmc-don-t-display-single-block-read-console-messages.patch
@@ -1,7 +1,7 @@
-From 0fa55ca392a4ffdf6a89075683dff00191656e6f Mon Sep 17 00:00:00 2001
+From 7f87d1531cfdbf4fcd59bc8502e45d3aea8c8eba Mon Sep 17 00:00:00 2001
From: Steve Sakoman <steve@sakoman.com>
Date: Mon, 4 Jan 2010 19:20:25 -0800
-Subject: [PATCH 24/42] mmc: don't display single block read console messages
+Subject: [PATCH 24/43] mmc: don't display single block read console messages
mmc: don't display single block read console messages
---
diff --git a/recipes/linux/linux-omap-psp-2.6.32/0025-ARM-OMAP2-mmc-twl4030-move-clock-input-selection-pri.patch b/recipes/linux/linux-omap-psp-2.6.32/0025-ARM-OMAP2-mmc-twl4030-move-clock-input-selection-pri.patch
index 521948392c..2272cb3312 100644
--- a/recipes/linux/linux-omap-psp-2.6.32/0025-ARM-OMAP2-mmc-twl4030-move-clock-input-selection-pri.patch
+++ b/recipes/linux/linux-omap-psp-2.6.32/0025-ARM-OMAP2-mmc-twl4030-move-clock-input-selection-pri.patch
@@ -1,7 +1,7 @@
-From e700d77899105c0c81b639256225cd2ce986ce07 Mon Sep 17 00:00:00 2001
+From f715b7b9f49e4a65ba5370cb36ce6f2c7830d1bc Mon Sep 17 00:00:00 2001
From: Steve Sakoman <steve@sakoman.com>
Date: Sun, 24 Jan 2010 09:33:56 -0800
-Subject: [PATCH 25/42] ARM: OMAP2: mmc-twl4030: move clock input selection prior to vcc test
+Subject: [PATCH 25/43] ARM: OMAP2: mmc-twl4030: move clock input selection prior to vcc test
otherwise it is not executed on systems that use non-twl regulators
---
diff --git a/recipes/linux/linux-omap-psp-2.6.32/0026-board-overo-add-PM-code-and-sync-with-http-www.sakom.patch b/recipes/linux/linux-omap-psp-2.6.32/0026-board-overo-add-PM-code-and-sync-with-http-www.sakom.patch
index 6869ba696c..8977495a67 100644
--- a/recipes/linux/linux-omap-psp-2.6.32/0026-board-overo-add-PM-code-and-sync-with-http-www.sakom.patch
+++ b/recipes/linux/linux-omap-psp-2.6.32/0026-board-overo-add-PM-code-and-sync-with-http-www.sakom.patch
@@ -1,7 +1,7 @@
-From c90f11536d0c5e509dd542e356b2698fc90ed1b9 Mon Sep 17 00:00:00 2001
+From caa6d93d406fa836c8af84268f0ed7391434f1ee Mon Sep 17 00:00:00 2001
From: Koen Kooi <koen@dominion.thruhere.net>
Date: Sun, 14 Feb 2010 12:52:02 +0100
-Subject: [PATCH 26/42] board-overo: add PM code and sync with http://www.sakoman.com/cgi-bin/gitweb.cgi?p=linux-omap-2.6.git;a=shortlog;h=refs/heads/omap3-2.6.32
+Subject: [PATCH 26/43] board-overo: add PM code and sync with http://www.sakoman.com/cgi-bin/gitweb.cgi?p=linux-omap-2.6.git;a=shortlog;h=refs/heads/omap3-2.6.32
---
arch/arm/mach-omap2/board-overo.c | 274 ++++++++++++++++++++++++++++++++-----
diff --git a/recipes/linux/linux-omap-psp-2.6.32/0027-twl4030-madc-adjust-for-twl4030-twl-api-changes.patch b/recipes/linux/linux-omap-psp-2.6.32/0027-twl4030-madc-adjust-for-twl4030-twl-api-changes.patch
index 93358e9e19..0c494751cf 100644
--- a/recipes/linux/linux-omap-psp-2.6.32/0027-twl4030-madc-adjust-for-twl4030-twl-api-changes.patch
+++ b/recipes/linux/linux-omap-psp-2.6.32/0027-twl4030-madc-adjust-for-twl4030-twl-api-changes.patch
@@ -1,7 +1,7 @@
-From bd6157d8970cda63db9986ceadb16f3e8f4c22ef Mon Sep 17 00:00:00 2001
+From f308badab37377503a387db2c0153c0a9c71ff7f Mon Sep 17 00:00:00 2001
From: Koen Kooi <koen@dominion.thruhere.net>
Date: Mon, 15 Feb 2010 14:20:51 +0100
-Subject: [PATCH 27/42] twl4030-madc: adjust for twl4030 -> twl api changes
+Subject: [PATCH 27/43] twl4030-madc: adjust for twl4030 -> twl api changes
---
drivers/mfd/twl4030-madc.c | 18 +++++++++---------
diff --git a/recipes/linux/linux-omap-psp-2.6.32/0028-OMAP-DSS2-Re-add-support-for-Samsung-lte430wq-f0c-pa.patch b/recipes/linux/linux-omap-psp-2.6.32/0028-OMAP-DSS2-Re-add-support-for-Samsung-lte430wq-f0c-pa.patch
index 7d97013b8d..1905833e24 100644
--- a/recipes/linux/linux-omap-psp-2.6.32/0028-OMAP-DSS2-Re-add-support-for-Samsung-lte430wq-f0c-pa.patch
+++ b/recipes/linux/linux-omap-psp-2.6.32/0028-OMAP-DSS2-Re-add-support-for-Samsung-lte430wq-f0c-pa.patch
@@ -1,7 +1,7 @@
-From 7bf370db8ac5fa45290c3116c9f02271d9b40f2f Mon Sep 17 00:00:00 2001
+From 821a796dba3b5f1745d3ff990b14995bd691a8e3 Mon Sep 17 00:00:00 2001
From: Koen Kooi <koen@dominion.thruhere.net>
Date: Mon, 15 Feb 2010 14:38:00 +0100
-Subject: [PATCH 28/42] OMAP: DSS2: (Re)add support for Samsung lte430wq-f0c panel
+Subject: [PATCH 28/43] OMAP: DSS2: (Re)add support for Samsung lte430wq-f0c panel
---
drivers/video/omap2/displays/Kconfig | 6 +
diff --git a/recipes/linux/linux-omap-psp-2.6.32/0029-OMAP-DSS2-Add-support-for-LG-Philips-LB035Q02-panel.patch b/recipes/linux/linux-omap-psp-2.6.32/0029-OMAP-DSS2-Add-support-for-LG-Philips-LB035Q02-panel.patch
index 6dfafb6e7d..97aa09ceda 100644
--- a/recipes/linux/linux-omap-psp-2.6.32/0029-OMAP-DSS2-Add-support-for-LG-Philips-LB035Q02-panel.patch
+++ b/recipes/linux/linux-omap-psp-2.6.32/0029-OMAP-DSS2-Add-support-for-LG-Philips-LB035Q02-panel.patch
@@ -1,7 +1,7 @@
-From f3743c3c16d3528d888e4315194c9eca9ba95b04 Mon Sep 17 00:00:00 2001
+From d65c7d454ff43f8955f23f324a24adf7e2d4edff Mon Sep 17 00:00:00 2001
From: Steve Sakoman <steve@sakoman.com>
Date: Thu, 17 Dec 2009 15:05:30 -0800
-Subject: [PATCH 29/42] OMAP: DSS2: Add support for LG Philips LB035Q02 panel
+Subject: [PATCH 29/43] OMAP: DSS2: Add support for LG Philips LB035Q02 panel
---
drivers/video/omap2/displays/Kconfig | 6 +
diff --git a/recipes/linux/linux-omap-psp-2.6.32/0030-Fix-for-bus-width-which-improves-SD-card-s-peformanc.patch b/recipes/linux/linux-omap-psp-2.6.32/0030-Fix-for-bus-width-which-improves-SD-card-s-peformanc.patch
index c91adc1658..5e842cfa6b 100644
--- a/recipes/linux/linux-omap-psp-2.6.32/0030-Fix-for-bus-width-which-improves-SD-card-s-peformanc.patch
+++ b/recipes/linux/linux-omap-psp-2.6.32/0030-Fix-for-bus-width-which-improves-SD-card-s-peformanc.patch
@@ -1,7 +1,7 @@
-From 02cffb32ff4c48c1e23be720aae84a7f3496d2cc Mon Sep 17 00:00:00 2001
+From c6c2fc6a66a56256bb2fe015fb07b062666ee246 Mon Sep 17 00:00:00 2001
From: Kishore Kadiyala <kishore.kadiyala@ti.com>
Date: Wed, 17 Feb 2010 19:34:47 +0530
-Subject: [PATCH 30/42] Fix for bus width which improves SD card's peformance.
+Subject: [PATCH 30/43] Fix for bus width which improves SD card's peformance.
This patch fixes bus width which improves peformance for SD cards.
OMAP-MMC controller's can support maximum bus width of '8'.
diff --git a/recipes/linux/linux-omap-psp-2.6.32/0031-ARM-VFP-add-support-to-sync-the-VFP-state-of-the-cur.patch b/recipes/linux/linux-omap-psp-2.6.32/0031-ARM-VFP-add-support-to-sync-the-VFP-state-of-the-cur.patch
index 8bebc455ca..11a418400d 100644
--- a/recipes/linux/linux-omap-psp-2.6.32/0031-ARM-VFP-add-support-to-sync-the-VFP-state-of-the-cur.patch
+++ b/recipes/linux/linux-omap-psp-2.6.32/0031-ARM-VFP-add-support-to-sync-the-VFP-state-of-the-cur.patch
@@ -1,7 +1,7 @@
-From 06408a83f74dde1c827749912fa53c7118f84822 Mon Sep 17 00:00:00 2001
+From d3c14324b23c6cef8452a9a6037b6ec2a6f07d6e Mon Sep 17 00:00:00 2001
From: Imre Deak <imre.deak@nokia.com>
Date: Thu, 4 Feb 2010 21:38:02 +0200
-Subject: [PATCH 31/42] ARM: VFP: add support to sync the VFP state of the current thread
+Subject: [PATCH 31/43] ARM: VFP: add support to sync the VFP state of the current thread
ARM: VFP: add support to sync the VFP state of the current thread
diff --git a/recipes/linux/linux-omap-psp-2.6.32/0032-ARM-VFP-preserve-the-HW-context-when-calling-signal-.patch b/recipes/linux/linux-omap-psp-2.6.32/0032-ARM-VFP-preserve-the-HW-context-when-calling-signal-.patch
index 7aaf626397..8426ce3086 100644
--- a/recipes/linux/linux-omap-psp-2.6.32/0032-ARM-VFP-preserve-the-HW-context-when-calling-signal-.patch
+++ b/recipes/linux/linux-omap-psp-2.6.32/0032-ARM-VFP-preserve-the-HW-context-when-calling-signal-.patch
@@ -1,7 +1,7 @@
-From 11cceffa4e4c2e6971fde3ec8a978d267d5e9805 Mon Sep 17 00:00:00 2001
+From 59c9e3b77e82affd2ab0233af06a47473f991996 Mon Sep 17 00:00:00 2001
From: Imre Deak <imre.deak@nokia.com>
Date: Thu, 4 Feb 2010 21:38:30 +0200
-Subject: [PATCH 32/42] ARM: VFP: preserve the HW context when calling signal handlers
+Subject: [PATCH 32/43] ARM: VFP: preserve the HW context when calling signal handlers
ARM: VFP: preserve the HW context when calling signal handlers
diff --git a/recipes/linux/linux-omap-psp-2.6.32/0033-Switch-SGX-clocks-to-200MHz-on-DM37xx-OMAP36xx.patch b/recipes/linux/linux-omap-psp-2.6.32/0033-Switch-SGX-clocks-to-200MHz-on-DM37xx-OMAP36xx.patch
index 1d09dc11ba..972976d27f 100644
--- a/recipes/linux/linux-omap-psp-2.6.32/0033-Switch-SGX-clocks-to-200MHz-on-DM37xx-OMAP36xx.patch
+++ b/recipes/linux/linux-omap-psp-2.6.32/0033-Switch-SGX-clocks-to-200MHz-on-DM37xx-OMAP36xx.patch
@@ -1,7 +1,7 @@
-From 87cc235a5e1a32cc3e68f3911641ff65493b1dc3 Mon Sep 17 00:00:00 2001
+From b9e50cb8ee8ad92d71b65bd71700be1894f9e543 Mon Sep 17 00:00:00 2001
From: Prabindh Sundareson <prabu@ti.com>
Date: Wed, 3 Mar 2010 15:45:35 +0100
-Subject: [PATCH 33/42] Switch SGX clocks to 200MHz on DM37xx/OMAP36xx
+Subject: [PATCH 33/43] Switch SGX clocks to 200MHz on DM37xx/OMAP36xx
---
arch/arm/mach-omap2/clock34xx_data.c | 4 ++--
diff --git a/recipes/linux/linux-omap-psp-2.6.32/0034-modedb.c-add-proper-720p60-mode.patch b/recipes/linux/linux-omap-psp-2.6.32/0034-modedb.c-add-proper-720p60-mode.patch
index a79279a9f7..1d49fcd475 100644
--- a/recipes/linux/linux-omap-psp-2.6.32/0034-modedb.c-add-proper-720p60-mode.patch
+++ b/recipes/linux/linux-omap-psp-2.6.32/0034-modedb.c-add-proper-720p60-mode.patch
@@ -1,7 +1,7 @@
-From ad627c1708d8b68f6e9ca96f28ec8862ef02f760 Mon Sep 17 00:00:00 2001
+From fd8be8ca22b19d58202ef84cc27d0f14d2f59e2a Mon Sep 17 00:00:00 2001
From: Koen Kooi <koen@dominion.thruhere.net>
Date: Mon, 8 Mar 2010 14:38:31 +0100
-Subject: [PATCH 34/42] modedb.c: add proper 720p60 mode
+Subject: [PATCH 34/43] modedb.c: add proper 720p60 mode
---
drivers/video/modedb.c | 4 ++++
diff --git a/recipes/linux/linux-omap-psp-2.6.32/0035-RTC-add-support-for-backup-battery-recharge.patch b/recipes/linux/linux-omap-psp-2.6.32/0035-RTC-add-support-for-backup-battery-recharge.patch
index 0e37352eef..ba689c459c 100644
--- a/recipes/linux/linux-omap-psp-2.6.32/0035-RTC-add-support-for-backup-battery-recharge.patch
+++ b/recipes/linux/linux-omap-psp-2.6.32/0035-RTC-add-support-for-backup-battery-recharge.patch
@@ -1,7 +1,7 @@
-From 269749cdba3dcaf29eef58e73da0a9e032da63ca Mon Sep 17 00:00:00 2001
+From 02203232a3230c06a1bc939c92aac7e910c5d578 Mon Sep 17 00:00:00 2001
From: Steve Sakoman <steve@sakoman.com>
Date: Thu, 4 Feb 2010 12:26:22 -0800
-Subject: [PATCH 35/42] RTC: add support for backup battery recharge
+Subject: [PATCH 35/43] RTC: add support for backup battery recharge
---
drivers/rtc/rtc-twl.c | 25 +++++++++++++++++++++++++
diff --git a/recipes/linux/linux-omap-psp-2.6.32/0036-ARM-Add-prompt-for-CONFIG_ALIGNMENT_TRAP.patch b/recipes/linux/linux-omap-psp-2.6.32/0036-ARM-Add-prompt-for-CONFIG_ALIGNMENT_TRAP.patch
index 3b884deb06..dcf4ac6f12 100644
--- a/recipes/linux/linux-omap-psp-2.6.32/0036-ARM-Add-prompt-for-CONFIG_ALIGNMENT_TRAP.patch
+++ b/recipes/linux/linux-omap-psp-2.6.32/0036-ARM-Add-prompt-for-CONFIG_ALIGNMENT_TRAP.patch
@@ -1,7 +1,7 @@
-From 50343d07aaf7c8bfbd02d06261512c99ce430788 Mon Sep 17 00:00:00 2001
+From 1bd440f727d2ce1a9673489b776e38e1b4dd0521 Mon Sep 17 00:00:00 2001
From: Mans Rullgard <mans@mansr.com>
Date: Mon, 13 Oct 2008 20:32:16 +0100
-Subject: [PATCH 36/42] ARM: Add prompt for CONFIG_ALIGNMENT_TRAP
+Subject: [PATCH 36/43] ARM: Add prompt for CONFIG_ALIGNMENT_TRAP
This adds a prompt text for CONFIG_ALIGNMENT_TRAP, thus making it
visible in make *config.
diff --git a/recipes/linux/linux-omap-psp-2.6.32/0037-ARM-Print-warning-on-alignment-trap-in-kernel-mode.patch b/recipes/linux/linux-omap-psp-2.6.32/0037-ARM-Print-warning-on-alignment-trap-in-kernel-mode.patch
index 9f4c1f68db..713ab4600f 100644
--- a/recipes/linux/linux-omap-psp-2.6.32/0037-ARM-Print-warning-on-alignment-trap-in-kernel-mode.patch
+++ b/recipes/linux/linux-omap-psp-2.6.32/0037-ARM-Print-warning-on-alignment-trap-in-kernel-mode.patch
@@ -1,7 +1,7 @@
-From 9a23874151abb055225b8f019665e873bc7c5b5a Mon Sep 17 00:00:00 2001
+From f1f418ef2fd457872e4ca7da1789bcfd8f97bca8 Mon Sep 17 00:00:00 2001
From: Mans Rullgard <mans@mansr.com>
Date: Sat, 28 Mar 2009 13:21:55 +0000
-Subject: [PATCH 37/42] ARM: Print warning on alignment trap in kernel mode
+Subject: [PATCH 37/43] ARM: Print warning on alignment trap in kernel mode
Signed-off-by: Mans Rullgard <mans@mansr.com>
---
diff --git a/recipes/linux/linux-omap-psp-2.6.32/0038-ARM-Expose-some-CPU-control-registers-via-sysfs.patch b/recipes/linux/linux-omap-psp-2.6.32/0038-ARM-Expose-some-CPU-control-registers-via-sysfs.patch
index 0d2c1c63d7..e5670fc155 100644
--- a/recipes/linux/linux-omap-psp-2.6.32/0038-ARM-Expose-some-CPU-control-registers-via-sysfs.patch
+++ b/recipes/linux/linux-omap-psp-2.6.32/0038-ARM-Expose-some-CPU-control-registers-via-sysfs.patch
@@ -1,7 +1,7 @@
-From 9b88c174cfa0f861fcddd11c2e41b007ff243bd3 Mon Sep 17 00:00:00 2001
+From bbc04eff26fcd9ecb75069a62a84fa49d83811b8 Mon Sep 17 00:00:00 2001
From: Mans Rullgard <mans@mansr.com>
Date: Tue, 10 Nov 2009 00:39:21 +0000
-Subject: [PATCH 38/42] ARM: Expose some CPU control registers via sysfs
+Subject: [PATCH 38/43] ARM: Expose some CPU control registers via sysfs
This creates sysfs files under /sys/devices/system/cpu/cpuN
exposing the values of the control register, auxiliary control
diff --git a/recipes/linux/linux-omap-psp-2.6.32/0039-ARM-Add-option-to-allow-userspace-PLE-access.patch b/recipes/linux/linux-omap-psp-2.6.32/0039-ARM-Add-option-to-allow-userspace-PLE-access.patch
index a3af530ab8..e97d9d5117 100644
--- a/recipes/linux/linux-omap-psp-2.6.32/0039-ARM-Add-option-to-allow-userspace-PLE-access.patch
+++ b/recipes/linux/linux-omap-psp-2.6.32/0039-ARM-Add-option-to-allow-userspace-PLE-access.patch
@@ -1,7 +1,7 @@
-From 85392359bd3a2002b72d65d1637598c2f1e398b3 Mon Sep 17 00:00:00 2001
+From 7ba11a1ce9a6dc90dd17aeff30127217fa604ecf Mon Sep 17 00:00:00 2001
From: Mans Rullgard <mans@mansr.com>
Date: Tue, 10 Nov 2009 00:41:54 +0000
-Subject: [PATCH 39/42] ARM: Add option to allow userspace PLE access
+Subject: [PATCH 39/43] ARM: Add option to allow userspace PLE access
This adds a Kconfig option to allow userspace to access the L2 preload
engine (PLE) found in Cortex-A8.
diff --git a/recipes/linux/linux-omap-psp-2.6.32/0040-ARM-Add-option-to-allow-userspace-access-to-performa.patch b/recipes/linux/linux-omap-psp-2.6.32/0040-ARM-Add-option-to-allow-userspace-access-to-performa.patch
index 7fcb5fe082..41a303662e 100644
--- a/recipes/linux/linux-omap-psp-2.6.32/0040-ARM-Add-option-to-allow-userspace-access-to-performa.patch
+++ b/recipes/linux/linux-omap-psp-2.6.32/0040-ARM-Add-option-to-allow-userspace-access-to-performa.patch
@@ -1,7 +1,7 @@
-From c6faecfc5916cce9ff104982e7b3ab4b990400bf Mon Sep 17 00:00:00 2001
+From 7a20711022052ffe2a563f83e8645712919234ba Mon Sep 17 00:00:00 2001
From: Mans Rullgard <mans@mansr.com>
Date: Tue, 10 Nov 2009 00:52:56 +0000
-Subject: [PATCH 40/42] ARM: Add option to allow userspace access to performance counters
+Subject: [PATCH 40/43] ARM: Add option to allow userspace access to performance counters
This adds an option to allow userspace access to the performance monitor
registers of the Cortex-A8.
diff --git a/recipes/linux/linux-omap-psp-2.6.32/0041-ARM-Expose-some-PMON-registers-through-sysfs.patch b/recipes/linux/linux-omap-psp-2.6.32/0041-ARM-Expose-some-PMON-registers-through-sysfs.patch
index d16323f4aa..51c9a049c5 100644
--- a/recipes/linux/linux-omap-psp-2.6.32/0041-ARM-Expose-some-PMON-registers-through-sysfs.patch
+++ b/recipes/linux/linux-omap-psp-2.6.32/0041-ARM-Expose-some-PMON-registers-through-sysfs.patch
@@ -1,7 +1,7 @@
-From ff5abcc2c35de124962f07dff1263b94402cbacc Mon Sep 17 00:00:00 2001
+From b8ceea553dcf1d4657e3cb792ead9bdf03ab64e8 Mon Sep 17 00:00:00 2001
From: Mans Rullgard <mans@mansr.com>
Date: Sat, 28 Mar 2009 13:05:02 +0000
-Subject: [PATCH 41/42] ARM: Expose some PMON registers through sysfs
+Subject: [PATCH 41/43] ARM: Expose some PMON registers through sysfs
---
arch/arm/kernel/sysfs_v7.c | 11 +++++++++++
diff --git a/recipes/linux/linux-omap-psp-2.6.32/0042-musb-allow-host-io-without-gadget-module.patch b/recipes/linux/linux-omap-psp-2.6.32/0042-musb-allow-host-io-without-gadget-module.patch
index 5e6a0e2f1c..a8540c4ce5 100644
--- a/recipes/linux/linux-omap-psp-2.6.32/0042-musb-allow-host-io-without-gadget-module.patch
+++ b/recipes/linux/linux-omap-psp-2.6.32/0042-musb-allow-host-io-without-gadget-module.patch
@@ -1,4 +1,4 @@
-From 856e80e1411ff5fad939545b0b7d2c50676ce5c9 Mon Sep 17 00:00:00 2001
+From f769159cae4d1ae42589d180ac8a376ac3ad687f Mon Sep 17 00:00:00 2001
From: Ajay Kumar Gupta <ajay.gupta@ti.com>
Date: Wed, 14 Apr 2010 16:08:37 +0530
Subject: [PATCH 42/43] musb: allow host io without gadget module
@@ -10,7 +10,7 @@ Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
2 files changed, 9 insertions(+), 31 deletions(-)
diff --git a/drivers/usb/musb/musb_core.c b/drivers/usb/musb/musb_core.c
-index 2c1400f..a80e9f9 100644
+index 98874c5..a448fa6 100644
--- a/drivers/usb/musb/musb_core.c
+++ b/drivers/usb/musb/musb_core.c
@@ -2101,10 +2101,12 @@ bad_config:
@@ -42,10 +42,10 @@ index 2c1400f..a80e9f9 100644
musb->xceiv->default_a = 0;
musb->xceiv->state = OTG_STATE_B_IDLE;
diff --git a/drivers/usb/musb/musb_gadget.c b/drivers/usb/musb/musb_gadget.c
-index 1c3610b..d75db21 100644
+index c0e2efc..e0a6015 100644
--- a/drivers/usb/musb/musb_gadget.c
+++ b/drivers/usb/musb/musb_gadget.c
-@@ -1752,24 +1752,6 @@ int usb_gadget_register_driver(struct usb_gadget_driver *driver)
+@@ -1765,24 +1765,6 @@ int usb_gadget_register_driver(struct usb_gadget_driver *driver)
otg_set_peripheral(musb->xceiv, &musb->g);
spin_unlock_irqrestore(&musb->lock, flags);
@@ -70,7 +70,7 @@ index 1c3610b..d75db21 100644
}
return retval;
-@@ -1865,14 +1847,6 @@ int usb_gadget_unregister_driver(struct usb_gadget_driver *driver)
+@@ -1878,14 +1860,6 @@ int usb_gadget_unregister_driver(struct usb_gadget_driver *driver)
retval = -EINVAL;
spin_unlock_irqrestore(&musb->lock, flags);
diff --git a/recipes/linux/linux-omap-psp-2.6.32/0043-MTD-silence-ecc-errors-on-mtdblock0.patch b/recipes/linux/linux-omap-psp-2.6.32/0043-MTD-silence-ecc-errors-on-mtdblock0.patch
new file mode 100644
index 0000000000..9fb0ec9687
--- /dev/null
+++ b/recipes/linux/linux-omap-psp-2.6.32/0043-MTD-silence-ecc-errors-on-mtdblock0.patch
@@ -0,0 +1,59 @@
+From 9bd77da63888873c8ebb0c6a70835f2c432a0337 Mon Sep 17 00:00:00 2001
+From: Steve Sakoman <steve@sakoman.com>
+Date: Mon, 26 Apr 2010 11:17:26 -0700
+Subject: [PATCH 43/43] MTD: silence ecc errors on mtdblock0
+
+mtdblock0 is the x-load partition, which uses hw ecc
+this confuses linux, which uses sw ecc
+this patch silences ecc error messages when linux peeks into mtdblock0
+* not for upstream submission *
+---
+ block/blk-core.c | 3 ++-
+ drivers/mtd/nand/nand_ecc.c | 2 +-
+ fs/buffer.c | 3 ++-
+ 3 files changed, 5 insertions(+), 3 deletions(-)
+
+diff --git a/block/blk-core.c b/block/blk-core.c
+index 718897e..c526fde 100644
+--- a/block/blk-core.c
++++ b/block/blk-core.c
+@@ -1970,7 +1970,8 @@ bool blk_update_request(struct request *req, int error, unsigned int nr_bytes)
+ req->errors = 0;
+
+ if (error && (blk_fs_request(req) && !(req->cmd_flags & REQ_QUIET))) {
+- printk(KERN_ERR "end_request: I/O error, dev %s, sector %llu\n",
++ if (req->rq_disk && (strcmp(req->rq_disk->disk_name, "mtdblock0") != 0))
++ printk(KERN_ERR "end_request: I/O error, dev %s, sector %llu\n",
+ req->rq_disk ? req->rq_disk->disk_name : "?",
+ (unsigned long long)blk_rq_pos(req));
+ }
+diff --git a/drivers/mtd/nand/nand_ecc.c b/drivers/mtd/nand/nand_ecc.c
+index 92320a6..2b86b6d 100644
+--- a/drivers/mtd/nand/nand_ecc.c
++++ b/drivers/mtd/nand/nand_ecc.c
+@@ -492,7 +492,7 @@ int __nand_correct_data(unsigned char *buf,
+ if ((bitsperbyte[b0] + bitsperbyte[b1] + bitsperbyte[b2]) == 1)
+ return 1; /* error in ecc data; no action needed */
+
+- printk(KERN_ERR "uncorrectable error : ");
++// printk(KERN_ERR "uncorrectable error : ");
+ return -1;
+ }
+ EXPORT_SYMBOL(__nand_correct_data);
+diff --git a/fs/buffer.c b/fs/buffer.c
+index 6fa5302..27b3103 100644
+--- a/fs/buffer.c
++++ b/fs/buffer.c
+@@ -114,7 +114,8 @@ static int quiet_error(struct buffer_head *bh)
+ static void buffer_io_error(struct buffer_head *bh)
+ {
+ char b[BDEVNAME_SIZE];
+- printk(KERN_ERR "Buffer I/O error on device %s, logical block %Lu\n",
++ if (strcmp(bdevname(bh->b_bdev, b), "mtdblock0") != 0)
++ printk(KERN_ERR "Buffer I/O error on device %s, logical block %Lu\n",
+ bdevname(bh->b_bdev, b),
+ (unsigned long long)bh->b_blocknr);
+ }
+--
+1.6.6.1
+
diff --git a/recipes/linux/linux-omap-psp-2.6.32/0044-ARM-OMAP-beagle-every-known-beagle-except-revB-uses-.patch b/recipes/linux/linux-omap-psp-2.6.32/0044-ARM-OMAP-beagle-every-known-beagle-except-revB-uses-.patch
new file mode 100644
index 0000000000..79a3992d3c
--- /dev/null
+++ b/recipes/linux/linux-omap-psp-2.6.32/0044-ARM-OMAP-beagle-every-known-beagle-except-revB-uses-.patch
@@ -0,0 +1,34 @@
+From 16ac58809c76a870e03ae298cef55e0c337423ea Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen@dominion.thruhere.net>
+Date: Thu, 13 May 2010 21:43:08 +0200
+Subject: [PATCH 44/44] ARM: OMAP: beagle: every known beagle (except revB) uses 2 chipselects so don't use NULL for the second chipselect timings
+
+---
+ arch/arm/mach-omap2/board-omap3beagle.c | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
+index dd830b1..078e026 100644
+--- a/arch/arm/mach-omap2/board-omap3beagle.c
++++ b/arch/arm/mach-omap2/board-omap3beagle.c
+@@ -614,7 +614,7 @@ static void __init omap3_beagle_init_irq(void)
+ if (cpu_is_omap3630())
+ {
+ omap2_init_common_hw(mt46h32m32lf6_sdrc_params,
+- NULL,
++ mt46h32m32lf6_sdrc_params,
+ _omap37x_mpu_rate_table,
+ _omap37x_dsp_rate_table,
+ _omap37x_l3_rate_table);
+@@ -622,7 +622,7 @@ static void __init omap3_beagle_init_irq(void)
+ else
+ {
+ omap2_init_common_hw(mt46h32m32lf6_sdrc_params,
+- NULL,
++ mt46h32m32lf6_sdrc_params,
+ _omap35x_mpu_rate_table,
+ _omap35x_dsp_rate_table,
+ _omap35x_l3_rate_table);
+--
+1.6.6.1
+
diff --git a/recipes/linux/linux-omap-psp-2.6.32/beagleboard/defconfig b/recipes/linux/linux-omap-psp-2.6.32/beagleboard/defconfig
index ca0ca42f66..679d917e16 100644
--- a/recipes/linux/linux-omap-psp-2.6.32/beagleboard/defconfig
+++ b/recipes/linux/linux-omap-psp-2.6.32/beagleboard/defconfig
@@ -58,7 +58,7 @@ CONFIG_RCU_FANOUT=32
# CONFIG_TREE_RCU_TRACE is not set
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
-CONFIG_LOG_BUF_SHIFT=14
+CONFIG_LOG_BUF_SHIFT=16
CONFIG_GROUP_SCHED=y
CONFIG_FAIR_GROUP_SCHED=y
# CONFIG_RT_GROUP_SCHED is not set
@@ -267,7 +267,7 @@ CONFIG_OMAP_PACKAGE_CBB=y
CONFIG_MACH_OMAP3_BEAGLE=y
# CONFIG_MACH_OMAP_LDP is not set
# CONFIG_MACH_OVERO is not set
-CONFIG_MACH_OMAP3EVM=y
+CONFIG_MACH_OMAP3EVM=n
CONFIG_PMIC_TWL4030=y
# CONFIG_MACH_OMAP3517EVM is not set
# CONFIG_MACH_OMAP3_PANDORA is not set
@@ -381,7 +381,7 @@ CONFIG_CPU_FREQ_TABLE=y
CONFIG_CPU_FREQ_DEBUG=y
CONFIG_CPU_FREQ_STAT=y
CONFIG_CPU_FREQ_STAT_DETAILS=y
-# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE
# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y
# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
@@ -1055,7 +1055,7 @@ CONFIG_CS5535_MFGPT_DEFAULT_IRQ=7
#
# EEPROM support
#
-# CONFIG_EEPROM_AT24 is not set
+CONFIG_EEPROM_AT24=m
# CONFIG_EEPROM_AT25 is not set
# CONFIG_EEPROM_LEGACY is not set
# CONFIG_EEPROM_MAX6875 is not set
@@ -2330,7 +2330,7 @@ CONFIG_USB_GADGET=y
# CONFIG_USB_GADGET_DEBUG is not set
# CONFIG_USB_GADGET_DEBUG_FILES is not set
CONFIG_USB_GADGET_DEBUG_FS=y
-CONFIG_USB_GADGET_VBUS_DRAW=2
+CONFIG_USB_GADGET_VBUS_DRAW=480
CONFIG_USB_GADGET_SELECTED=y
# CONFIG_USB_GADGET_AT91 is not set
# CONFIG_USB_GADGET_ATMEL_USBA is not set
@@ -2442,7 +2442,7 @@ CONFIG_RTC_INTF_DEV=y
#
# I2C RTC drivers
#
-# CONFIG_RTC_DRV_DS1307 is not set
+CONFIG_RTC_DRV_DS1307=m
# CONFIG_RTC_DRV_DS1374 is not set
# CONFIG_RTC_DRV_DS1672 is not set
# CONFIG_RTC_DRV_MAX6900 is not set
diff --git a/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0001-ARM-OMAP-add-spi-platform-devices.patch b/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0001-ARM-OMAP-add-spi-platform-devices.patch
index 70d9b0044a..8988fd8210 100644
--- a/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0001-ARM-OMAP-add-spi-platform-devices.patch
+++ b/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0001-ARM-OMAP-add-spi-platform-devices.patch
@@ -1,7 +1,7 @@
-From 512af40b0efa98d9a7a5596fe6b19600d89a58dd Mon Sep 17 00:00:00 2001
+From 0031d3fb2d067f4c46e434f5f5c6c14cef2a83a3 Mon Sep 17 00:00:00 2001
From: Tim Yamin <plasm@roo.me.uk>
Date: Sat, 11 Apr 2009 13:05:21 -0700
-Subject: [PATCH 01/16] ARM: OMAP: add spi platform devices
+Subject: [PATCH 01/17] ARM: OMAP: add spi platform devices
---
arch/arm/mach-omap2/devices.c | 32 ++++++++++++++++++++++++++++++++
diff --git a/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0002-MMA7455L-accelerometer-driver.patch b/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0002-MMA7455L-accelerometer-driver.patch
index c6cf13c2cc..f9c7702e9e 100644
--- a/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0002-MMA7455L-accelerometer-driver.patch
+++ b/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0002-MMA7455L-accelerometer-driver.patch
@@ -1,7 +1,7 @@
-From f02cd8da4f4dc269b83128e2c42ab664e6619ef8 Mon Sep 17 00:00:00 2001
+From 0c804b06c04a14da575d592c89408537c21fb26b Mon Sep 17 00:00:00 2001
From: Tim Yamin <plasm@roo.me.uk>
Date: Tue, 23 Mar 2010 09:52:10 +0100
-Subject: [PATCH 02/16] MMA7455L accelerometer driver
+Subject: [PATCH 02/17] MMA7455L accelerometer driver
---
drivers/input/misc/Kconfig | 9 +
diff --git a/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0003-bq27x00_battery-remove-error-message-output.patch b/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0003-bq27x00_battery-remove-error-message-output.patch
index bd1a50b35f..f8b307ee9d 100644
--- a/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0003-bq27x00_battery-remove-error-message-output.patch
+++ b/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0003-bq27x00_battery-remove-error-message-output.patch
@@ -1,7 +1,7 @@
-From df5573b7c2ed7b0e31be60bddc6b9bc928e78bfe Mon Sep 17 00:00:00 2001
+From 6837800d92947d25e263bf041ebe7db4e804af68 Mon Sep 17 00:00:00 2001
From: Gregoire Gentil <gregoire@gentil.com>
Date: Fri, 12 Mar 2010 11:41:17 +0100
-Subject: [PATCH 03/16] bq27x00_battery: remove error message output
+Subject: [PATCH 03/17] bq27x00_battery: remove error message output
---
drivers/power/bq27x00_battery.c | 5 -----
diff --git a/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0004-bq27x00_battery-add-charged-gpio.patch b/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0004-bq27x00_battery-add-charged-gpio.patch
index 6f871ce649..759525f283 100644
--- a/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0004-bq27x00_battery-add-charged-gpio.patch
+++ b/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0004-bq27x00_battery-add-charged-gpio.patch
@@ -1,7 +1,7 @@
-From e1869b08e330d50fd0b57cf0f9ee86eb24d83ec3 Mon Sep 17 00:00:00 2001
+From 829d500667448b7ea9465615261a988adc3aa645 Mon Sep 17 00:00:00 2001
From: Gregoire Gentil <gregoire@gentil.com>
Date: Fri, 12 Mar 2010 11:42:45 +0100
-Subject: [PATCH 04/16] bq27x00_battery: add charged gpio
+Subject: [PATCH 04/17] bq27x00_battery: add charged gpio
---
drivers/power/bq27x00_battery.c | 21 +++++++++++++++++++++
diff --git a/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0005-adf7846-add-more-debugging.patch b/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0005-adf7846-add-more-debugging.patch
index a9903ea942..f15e0a2e50 100644
--- a/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0005-adf7846-add-more-debugging.patch
+++ b/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0005-adf7846-add-more-debugging.patch
@@ -1,7 +1,7 @@
-From 0b859f934499c20b71b7c40fe356ab1c53bf7ade Mon Sep 17 00:00:00 2001
+From e00ae0c0fa35b4b67bbc905581c2c7bde0e29901 Mon Sep 17 00:00:00 2001
From: Gregoire Gentil <gregoire@gentil.com>
Date: Fri, 12 Mar 2010 13:50:38 +0100
-Subject: [PATCH 05/16] adf7846: add more debugging
+Subject: [PATCH 05/17] adf7846: add more debugging
---
drivers/input/touchscreen/ads7846.c | 73 +++++++++++++++++++++++++++++++++++
diff --git a/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0006-ads7846-read-max-mix-x-y-from-pdata.patch b/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0006-ads7846-read-max-mix-x-y-from-pdata.patch
index fff70be27c..63a4ebbf7c 100644
--- a/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0006-ads7846-read-max-mix-x-y-from-pdata.patch
+++ b/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0006-ads7846-read-max-mix-x-y-from-pdata.patch
@@ -1,7 +1,7 @@
-From 8ccf65bc56ba2f71a4420754969b522fd86945a2 Mon Sep 17 00:00:00 2001
+From 5f227b8aa6083437e2907ca621159228a4a24d9a Mon Sep 17 00:00:00 2001
From: Gregoire Gentil <gregoire@gentil.com>
Date: Fri, 12 Mar 2010 13:50:45 +0100
-Subject: [PATCH 06/16] ads7846: read max/mix x/y from pdata
+Subject: [PATCH 06/17] ads7846: read max/mix x/y from pdata
---
drivers/input/touchscreen/ads7846.c | 5 +++--
diff --git a/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0007-ads7846-add-settling-delay-to-pdata.patch b/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0007-ads7846-add-settling-delay-to-pdata.patch
index 5994529edd..a69c7836b9 100644
--- a/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0007-ads7846-add-settling-delay-to-pdata.patch
+++ b/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0007-ads7846-add-settling-delay-to-pdata.patch
@@ -1,7 +1,7 @@
-From 68e4eb5c9690531fa04cc9e0621854b03369d78b Mon Sep 17 00:00:00 2001
+From 7330c695afad64eef62c525cb8e54913265a3b39 Mon Sep 17 00:00:00 2001
From: Gregoire Gentil <gregoire@gentil.com>
Date: Fri, 12 Mar 2010 13:50:52 +0100
-Subject: [PATCH 07/16] ads7846: add settling delay to pdata
+Subject: [PATCH 07/17] ads7846: add settling delay to pdata
---
drivers/input/touchscreen/ads7846.c | 22 ++++++++++++++++++++++
diff --git a/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0008-DSS2-OMAPFB-Translate-X-Y-coordinates-for-the-video-.patch b/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0008-DSS2-OMAPFB-Translate-X-Y-coordinates-for-the-video-.patch
index db1d7a63ea..5d6ff3fbc2 100644
--- a/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0008-DSS2-OMAPFB-Translate-X-Y-coordinates-for-the-video-.patch
+++ b/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0008-DSS2-OMAPFB-Translate-X-Y-coordinates-for-the-video-.patch
@@ -1,7 +1,7 @@
-From b5fbb6c23770e496250e5cbdaad7b7b6120b86af Mon Sep 17 00:00:00 2001
+From 07396a332c4f3d6ed4ff498cb08d0338c98dc612 Mon Sep 17 00:00:00 2001
From: Tim Yamin <plasm@roo.me.uk>
Date: Mon, 20 Apr 2009 20:29:11 -0700
-Subject: [PATCH 08/16] DSS2: OMAPFB: Translate X/Y coordinates for the video planes when rotating.
+Subject: [PATCH 08/17] DSS2: OMAPFB: Translate X/Y coordinates for the video planes when rotating.
When rotating the video planes, translate the X/Y coordinates such that
a [0,0] from userspace always maps to the correct upper left corner of
diff --git a/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0010-DSS2-Fix-scaling-checks-when-rotation-is-90-or-270-d.patch b/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0009-DSS2-Fix-scaling-checks-when-rotation-is-90-or-270-d.patch
index 58d084e3cf..5130598422 100644
--- a/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0010-DSS2-Fix-scaling-checks-when-rotation-is-90-or-270-d.patch
+++ b/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0009-DSS2-Fix-scaling-checks-when-rotation-is-90-or-270-d.patch
@@ -1,7 +1,7 @@
-From 7986ce08b1f7ed40c815620853fe76ce3deeb7c5 Mon Sep 17 00:00:00 2001
+From fc2e9ddb93cb026ed10900d794dd1db11191dc24 Mon Sep 17 00:00:00 2001
From: Tim Yamin <plasm@roo.me.uk>
Date: Fri, 12 Mar 2010 13:57:38 +0100
-Subject: [PATCH 10/16] DSS2: Fix scaling checks when rotation is 90 or 270 degrees.
+Subject: [PATCH 09/17] DSS2: Fix scaling checks when rotation is 90 or 270 degrees.
---
drivers/video/omap2/dss/dispc.c | 25 +++++++++++++++++++------
diff --git a/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0009-DSS2-fix-rotation-offsets.patch b/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0009-DSS2-fix-rotation-offsets.patch
deleted file mode 100644
index 89d5285688..0000000000
--- a/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0009-DSS2-fix-rotation-offsets.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-From 15ef52dc7a6d92e50ed9437ca6ca4bdcbd62faa6 Mon Sep 17 00:00:00 2001
-From: Gregoire Gentil <gregoire@gentil.com>
-Date: Wed, 31 Mar 2010 11:32:23 +0200
-Subject: [PATCH 09/16] DSS2: fix rotation offsets
-
----
- drivers/video/omap2/omapfb/omapfb-main.c | 34 +++++++++++++++++++++++++----
- 1 files changed, 29 insertions(+), 5 deletions(-)
-
-diff --git a/drivers/video/omap2/omapfb/omapfb-main.c b/drivers/video/omap2/omapfb/omapfb-main.c
-index c2c9663..1b116b6 100644
---- a/drivers/video/omap2/omapfb/omapfb-main.c
-+++ b/drivers/video/omap2/omapfb/omapfb-main.c
-@@ -859,12 +859,14 @@ static int omapfb_setup_overlay(struct fb_info *fbi, struct omap_overlay *ovl,
- u32 data_start_p;
- void __iomem *data_start_v;
- struct omap_overlay_info info;
-- int xres, yres;
-+ int xres, yres, xoff, yoff;
- int screen_width;
- int mirror;
- int rotation = var->rotate;
- int i;
-
-+ xoff = var->xoffset;
-+ yoff = var->yoffset;
- for (i = 0; i < ofbi->num_overlays; i++) {
- if (ovl != ofbi->overlays[i])
- continue;
-@@ -893,10 +895,32 @@ static int omapfb_setup_overlay(struct fb_info *fbi, struct omap_overlay *ovl,
- data_start_v = omapfb_get_region_vaddr(ofbi, 0);
- }
-
-- if (ofbi->rotation_type == OMAP_DSS_ROT_VRFB)
-- offset = calc_rotation_offset_vrfb(var, fix, 0);
-- else
-- offset = calc_rotation_offset_dma(var, fix, rotation);
-+ if (ofbi->rotation == FB_ROTATE_CW || ofbi->rotation == FB_ROTATE_UD) {
-+ if (var->yres < var->yres_virtual) {
-+ if (var->yoffset)
-+ yoff = 0;
-+ else
-+ yoff = var->yres_virtual - var->yres;
-+ }
-+ }
-+
-+ if (ofbi->rotation == FB_ROTATE_CCW || ofbi->rotation == FB_ROTATE_UD) {
-+ if (var->xres < var->xres_virtual) {
-+ if (var->xoffset)
-+ xoff = 0;
-+ else
-+ xoff = var->xres_virtual - var->xres;
-+ }
-+ }
-+
-+ if (ofbi->rotation == FB_ROTATE_CW || ofbi->rotation == FB_ROTATE_CCW) {
-+ offset = ((xoff * fix->line_length) >> 1) +
-+ ((yoff * var->bits_per_pixel) >> 2);
-+ } else
-+ {
-+ offset = yoff * fix->line_length +
-+ ((xoff * var->bits_per_pixel) >> 3);
-+ }
-
- data_start_p += offset;
- data_start_v += offset;
---
-1.6.6.1
-
diff --git a/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0011-add-touchbook-hid-driver.patch b/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0010-add-touchbook-hid-driver.patch
index 7dca1ddeda..aa3b359c65 100644
--- a/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0011-add-touchbook-hid-driver.patch
+++ b/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0010-add-touchbook-hid-driver.patch
@@ -1,7 +1,7 @@
-From 935a7f21581403bd791729ae1cc1b49b10561fa6 Mon Sep 17 00:00:00 2001
+From 0f651f19bf9cfecbb76d6f0b251e3d8395f306b8 Mon Sep 17 00:00:00 2001
From: Gregoire Gentil <gregoire@gentil.com>
Date: Fri, 12 Mar 2010 14:39:07 +0100
-Subject: [PATCH 11/16] add touchbook hid driver
+Subject: [PATCH 10/17] add touchbook hid driver
---
drivers/hid/Kconfig | 7 ++
diff --git a/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0012-Make-backlight-controls-accessible-to-users.patch b/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0011-Make-backlight-controls-accessible-to-users.patch
index 5f3e2336fe..c6d3678751 100644
--- a/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0012-Make-backlight-controls-accessible-to-users.patch
+++ b/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0011-Make-backlight-controls-accessible-to-users.patch
@@ -1,7 +1,7 @@
-From 94ea406045ee596951204736fd5bdf454c574343 Mon Sep 17 00:00:00 2001
+From b46a494e0c02450e412db221d75446671b6ef511 Mon Sep 17 00:00:00 2001
From: Gregoire Gentil <gregroire@gentil.com>
Date: Fri, 12 Mar 2010 14:41:05 +0100
-Subject: [PATCH 12/16] Make backlight controls accessible to users
+Subject: [PATCH 11/17] Make backlight controls accessible to users
---
drivers/video/backlight/backlight.c | 2 +-
diff --git a/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0013-ads7846-don-t-error-out-when-there-s-no-pendown-gpio.patch b/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0012-ads7846-don-t-error-out-when-there-s-no-pendown-gpio.patch
index b6da0dc5fb..24fb913221 100644
--- a/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0013-ads7846-don-t-error-out-when-there-s-no-pendown-gpio.patch
+++ b/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0012-ads7846-don-t-error-out-when-there-s-no-pendown-gpio.patch
@@ -1,7 +1,7 @@
-From 55eb032a9f3d9c2a46a0e4621e6704a00ba2ab46 Mon Sep 17 00:00:00 2001
+From 4c3ef06a333cf1f873a9a8de05af90959a5d1e68 Mon Sep 17 00:00:00 2001
From: Gregoire Gentil <gregoire@gentil.com>
Date: Fri, 12 Mar 2010 15:04:58 +0100
-Subject: [PATCH 13/16] ads7846: don't error out when there's no pendown gpio
+Subject: [PATCH 12/17] ads7846: don't error out when there's no pendown gpio
---
drivers/input/touchscreen/ads7846.c | 7 -------
diff --git a/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0014-ASoC-add-driver-for-omap3-touchbook.patch b/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0013-ASoC-add-driver-for-omap3-touchbook.patch
index 4e39423869..2da7354e11 100644
--- a/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0014-ASoC-add-driver-for-omap3-touchbook.patch
+++ b/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0013-ASoC-add-driver-for-omap3-touchbook.patch
@@ -1,13 +1,13 @@
-From 0abfaf3d50f7df7b7dd9462d1822e856bf306bf5 Mon Sep 17 00:00:00 2001
+From 96ce6261efe4c194d9188e0f352803bcd92f1c59 Mon Sep 17 00:00:00 2001
From: Gregoire Gentil <gregoire@gentil.com>
Date: Wed, 31 Mar 2010 11:14:04 +0200
-Subject: [PATCH 14/16] ASoC: add driver for omap3-touchbook
+Subject: [PATCH 13/17] ASoC: add driver for omap3-touchbook
---
sound/soc/omap/Kconfig | 8 +
sound/soc/omap/Makefile | 2 +
- sound/soc/omap/omap3touchbook.c | 281 +++++++++++++++++++++++++++++++++++++++
- 3 files changed, 291 insertions(+), 0 deletions(-)
+ sound/soc/omap/omap3touchbook.c | 291 +++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 301 insertions(+), 0 deletions(-)
create mode 100644 sound/soc/omap/omap3touchbook.c
diff --git a/sound/soc/omap/Kconfig b/sound/soc/omap/Kconfig
@@ -50,10 +50,10 @@ index 19283e5..e3f172f 100644
obj-$(CONFIG_SND_OMAP_SOC_IGEP0020) += snd-soc-igep0020.o
diff --git a/sound/soc/omap/omap3touchbook.c b/sound/soc/omap/omap3touchbook.c
new file mode 100644
-index 0000000..27924e0
+index 0000000..c5e6eaa
--- /dev/null
+++ b/sound/soc/omap/omap3touchbook.c
-@@ -0,0 +1,281 @@
+@@ -0,0 +1,291 @@
+/*
+ * omap3touchbook.c -- SoC audio for Touch Book
+ *
@@ -160,6 +160,14 @@ index 0000000..27924e0
+/* Headset jack detection DAPM pins */
+static struct snd_soc_jack_pin hs_jack_pins[] = {
+ {
++ .pin = "Headset Stereo",
++ .mask = SND_JACK_HEADPHONE,
++ },
++ {
++ .pin = "Headset Mic",
++ .mask = SND_JACK_HEADPHONE,
++ },
++ {
+ .pin = "External Speakers",
+ .mask = SND_JACK_HEADPHONE,
+ .invert = 1,
@@ -180,7 +188,7 @@ index 0000000..27924e0
+static const struct snd_soc_dapm_widget omap3touchbook_twl4030_dapm_widgets[] = {
+ SND_SOC_DAPM_SPK("External Speakers", NULL),
+ SND_SOC_DAPM_HP("Headset Stereo", NULL),
-+ SND_SOC_DAPM_MIC("Headset Micro", NULL),
++ SND_SOC_DAPM_MIC("Headset Mic", NULL),
+ SND_SOC_DAPM_LINE("Line In", NULL),
+};
+
@@ -193,12 +201,13 @@ index 0000000..27924e0
+ {"Headset Stereo", NULL, "HSOL"},
+ {"Headset Stereo", NULL, "HSOR"},
+
-+ /* Headset Micro: MAINMICL */
-+ {"Headset Micro", NULL, "MAINMIC"},
++ /* Micro: HSMIC */
++ {"HSMIC", NULL, "Headset Mic Bias"},
++ {"Headset Mic Bias", NULL, "Headset Mic"},
+
+ /* Line In: AUXL, AUXR */
-+ {"Line In", NULL, "AUXL"},
-+ {"Line In", NULL, "AUXR"},
++ {"AUXL", NULL, "Line In"},
++ {"AUXR", NULL, "Line In"},
+};
+
+static int omap3touchbook_twl4030_init(struct snd_soc_codec *codec)
@@ -217,11 +226,12 @@ index 0000000..27924e0
+ /* omap3touchbook connected pins */
+ snd_soc_dapm_enable_pin(codec, "External Speakers");
+ snd_soc_dapm_enable_pin(codec, "Headset Stereo");
-+ snd_soc_dapm_enable_pin(codec, "Headset Micro");
++ snd_soc_dapm_enable_pin(codec, "Headset Mic");
+ snd_soc_dapm_enable_pin(codec, "Line In");
+
-+ /* TWL4030 not connected pins */
++ /* omap3touchbook not connected pins */
+ snd_soc_dapm_nc_pin(codec, "CARKITMIC");
++ snd_soc_dapm_nc_pin(codec, "MAINMIC");
+ snd_soc_dapm_nc_pin(codec, "SUBMIC");
+ snd_soc_dapm_nc_pin(codec, "DIGIMIC0");
+ snd_soc_dapm_nc_pin(codec, "DIGIMIC1");
diff --git a/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0015-backlight-add-PWM-support.patch b/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0014-backlight-add-PWM-support.patch
index 373ab7a443..d517f072b6 100644
--- a/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0015-backlight-add-PWM-support.patch
+++ b/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0014-backlight-add-PWM-support.patch
@@ -1,7 +1,7 @@
-From d24e10c10e57875a65451f46025623f0f77cefbe Mon Sep 17 00:00:00 2001
+From cc8cb0d0731c7a0517653e65c754051a69f34c3e Mon Sep 17 00:00:00 2001
From: Gregoire Gentil <gregoire@gentil.com>
Date: Wed, 31 Mar 2010 11:14:04 +0200
-Subject: [PATCH 15/16] backlight: add PWM support
+Subject: [PATCH 14/17] backlight: add PWM support
---
drivers/video/backlight/backlight.c | 81 +++++++++++++++++++++++++++++++++++
diff --git a/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0015-Forward-port-TWL4030-BCI-driver-from-2.6.29-to-2.6.3.patch b/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0015-Forward-port-TWL4030-BCI-driver-from-2.6.29-to-2.6.3.patch
new file mode 100644
index 0000000000..562c459e1e
--- /dev/null
+++ b/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0015-Forward-port-TWL4030-BCI-driver-from-2.6.29-to-2.6.3.patch
@@ -0,0 +1,1367 @@
+From c3a08f3d696866508ef2b5e2fd065b8295b3e1a8 Mon Sep 17 00:00:00 2001
+From: Tim Yamin <plasm@roo.me.uk>
+Date: Sun, 9 May 2010 10:14:23 +0200
+Subject: [PATCH 15/17] Forward port TWL4030 BCI driver from 2.6.29 to 2.6.31 with AI enhancements.
+
+Signed-off-by: Tim Yamin <plasm@roo.me.uk>
+---
+ drivers/power/Kconfig | 7 +
+ drivers/power/Makefile | 1 +
+ drivers/power/twl4030_bci_battery.c | 1307 +++++++++++++++++++++++++++++++++++
+ include/linux/i2c/twl.h | 1 +
+ 4 files changed, 1316 insertions(+), 0 deletions(-)
+ create mode 100644 drivers/power/twl4030_bci_battery.c
+
+diff --git a/drivers/power/Kconfig b/drivers/power/Kconfig
+index d4b3d67..8345b3f 100644
+--- a/drivers/power/Kconfig
++++ b/drivers/power/Kconfig
+@@ -124,4 +124,11 @@ config CHARGER_PCF50633
+ help
+ Say Y to include support for NXP PCF50633 Main Battery Charger.
+
++config TWL4030_BCI_BATTERY
++ tristate "OMAP TWL4030 BCI Battery driver"
++ depends on TWL4030_CORE && TWL4030_MADC
++ help
++ Support for OMAP TWL4030 BCI Battery driver.
++ This driver can give support for TWL4030 Battery Charge Interface.
++
+ endif # POWER_SUPPLY
+diff --git a/drivers/power/Makefile b/drivers/power/Makefile
+index 573597c..7801da7 100644
+--- a/drivers/power/Makefile
++++ b/drivers/power/Makefile
+@@ -31,3 +31,4 @@ obj-$(CONFIG_BATTERY_BQ27x00) += bq27x00_battery.o
+ obj-$(CONFIG_BATTERY_DA9030) += da9030_battery.o
+ obj-$(CONFIG_BATTERY_MAX17040) += max17040_battery.o
+ obj-$(CONFIG_CHARGER_PCF50633) += pcf50633-charger.o
++obj-$(CONFIG_TWL4030_BCI_BATTERY) += twl4030_bci_battery.o
+diff --git a/drivers/power/twl4030_bci_battery.c b/drivers/power/twl4030_bci_battery.c
+new file mode 100644
+index 0000000..0876fc3
+--- /dev/null
++++ b/drivers/power/twl4030_bci_battery.c
+@@ -0,0 +1,1307 @@
++/*
++ * linux/drivers/power/twl4030_bci_battery.c
++ *
++ * OMAP2430/3430 BCI battery driver for Linux
++ *
++ * Copyright (C) 2008 Texas Instruments, Inc.
++ * Author: Texas Instruments, Inc.
++ *
++ * Copyright (C) 2010 Always Innovating
++ * Author: Tim Yamin <plasm@roo.me.uk>
++ *
++ * This package is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ *
++ * THIS PACKAGE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
++ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
++ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
++ */
++
++/* Boot with automatic charge */
++#define CHARGE_MODE 1
++
++#include <linux/init.h>
++#include <linux/module.h>
++#include <linux/device.h>
++#include <linux/interrupt.h>
++#include <linux/delay.h>
++#include <linux/platform_device.h>
++#include <linux/i2c/twl.h>
++#include <linux/power_supply.h>
++#include <linux/i2c/twl4030-madc.h>
++
++#define T2_BATTERY_VOLT 0x04
++#define T2_BATTERY_TEMP 0x06
++#define T2_BATTERY_CUR 0x08
++
++/* charger constants */
++#define NO_PW_CONN 0
++#define AC_PW_CONN 0x01
++#define USB_PW_CONN 0x02
++
++/* TWL4030_MODULE_USB */
++#define REG_POWER_CTRL 0x0AC
++#define OTG_EN 0x020
++#define REG_PHY_CLK_CTRL 0x0FE
++#define REG_PHY_CLK_CTRL_STS 0x0FF
++#define PHY_DPLL_CLK 0x01
++
++#define REG_BCICTL1 0x023
++#define REG_BCICTL2 0x024
++#define CGAIN 0x020
++#define ITHEN 0x010
++#define ITHSENS 0x007
++
++/* Boot BCI flag bits */
++#define BCIAUTOWEN 0x020
++#define CONFIG_DONE 0x010
++#define CVENAC 0x004
++#define BCIAUTOUSB 0x002
++#define BCIAUTOAC 0x001
++#define BCIMSTAT_MASK 0x03F
++
++/* Boot BCI register */
++#define REG_BOOT_BCI 0x007
++#define REG_CTRL1 0x00
++#define REG_SW1SELECT_MSB 0x07
++#define SW1_CH9_SEL 0x02
++#define REG_CTRL_SW1 0x012
++#define SW1_TRIGGER 0x020
++#define EOC_SW1 0x002
++#define REG_GPCH9 0x049
++#define REG_STS_HW_CONDITIONS 0x0F
++#define STS_VBUS 0x080
++#define STS_CHG 0x02
++#define REG_BCIMSTATEC 0x02
++#define REG_BCIMFSTS4 0x010
++#define REG_BCIMFSTS2 0x00E
++#define REG_BCIMFSTS3 0x00F
++#define REG_BCIMFSTS1 0x001
++#define USBFASTMCHG 0x004
++#define BATSTSPCHG 0x004
++#define BATSTSMCHG 0x040
++#define VBATOV4 0x020
++#define VBATOV3 0x010
++#define VBATOV2 0x008
++#define VBATOV1 0x004
++#define REG_BB_CFG 0x012
++#define BBCHEN 0x010
++
++/* GPBR */
++#define REG_GPBR1 0x0c
++#define MADC_HFCLK_EN 0x80
++#define DEFAULT_MADC_CLK_EN 0x10
++
++/* Power supply charge interrupt */
++#define REG_PWR_ISR1 0x00
++#define REG_PWR_IMR1 0x01
++#define REG_PWR_EDR1 0x05
++#define REG_PWR_SIH_CTRL 0x007
++
++#define USB_PRES 0x004
++#define CHG_PRES 0x002
++
++#define USB_PRES_RISING 0x020
++#define USB_PRES_FALLING 0x010
++#define CHG_PRES_RISING 0x008
++#define CHG_PRES_FALLING 0x004
++#define AC_STATEC 0x20
++#define COR 0x004
++
++/* interrupt status registers */
++#define REG_BCIISR1A 0x0
++#define REG_BCIISR2A 0x01
++
++/* Interrupt flags bits BCIISR1 */
++#define BATSTS_ISR1 0x080
++#define VBATLVL_ISR1 0x001
++
++/* Interrupt mask registers for int1*/
++#define REG_BCIIMR1A 0x002
++#define REG_BCIIMR2A 0x003
++
++ /* Interrupt masks for BCIIMR1 */
++#define BATSTS_IMR1 0x080
++#define VBATLVL_IMR1 0x001
++
++/* Interrupt edge detection register */
++#define REG_BCIEDR1 0x00A
++#define REG_BCIEDR2 0x00B
++#define REG_BCIEDR3 0x00C
++
++/* BCIEDR2 */
++#define BATSTS_EDRRISIN 0x080
++#define BATSTS_EDRFALLING 0x040
++
++/* BCIEDR3 */
++#define VBATLVL_EDRRISIN 0x02
++
++/* BCIIREF1 */
++#define REG_BCIIREF1 0x027
++#define REG_BCIIREF2 0x028
++
++/* BCIMFTH1 */
++#define REG_BCIMFTH1 0x016
++
++/* Key */
++#define KEY_IIREF 0xE7
++#define KEY_FTH1 0xD2
++#define REG_BCIMFKEY 0x011
++
++/* Step size and prescaler ratio */
++#define TEMP_STEP_SIZE 147
++#define TEMP_PSR_R 100
++
++#define VOLT_STEP_SIZE 588
++#define VOLT_PSR_R 100
++
++#define CURR_STEP_SIZE 147
++#define CURR_PSR_R1 44
++#define CURR_PSR_R2 80
++
++#define BK_VOLT_STEP_SIZE 441
++#define BK_VOLT_PSR_R 100
++
++#define ENABLE 1
++#define DISABLE 1
++
++struct twl4030_bci_device_info {
++ struct device *dev;
++
++ unsigned long update_time;
++ int voltage_uV;
++ int bk_voltage_uV;
++ int current_uA;
++ int temp_C;
++ int charge_rsoc;
++ int charge_status;
++
++ struct power_supply bat;
++ struct power_supply bk_bat;
++ struct delayed_work twl4030_bci_monitor_work;
++ struct delayed_work twl4030_bk_bci_monitor_work;
++
++ struct twl4030_bci_platform_data *pdata;
++};
++
++static int usb_charger_flag;
++static int LVL_1, LVL_2, LVL_3, LVL_4;
++
++static int read_bci_val(u8 reg_1);
++static inline int clear_n_set(u8 mod_no, u8 clear, u8 set, u8 reg);
++static int twl4030charger_presence(void);
++
++/*
++ * Report and clear the charger presence event.
++ */
++static inline int twl4030charger_presence_evt(void)
++{
++ int ret;
++ u8 chg_sts, set = 0, clear = 0;
++
++ /* read charger power supply status */
++ ret = twl_i2c_read_u8(TWL4030_MODULE_PM_MASTER, &chg_sts,
++ REG_STS_HW_CONDITIONS);
++ if (ret)
++ return IRQ_NONE;
++
++ if (chg_sts & STS_CHG) { /* If the AC charger have been connected */
++ /* configuring falling edge detection for CHG_PRES */
++ set = CHG_PRES_FALLING;
++ clear = CHG_PRES_RISING;
++ } else { /* If the AC charger have been disconnected */
++ /* configuring rising edge detection for CHG_PRES */
++ set = CHG_PRES_RISING;
++ clear = CHG_PRES_FALLING;
++ }
++
++ /* Update the interrupt edge detection register */
++ clear_n_set(TWL4030_MODULE_INT, clear, set, REG_PWR_EDR1);
++
++ return 0;
++}
++
++/*
++ * Interrupt service routine
++ *
++ * Attends to TWL 4030 power module interruptions events, specifically
++ * USB_PRES (USB charger presence) CHG_PRES (AC charger presence) events
++ *
++ */
++static irqreturn_t twl4030charger_interrupt(int irq, void *_di)
++{
++ struct twl4030_bci_device_info *di = _di;
++
++#ifdef CONFIG_LOCKDEP
++ /* WORKAROUND for lockdep forcing IRQF_DISABLED on us, which
++ * we don't want and can't tolerate. Although it might be
++ * friendlier not to borrow this thread context...
++ */
++ local_irq_enable();
++#endif
++
++ twl4030charger_presence_evt();
++ power_supply_changed(&di->bat);
++
++ return IRQ_HANDLED;
++}
++
++/*
++ * This function handles the twl4030 battery presence interrupt
++ */
++static int twl4030battery_presence_evt(void)
++{
++ int ret;
++ u8 batstsmchg, batstspchg;
++
++ /* check for the battery presence in main charge*/
++ ret = twl_i2c_read_u8(TWL4030_MODULE_MAIN_CHARGE,
++ &batstsmchg, REG_BCIMFSTS3);
++ if (ret)
++ return ret;
++
++ /* check for the battery presence in precharge */
++ ret = twl_i2c_read_u8(TWL4030_MODULE_PRECHARGE,
++ &batstspchg, REG_BCIMFSTS1);
++ if (ret)
++ return ret;
++
++ /*
++ * REVISIT: Physically inserting/removing the batt
++ * does not seem to generate an int on 3430ES2 SDP.
++ */
++ if ((batstspchg & BATSTSPCHG) || (batstsmchg & BATSTSMCHG)) {
++ /* In case of the battery insertion event */
++ ret = clear_n_set(TWL4030_MODULE_INTERRUPTS, BATSTS_EDRRISIN,
++ BATSTS_EDRFALLING, REG_BCIEDR2);
++ if (ret)
++ return ret;
++ } else {
++ /* In case of the battery removal event */
++ ret = clear_n_set(TWL4030_MODULE_INTERRUPTS, BATSTS_EDRFALLING,
++ BATSTS_EDRRISIN, REG_BCIEDR2);
++ if (ret)
++ return ret;
++ }
++
++ return 0;
++}
++
++/*
++ * This function handles the twl4030 battery voltage level interrupt.
++ */
++static int twl4030battery_level_evt(void)
++{
++ int ret;
++ u8 mfst;
++
++ /* checking for threshold event */
++ ret = twl_i2c_read_u8(TWL4030_MODULE_MAIN_CHARGE,
++ &mfst, REG_BCIMFSTS2);
++ if (ret)
++ return ret;
++
++ /* REVISIT could use a bitmap */
++ if (mfst & VBATOV4) {
++ LVL_4 = 1;
++ LVL_3 = 0;
++ LVL_2 = 0;
++ LVL_1 = 0;
++ } else if (mfst & VBATOV3) {
++ LVL_4 = 0;
++ LVL_3 = 1;
++ LVL_2 = 0;
++ LVL_1 = 0;
++ } else if (mfst & VBATOV2) {
++ LVL_4 = 0;
++ LVL_3 = 0;
++ LVL_2 = 1;
++ LVL_1 = 0;
++ } else {
++ LVL_4 = 0;
++ LVL_3 = 0;
++ LVL_2 = 0;
++ LVL_1 = 1;
++ }
++
++ return 0;
++}
++
++/*
++ * Interrupt service routine
++ *
++ * Attends to BCI interruptions events,
++ * specifically BATSTS (battery connection and removal)
++ * VBATOV (main battery voltage threshold) events
++ *
++ */
++static irqreturn_t twl4030battery_interrupt(int irq, void *_di)
++{
++ u8 isr1a_val, isr2a_val, clear_2a, clear_1a;
++ int ret;
++
++#ifdef CONFIG_LOCKDEP
++ /* WORKAROUND for lockdep forcing IRQF_DISABLED on us, which
++ * we don't want and can't tolerate. Although it might be
++ * friendlier not to borrow this thread context...
++ */
++ local_irq_enable();
++#endif
++
++ ret = twl_i2c_read_u8(TWL4030_MODULE_INTERRUPTS, &isr1a_val,
++ REG_BCIISR1A);
++ if (ret)
++ return IRQ_NONE;
++
++ ret = twl_i2c_read_u8(TWL4030_MODULE_INTERRUPTS, &isr2a_val,
++ REG_BCIISR2A);
++ if (ret)
++ return IRQ_NONE;
++
++ clear_2a = (isr2a_val & VBATLVL_ISR1) ? (VBATLVL_ISR1) : 0;
++ clear_1a = (isr1a_val & BATSTS_ISR1) ? (BATSTS_ISR1) : 0;
++
++ /* cleaning BCI interrupt status flags */
++ ret = twl_i2c_write_u8(TWL4030_MODULE_INTERRUPTS,
++ clear_1a , REG_BCIISR1A);
++ if (ret)
++ return IRQ_NONE;
++
++ ret = twl_i2c_write_u8(TWL4030_MODULE_INTERRUPTS,
++ clear_2a , REG_BCIISR2A);
++ if (ret)
++ return IRQ_NONE;
++
++ /* battery connetion or removal event */
++ if (isr1a_val & BATSTS_ISR1)
++ twl4030battery_presence_evt();
++ /* battery voltage threshold event*/
++ else if (isr2a_val & VBATLVL_ISR1)
++ twl4030battery_level_evt();
++ else
++ return IRQ_NONE;
++
++ return IRQ_HANDLED;
++}
++
++/*
++ * Enable/Disable hardware battery level event notifications.
++ */
++static int twl4030battery_hw_level_en(int enable)
++{
++ int ret;
++
++ if (enable) {
++ /* unmask VBATOV interrupt for INT1 */
++ ret = clear_n_set(TWL4030_MODULE_INTERRUPTS, VBATLVL_IMR1,
++ 0, REG_BCIIMR2A);
++ if (ret)
++ return ret;
++
++ /* configuring interrupt edge detection for VBATOv */
++ ret = clear_n_set(TWL4030_MODULE_INTERRUPTS, 0,
++ VBATLVL_EDRRISIN, REG_BCIEDR3);
++ if (ret)
++ return ret;
++ } else {
++ /* mask VBATOV interrupt for INT1 */
++ ret = clear_n_set(TWL4030_MODULE_INTERRUPTS, 0,
++ VBATLVL_IMR1, REG_BCIIMR2A);
++ if (ret)
++ return ret;
++ }
++
++ return 0;
++}
++
++/*
++ * Enable/disable hardware battery presence event notifications.
++ */
++static int twl4030battery_hw_presence_en(int enable)
++{
++ int ret;
++
++ if (enable) {
++ /* unmask BATSTS interrupt for INT1 */
++ ret = clear_n_set(TWL4030_MODULE_INTERRUPTS, BATSTS_IMR1,
++ 0, REG_BCIIMR1A);
++ if (ret)
++ return ret;
++
++ /* configuring interrupt edge for BATSTS */
++ ret = clear_n_set(TWL4030_MODULE_INTERRUPTS, 0,
++ BATSTS_EDRRISIN | BATSTS_EDRFALLING, REG_BCIEDR2);
++ if (ret)
++ return ret;
++ } else {
++ /* mask BATSTS interrupt for INT1 */
++ ret = clear_n_set(TWL4030_MODULE_INTERRUPTS, 0,
++ BATSTS_IMR1, REG_BCIIMR1A);
++ if (ret)
++ return ret;
++ }
++
++ return 0;
++}
++
++/*
++ * Enable/Disable AC Charge funtionality.
++ */
++static int twl4030charger_ac_en(int enable, int automatic)
++{
++ int ret;
++
++ if (enable) {
++ /* forcing the field BCIAUTOAC (BOOT_BCI[0) to 1 */
++ if(!automatic) {
++ ret = clear_n_set(TWL4030_MODULE_PM_MASTER, BCIAUTOAC | CVENAC,
++ (CONFIG_DONE | BCIAUTOWEN),
++ REG_BOOT_BCI);
++ } else {
++ ret = clear_n_set(TWL4030_MODULE_PM_MASTER, 0,
++ (CONFIG_DONE | BCIAUTOWEN | BCIAUTOAC | CVENAC),
++ REG_BOOT_BCI);
++ }
++ if (ret)
++ return ret;
++ } else {
++ /* forcing the field BCIAUTOAC (BOOT_BCI[0) to 0*/
++ ret = clear_n_set(TWL4030_MODULE_PM_MASTER, BCIAUTOAC,
++ (CONFIG_DONE | BCIAUTOWEN),
++ REG_BOOT_BCI);
++ if (ret)
++ return ret;
++ }
++
++ return 0;
++}
++
++/*
++ * Enable/Disable USB Charge funtionality.
++ */
++int twl4030charger_usb_en(int enable)
++{
++ u8 value;
++ int ret;
++ unsigned long timeout;
++
++ if (enable) {
++ /* Check for USB charger conneted */
++ ret = twl4030charger_presence();
++ if (ret < 0)
++ return ret;
++
++ if (!(ret & USB_PW_CONN))
++ return -ENXIO;
++
++ /* forcing the field BCIAUTOUSB (BOOT_BCI[1]) to 1 */
++ ret = clear_n_set(TWL4030_MODULE_PM_MASTER, 0,
++ (CONFIG_DONE | BCIAUTOWEN | BCIAUTOUSB),
++ REG_BOOT_BCI);
++ if (ret)
++ return ret;
++
++ ret = clear_n_set(TWL4030_MODULE_USB, 0, PHY_DPLL_CLK,
++ REG_PHY_CLK_CTRL);
++ if (ret)
++ return ret;
++
++ value = 0;
++ timeout = jiffies + msecs_to_jiffies(50);
++
++ while ((!(value & PHY_DPLL_CLK)) &&
++ time_before(jiffies, timeout)) {
++ udelay(10);
++ ret = twl_i2c_read_u8(TWL4030_MODULE_USB, &value,
++ REG_PHY_CLK_CTRL_STS);
++ if (ret)
++ return ret;
++ }
++
++ /* OTG_EN (POWER_CTRL[5]) to 1 */
++ ret = clear_n_set(TWL4030_MODULE_USB, 0, OTG_EN,
++ REG_POWER_CTRL);
++ if (ret)
++ return ret;
++
++ mdelay(50);
++
++ /* forcing USBFASTMCHG(BCIMFSTS4[2]) to 1 */
++ ret = clear_n_set(TWL4030_MODULE_MAIN_CHARGE, 0,
++ USBFASTMCHG, REG_BCIMFSTS4);
++ if (ret)
++ return ret;
++ } else {
++ twl4030charger_presence();
++ ret = clear_n_set(TWL4030_MODULE_PM_MASTER, BCIAUTOUSB,
++ (CONFIG_DONE | BCIAUTOWEN), REG_BOOT_BCI);
++ if (ret)
++ return ret;
++ }
++
++ return 0;
++}
++
++/*
++ * Return battery temperature
++ * Or < 0 on failure.
++ */
++static int twl4030battery_temperature(struct twl4030_bci_device_info *di)
++{
++ u8 val;
++ int temp, curr, volt, res, ret;
++
++ /* Is a temperature table specified? */
++ if (!di->pdata->tblsize)
++ return 0;
++
++ /* Getting and calculating the thermistor voltage */
++ ret = read_bci_val(T2_BATTERY_TEMP);
++ if (ret < 0)
++ return ret;
++
++ volt = (ret * TEMP_STEP_SIZE) / TEMP_PSR_R;
++
++ /* Getting and calculating the supply current in micro ampers */
++ ret = twl_i2c_read_u8(TWL4030_MODULE_MAIN_CHARGE, &val,
++ REG_BCICTL2);
++ if (ret)
++ return 0;
++
++ curr = ((val & ITHSENS) + 1) * 10;
++
++ /* Getting and calculating the thermistor resistance in ohms*/
++ res = volt * 1000 / curr;
++
++ /*calculating temperature*/
++ for (temp = 58; temp >= 0; temp--) {
++ int actual = di->pdata->battery_tmp_tbl[temp];
++ if ((actual - res) >= 0)
++ break;
++ }
++
++ /* Negative temperature */
++ if (temp < 3) {
++ if (temp == 2)
++ temp = -1;
++ else if (temp == 1)
++ temp = -2;
++ else
++ temp = -3;
++ }
++
++ return temp + 1;
++}
++
++/*
++ * Return battery voltage
++ * Or < 0 on failure.
++ */
++static int twl4030battery_voltage(void)
++{
++ int volt = read_bci_val(T2_BATTERY_VOLT);
++ return (volt * VOLT_STEP_SIZE) / VOLT_PSR_R;
++}
++
++/*
++ * Get latest battery voltage (using MADC)
++ *
++ * When the BCI is not charging, the BCI voltage registers are not
++ * updated and are 'frozen' but the data can be read through the
++ * MADC.
++ */
++static int twl4030battery_voltage_madc(void)
++{
++ struct twl4030_madc_request req;
++
++ req.channels = (1 << 12);
++ req.do_avg = 0;
++ req.method = TWL4030_MADC_SW1;
++ req.active = 0;
++ req.func_cb = NULL;
++ twl4030_madc_conversion(&req);
++
++ return (((int) req.rbuf[12]) * VOLT_STEP_SIZE) / VOLT_PSR_R;
++}
++
++/*
++ * Return the battery current
++ * Or < 0 on failure.
++ */
++static int twl4030battery_current(void)
++{
++ int ret, curr = read_bci_val(T2_BATTERY_CUR);
++ u8 val;
++
++ ret = twl_i2c_read_u8(TWL4030_MODULE_MAIN_CHARGE, &val,
++ REG_BCICTL1);
++ if (ret)
++ return ret;
++
++ if (val & CGAIN) /* slope of 0.44 mV/mA */
++ return (curr * CURR_STEP_SIZE) / CURR_PSR_R1;
++ else /* slope of 0.88 mV/mA */
++ return (curr * CURR_STEP_SIZE) / CURR_PSR_R2;
++}
++
++/*
++ * Return the battery backup voltage
++ * Or < 0 on failure.
++ */
++static int twl4030backupbatt_voltage(void)
++{
++ struct twl4030_madc_request req;
++ int temp;
++
++ req.channels = (1 << 9);
++ req.do_avg = 0;
++ req.method = TWL4030_MADC_SW1;
++ req.active = 0;
++ req.func_cb = NULL;
++ twl4030_madc_conversion(&req);
++ temp = (u16)req.rbuf[9];
++
++ return (temp * BK_VOLT_STEP_SIZE) / BK_VOLT_PSR_R;
++}
++
++/*
++ * Returns an integer value, that means,
++ * NO_PW_CONN no power supply is connected
++ * AC_PW_CONN if the AC power supply is connected
++ * USB_PW_CONN if the USB power supply is connected
++ * AC_PW_CONN + USB_PW_CONN if USB and AC power supplies are both connected
++ *
++ * Or < 0 on failure.
++ */
++static int twl4030charger_presence(void)
++{
++ int ret;
++ u8 hwsts;
++
++ ret = twl_i2c_read_u8(TWL4030_MODULE_PM_MASTER, &hwsts,
++ REG_STS_HW_CONDITIONS);
++ if (ret) {
++ pr_err("twl4030_bci: error reading STS_HW_CONDITIONS\n");
++ return ret;
++ }
++
++ ret = (hwsts & STS_CHG) ? AC_PW_CONN : NO_PW_CONN;
++ ret += (hwsts & STS_VBUS) ? USB_PW_CONN : NO_PW_CONN;
++
++ if (ret & USB_PW_CONN)
++ usb_charger_flag = 1;
++ else
++ usb_charger_flag = 0;
++
++ return ret;
++
++}
++
++/*
++ * Returns the main charge FSM status
++ * Or < 0 on failure.
++ */
++static int twl4030bci_status(void)
++{
++ int ret;
++ u8 status;
++
++ ret = twl_i2c_read_u8(TWL4030_MODULE_MAIN_CHARGE,
++ &status, REG_BCIMSTATEC);
++ if (ret) {
++ pr_err("twl4030_bci: error reading BCIMSTATEC\n");
++ return ret;
++ }
++
++#ifdef DEBUG
++ printk("BCI DEBUG: BCIMSTATEC Charge state is 0x%x\n", status);
++#endif
++ return (int) (status & BCIMSTAT_MASK);
++}
++
++static int read_bci_val(u8 reg)
++{
++ int ret, temp;
++ u8 val;
++
++ /* reading MSB */
++ ret = twl_i2c_read_u8(TWL4030_MODULE_MAIN_CHARGE, &val,
++ reg + 1);
++ if (ret)
++ return ret;
++
++ temp = ((int)(val & 0x03)) << 8;
++
++ /* reading LSB */
++ ret = twl_i2c_read_u8(TWL4030_MODULE_MAIN_CHARGE, &val,
++ reg);
++ if (ret)
++ return ret;
++
++ return temp | val;
++}
++
++/*
++ * Settup the twl4030 BCI module to enable backup
++ * battery charging.
++ */
++static int twl4030backupbatt_voltage_setup(void)
++{
++ int ret;
++
++ /* Starting backup batery charge */
++ ret = clear_n_set(TWL4030_MODULE_PM_RECEIVER, 0, BBCHEN,
++ REG_BB_CFG);
++ if (ret)
++ return ret;
++
++ return 0;
++}
++
++/*
++ * Settup the twl4030 BCI module to measure battery
++ * temperature
++ */
++static int twl4030battery_temp_setup(void)
++{
++#ifdef DEBUG
++ u8 i;
++#endif
++ u8 ret;
++
++ /* Enabling thermistor current */
++ ret = clear_n_set(TWL4030_MODULE_MAIN_CHARGE, 0, 0x1B,
++ REG_BCICTL1);
++ if (ret)
++ return ret;
++
++#ifdef DEBUG
++ twl_i2c_read_u8(TWL4030_MODULE_PM_MASTER, &ret, REG_BOOT_BCI);
++ printk("BCI DEBUG: BOOT_BCI Value is 0x%x\n", ret);
++
++ twl_i2c_read_u8(TWL4030_MODULE_PM_MASTER, &ret, REG_STS_HW_CONDITIONS);
++ printk("BCI DEBUG: STS_HW_CONDITIONS Value is 0x%x\n", ret);
++
++ twl_i2c_read_u8(TWL4030_MODULE_MAIN_CHARGE, &ret, REG_BCICTL1);
++ printk("BCI DEBUG: BCICTL1 Value is 0x%x\n", ret);
++
++ twl_i2c_read_u8(TWL4030_MODULE_MAIN_CHARGE, &ret, REG_BCICTL2);
++ printk("BCI DEBUG: BCICTL2 Value is 0x%x\n", ret);
++
++ twl_i2c_read_u8(TWL4030_MODULE_MAIN_CHARGE, &ret, 0x0);
++ printk("BCI DEBUG: BCIMDEN Value is 0x%x\n", ret);
++
++ twl_i2c_read_u8(TWL4030_MODULE_INTBR, &ret, REG_GPBR1);
++ printk("BCI DEBUG: GPBR1 Value is 0x%x\n", ret);
++
++ for(i = 0x0; i <= 0x32; i++)
++ {
++ twl_i2c_read_u8(TWL4030_MODULE_MAIN_CHARGE, &ret, i);
++ printk("BCI DEBUG: BCI 0x%x Value is 0x%x\n", i, ret);
++ }
++#endif
++
++ return 0;
++}
++
++/*
++ * Sets and clears bits on an given register on a given module
++ */
++static inline int clear_n_set(u8 mod_no, u8 clear, u8 set, u8 reg)
++{
++ int ret;
++ u8 val = 0;
++
++ /* Gets the initial register value */
++ ret = twl_i2c_read_u8(mod_no, &val, reg);
++ if (ret)
++ return ret;
++ /* Clearing all those bits to clear */
++ val &= ~(clear);
++
++ /* Setting all those bits to set */
++ val |= set;
++
++ /* Update the register */
++ ret = twl_i2c_write_u8(mod_no, val, reg);
++ if (ret)
++ return ret;
++
++ return 0;
++}
++
++static enum power_supply_property twl4030_bci_battery_props[] = {
++ POWER_SUPPLY_PROP_STATUS,
++ POWER_SUPPLY_PROP_ONLINE,
++ POWER_SUPPLY_PROP_VOLTAGE_NOW,
++ POWER_SUPPLY_PROP_CURRENT_NOW,
++ POWER_SUPPLY_PROP_CAPACITY,
++ POWER_SUPPLY_PROP_TEMP,
++};
++
++static enum power_supply_property twl4030_bk_bci_battery_props[] = {
++ POWER_SUPPLY_PROP_VOLTAGE_NOW,
++};
++
++static void
++twl4030_bk_bci_battery_read_status(struct twl4030_bci_device_info *di)
++{
++ di->bk_voltage_uV = twl4030backupbatt_voltage();
++}
++
++static void twl4030_bk_bci_battery_work(struct work_struct *work)
++{
++ struct twl4030_bci_device_info *di = container_of(work,
++ struct twl4030_bci_device_info,
++ twl4030_bk_bci_monitor_work.work);
++
++ if(!di->pdata->no_backup_battery)
++ twl4030_bk_bci_battery_read_status(di);
++ schedule_delayed_work(&di->twl4030_bk_bci_monitor_work, 500);
++}
++
++static void twl4030_bci_battery_read_status(struct twl4030_bci_device_info *di)
++{
++ if(di->charge_status != POWER_SUPPLY_STATUS_DISCHARGING) {
++ di->temp_C = twl4030battery_temperature(di);
++ di->voltage_uV = twl4030battery_voltage();
++ di->current_uA = twl4030battery_current();
++ }
++}
++
++static void
++twl4030_bci_battery_update_status(struct twl4030_bci_device_info *di)
++{
++ if (power_supply_am_i_supplied(&di->bat))
++ di->charge_status = POWER_SUPPLY_STATUS_CHARGING;
++ else
++ di->charge_status = POWER_SUPPLY_STATUS_DISCHARGING;
++ twl4030_bci_battery_read_status(di);
++}
++
++static void twl4030_bci_battery_work(struct work_struct *work)
++{
++ struct twl4030_bci_device_info *di = container_of(work,
++ struct twl4030_bci_device_info, twl4030_bci_monitor_work.work);
++
++ twl4030_bci_battery_update_status(di);
++ schedule_delayed_work(&di->twl4030_bci_monitor_work, 100);
++}
++
++
++#define to_twl4030_bci_device_info(x) container_of((x), \
++ struct twl4030_bci_device_info, bat);
++
++static void twl4030_bci_battery_external_power_changed(struct power_supply *psy)
++{
++ struct twl4030_bci_device_info *di = to_twl4030_bci_device_info(psy);
++
++ cancel_delayed_work(&di->twl4030_bci_monitor_work);
++ schedule_delayed_work(&di->twl4030_bci_monitor_work, 0);
++}
++
++#define to_twl4030_bk_bci_device_info(x) container_of((x), \
++ struct twl4030_bci_device_info, bk_bat);
++
++static ssize_t
++show_charge_current(struct device *dev, struct device_attribute *attr, char *buf)
++{
++ u8 ctl;
++ int ret = read_bci_val(REG_BCIIREF1) & 0x1FF;
++ twl_i2c_read_u8(TWL4030_MODULE_MAIN_CHARGE, &ctl, REG_BCICTL1);
++
++ if (ctl & CGAIN)
++ ret |= 0x200;
++
++#ifdef DEBUG
++ /* Dump debug */
++ twl4030battery_temp_setup();
++#endif
++
++ return sprintf(buf, "%d\n", ret);
++}
++
++static ssize_t
++set_charge_current(struct device *dev, struct device_attribute *attr, const char *buf, size_t count)
++{
++ unsigned long newCurrent;
++ int ret;
++
++ ret = strict_strtoul(buf, 10, &newCurrent);
++ if (ret)
++ return -EINVAL;
++
++ ret = twl_i2c_write_u8(TWL4030_MODULE_MAIN_CHARGE, KEY_IIREF, REG_BCIMFKEY);
++ if (ret)
++ return ret;
++
++ ret = twl_i2c_write_u8(TWL4030_MODULE_MAIN_CHARGE, newCurrent & 0xff, REG_BCIIREF1);
++ if (ret)
++ return ret;
++
++ ret = twl_i2c_write_u8(TWL4030_MODULE_MAIN_CHARGE, KEY_IIREF, REG_BCIMFKEY);
++ if (ret)
++ return ret;
++
++ ret = twl_i2c_write_u8(TWL4030_MODULE_MAIN_CHARGE, (newCurrent >> 8) & 0x1, REG_BCIIREF2);
++ if (ret)
++ return ret;
++
++ /* Set software-controlled charge */
++ twl4030charger_ac_en(ENABLE, 0);
++
++ /* Set CGAIN = 0 or 1 */
++ if(newCurrent > 511) {
++ u8 tmp;
++
++ /* Set CGAIN = 1 -- need to wait until automatic charge turns off */
++ while(!ret) {
++ clear_n_set(TWL4030_MODULE_MAIN_CHARGE, 0, CGAIN | 0x1B, REG_BCICTL1);
++ twl_i2c_read_u8(TWL4030_MODULE_MAIN_CHARGE, &tmp, REG_BCICTL1);
++
++ ret = tmp & CGAIN;
++ if(!ret)
++ mdelay(50);
++ }
++ } else {
++ u8 tmp;
++
++ /* Set CGAIN = 0 -- need to wait until automatic charge turns off */
++ while(!ret) {
++ clear_n_set(TWL4030_MODULE_MAIN_CHARGE, CGAIN, 0x1B, REG_BCICTL1);
++ twl_i2c_read_u8(TWL4030_MODULE_MAIN_CHARGE, &tmp, REG_BCICTL1);
++
++ ret = !(tmp & CGAIN);
++ if(!ret)
++ mdelay(50);
++ }
++ }
++
++ /* Set automatic charge (CGAIN = 0/1 persists) */
++ twl4030charger_ac_en(ENABLE, 1);
++
++ return count;
++}
++
++static ssize_t
++show_voltage(struct device *dev, struct device_attribute *attr, char *buf)
++{
++ return sprintf(buf, "%d\n", twl4030battery_voltage_madc());
++}
++
++static DEVICE_ATTR(charge_current, S_IRUGO | S_IWUGO, show_charge_current, set_charge_current);
++static DEVICE_ATTR(voltage_now_madc, S_IRUGO, show_voltage, NULL);
++
++static int twl4030_bk_bci_battery_get_property(struct power_supply *psy,
++ enum power_supply_property psp,
++ union power_supply_propval *val)
++{
++ struct twl4030_bci_device_info *di = to_twl4030_bk_bci_device_info(psy);
++
++ switch (psp) {
++ case POWER_SUPPLY_PROP_VOLTAGE_NOW:
++ val->intval = di->bk_voltage_uV;
++ break;
++ default:
++ return -EINVAL;
++ }
++
++ return 0;
++}
++
++static int twl4030_bci_battery_get_property(struct power_supply *psy,
++ enum power_supply_property psp,
++ union power_supply_propval *val)
++{
++ struct twl4030_bci_device_info *di;
++ int status = 0;
++
++ di = to_twl4030_bci_device_info(psy);
++
++ switch (psp) {
++ case POWER_SUPPLY_PROP_STATUS:
++ val->intval = di->charge_status;
++ return 0;
++ default:
++ break;
++ }
++
++ switch (psp) {
++ case POWER_SUPPLY_PROP_VOLTAGE_NOW:
++ {
++ /* Get latest data from MADC -- not done periodically by
++ worker as this is more expensive, so only do it when we
++ are actually asked for the data... */
++ if(di->charge_status == POWER_SUPPLY_STATUS_DISCHARGING)
++ val->intval = twl4030battery_voltage_madc();
++ else
++ val->intval = di->voltage_uV;
++
++ break;
++ }
++ case POWER_SUPPLY_PROP_CURRENT_NOW:
++ /* FIXME: Get from MADC */
++ if(di->charge_status == POWER_SUPPLY_STATUS_DISCHARGING)
++ val->intval = 0;
++ else
++ val->intval = di->current_uA;
++ break;
++ case POWER_SUPPLY_PROP_TEMP:
++ val->intval = di->temp_C;
++ break;
++ case POWER_SUPPLY_PROP_ONLINE:
++ status = twl4030bci_status();
++ if ((status & AC_STATEC) == AC_STATEC)
++ val->intval = POWER_SUPPLY_TYPE_MAINS;
++ else if (usb_charger_flag)
++ val->intval = POWER_SUPPLY_TYPE_USB;
++ else
++ val->intval = 0;
++ break;
++ case POWER_SUPPLY_PROP_CAPACITY:
++ /* Get latest data from MADC -- not done periodically by
++ worker as this is more expensive, so only do it when we
++ are actually asked for the data... */
++ if(di->charge_status == POWER_SUPPLY_STATUS_DISCHARGING)
++ di->voltage_uV = twl4030battery_voltage_madc();
++
++ /*
++ * need to get the correct percentage value per the
++ * battery characteristics. Approx values for now.
++ */
++ if (di->voltage_uV < 2894 || LVL_1) {
++ val->intval = 5;
++ LVL_1 = 0;
++ } else if ((di->voltage_uV < 3451 && di->voltage_uV > 2894)
++ || LVL_2) {
++ val->intval = 20;
++ LVL_2 = 0;
++ } else if ((di->voltage_uV < 3902 && di->voltage_uV > 3451)
++ || LVL_3) {
++ val->intval = 50;
++ LVL_3 = 0;
++ } else if ((di->voltage_uV < 3949 && di->voltage_uV > 3902)
++ || LVL_4) {
++ val->intval = 75;
++ LVL_4 = 0;
++ } else if (di->voltage_uV > 3949)
++ val->intval = 90;
++ break;
++ default:
++ return -EINVAL;
++ }
++ return 0;
++}
++
++static char *twl4030_bci_supplied_to[] = {
++ "twl4030_bci_battery",
++};
++
++static int __init twl4030_bci_battery_probe(struct platform_device *pdev)
++{
++ struct twl4030_bci_platform_data *pdata = pdev->dev.platform_data;
++ struct twl4030_bci_device_info *di;
++ int irq;
++ int ret;
++
++ di = kzalloc(sizeof(*di), GFP_KERNEL);
++ if (!di)
++ return -ENOMEM;
++
++ di->dev = &pdev->dev;
++ di->bat.name = "twl4030_bci_battery";
++ di->bat.supplied_to = twl4030_bci_supplied_to;
++ di->bat.num_supplicants = ARRAY_SIZE(twl4030_bci_supplied_to);
++ di->bat.type = POWER_SUPPLY_TYPE_BATTERY;
++ di->bat.properties = twl4030_bci_battery_props;
++ di->bat.num_properties = ARRAY_SIZE(twl4030_bci_battery_props);
++ di->bat.get_property = twl4030_bci_battery_get_property;
++ di->bat.external_power_changed =
++ twl4030_bci_battery_external_power_changed;
++
++ di->charge_status = POWER_SUPPLY_STATUS_UNKNOWN;
++
++ di->bk_bat.name = "twl4030_bci_bk_battery";
++ di->bk_bat.type = POWER_SUPPLY_TYPE_BATTERY;
++ di->bk_bat.properties = twl4030_bk_bci_battery_props;
++ di->bk_bat.num_properties = ARRAY_SIZE(twl4030_bk_bci_battery_props);
++ di->bk_bat.get_property = twl4030_bk_bci_battery_get_property;
++ di->bk_bat.external_power_changed = NULL;
++ di->pdata = pdata;
++
++ /* Set up clocks */
++ twl_i2c_write_u8(TWL4030_MODULE_INTBR, MADC_HFCLK_EN | DEFAULT_MADC_CLK_EN, REG_GPBR1);
++
++ twl4030charger_ac_en(ENABLE, CHARGE_MODE);
++ twl4030charger_usb_en(ENABLE);
++ twl4030battery_hw_level_en(ENABLE);
++ twl4030battery_hw_presence_en(ENABLE);
++
++ platform_set_drvdata(pdev, di);
++
++ /* settings for temperature sensing */
++ ret = twl4030battery_temp_setup();
++ if (ret)
++ goto temp_setup_fail;
++
++ /* enabling GPCH09 for read back battery voltage */
++ if(!di->pdata->no_backup_battery)
++ {
++ ret = twl4030backupbatt_voltage_setup();
++ if (ret)
++ goto voltage_setup_fail;
++ }
++
++ /* REVISIT do we need to request both IRQs ?? */
++
++ /* request BCI interruption */
++ irq = platform_get_irq(pdev, 1);
++ ret = request_irq(irq, twl4030battery_interrupt,
++ 0, pdev->name, NULL);
++ if (ret) {
++ dev_dbg(&pdev->dev, "could not request irq %d, status %d\n",
++ irq, ret);
++ goto batt_irq_fail;
++ }
++
++ /* request Power interruption */
++ irq = platform_get_irq(pdev, 0);
++ ret = request_irq(irq, twl4030charger_interrupt,
++ 0, pdev->name, di);
++
++ if (ret) {
++ dev_dbg(&pdev->dev, "could not request irq %d, status %d\n",
++ irq, ret);
++ goto chg_irq_fail;
++ }
++
++ ret = power_supply_register(&pdev->dev, &di->bat);
++ if (ret) {
++ dev_dbg(&pdev->dev, "failed to register main battery\n");
++ goto batt_failed;
++ }
++
++ INIT_DELAYED_WORK_DEFERRABLE(&di->twl4030_bci_monitor_work,
++ twl4030_bci_battery_work);
++ schedule_delayed_work(&di->twl4030_bci_monitor_work, 0);
++
++ if(!pdata->no_backup_battery)
++ {
++ ret = power_supply_register(&pdev->dev, &di->bk_bat);
++ if (ret) {
++ dev_dbg(&pdev->dev, "failed to register backup battery\n");
++ goto bk_batt_failed;
++ }
++ }
++
++ ret = device_create_file(di->bat.dev, &dev_attr_voltage_now_madc);
++ ret = device_create_file(di->bat.dev, &dev_attr_charge_current);
++ if (ret) {
++ dev_err(&pdev->dev, "failed to create sysfs entries\n");
++ goto bk_batt_failed;
++ }
++
++ INIT_DELAYED_WORK_DEFERRABLE(&di->twl4030_bk_bci_monitor_work,
++ twl4030_bk_bci_battery_work);
++ schedule_delayed_work(&di->twl4030_bk_bci_monitor_work, 500);
++
++ set_charge_current (NULL, NULL, "1023", 4);
++ return 0;
++
++bk_batt_failed:
++ if(!pdata->no_backup_battery)
++ power_supply_unregister(&di->bat);
++batt_failed:
++ free_irq(irq, di);
++chg_irq_fail:
++ irq = platform_get_irq(pdev, 1);
++ free_irq(irq, NULL);
++batt_irq_fail:
++voltage_setup_fail:
++temp_setup_fail:
++ twl4030charger_ac_en(DISABLE, CHARGE_MODE);
++ twl4030charger_usb_en(DISABLE);
++ twl4030battery_hw_level_en(DISABLE);
++ twl4030battery_hw_presence_en(DISABLE);
++ kfree(di);
++
++ return ret;
++}
++
++static int __exit twl4030_bci_battery_remove(struct platform_device *pdev)
++{
++ struct twl4030_bci_device_info *di = platform_get_drvdata(pdev);
++ int irq;
++
++ twl4030charger_ac_en(DISABLE, CHARGE_MODE);
++ twl4030charger_usb_en(DISABLE);
++ twl4030battery_hw_level_en(DISABLE);
++ twl4030battery_hw_presence_en(DISABLE);
++
++ irq = platform_get_irq(pdev, 0);
++ free_irq(irq, di);
++
++ irq = platform_get_irq(pdev, 1);
++ free_irq(irq, NULL);
++
++ flush_scheduled_work();
++ power_supply_unregister(&di->bat);
++ power_supply_unregister(&di->bk_bat);
++ platform_set_drvdata(pdev, NULL);
++ kfree(di);
++
++ return 0;
++}
++
++#ifdef CONFIG_PM
++static int twl4030_bci_battery_suspend(struct platform_device *pdev,
++ pm_message_t state)
++{
++ struct twl4030_bci_device_info *di = platform_get_drvdata(pdev);
++
++ di->charge_status = POWER_SUPPLY_STATUS_UNKNOWN;
++ cancel_delayed_work(&di->twl4030_bci_monitor_work);
++ cancel_delayed_work(&di->twl4030_bk_bci_monitor_work);
++ return 0;
++}
++
++static int twl4030_bci_battery_resume(struct platform_device *pdev)
++{
++ struct twl4030_bci_device_info *di = platform_get_drvdata(pdev);
++
++ schedule_delayed_work(&di->twl4030_bci_monitor_work, 0);
++ schedule_delayed_work(&di->twl4030_bk_bci_monitor_work, 50);
++ return 0;
++}
++#else
++#define twl4030_bci_battery_suspend NULL
++#define twl4030_bci_battery_resume NULL
++#endif /* CONFIG_PM */
++
++static struct platform_driver twl4030_bci_battery_driver = {
++ .probe = twl4030_bci_battery_probe,
++ .remove = __exit_p(twl4030_bci_battery_remove),
++ .suspend = twl4030_bci_battery_suspend,
++ .resume = twl4030_bci_battery_resume,
++ .driver = {
++ .name = "twl4030_bci",
++ },
++};
++
++MODULE_LICENSE("GPL");
++MODULE_ALIAS("platform:twl4030_bci");
++MODULE_AUTHOR("Texas Instruments Inc");
++
++static int __init twl4030_battery_init(void)
++{
++ return platform_driver_register(&twl4030_bci_battery_driver);
++}
++module_init(twl4030_battery_init);
++
++static void __exit twl4030_battery_exit(void)
++{
++ platform_driver_unregister(&twl4030_bci_battery_driver);
++}
++module_exit(twl4030_battery_exit);
++
+diff --git a/include/linux/i2c/twl.h b/include/linux/i2c/twl.h
+index d975c5b..a3470ce 100644
+--- a/include/linux/i2c/twl.h
++++ b/include/linux/i2c/twl.h
+@@ -442,6 +442,7 @@ struct twl4030_clock_init_data {
+ struct twl4030_bci_platform_data {
+ int *battery_tmp_tbl;
+ unsigned int tblsize;
++ bool no_backup_battery;
+ };
+
+ /* TWL4030_GPIO_MAX (18) GPIOs, with interrupts */
+--
+1.6.6.1
+
diff --git a/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0016-ARM-OMAP-omap3-touchbook-update-boardfile.patch b/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0016-ARM-OMAP-omap3-touchbook-update-boardfile.patch
index 5c1fa3f962..0dc58abfc8 100644
--- a/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0016-ARM-OMAP-omap3-touchbook-update-boardfile.patch
+++ b/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0016-ARM-OMAP-omap3-touchbook-update-boardfile.patch
@@ -1,14 +1,14 @@
-From d0e8e774fdc82320822246fae3167302730bd7e8 Mon Sep 17 00:00:00 2001
+From 67a87638586acaf7907f94d2f0d3b09190c23880 Mon Sep 17 00:00:00 2001
From: Gregoire Gentil <gregoire@gentil.com>
Date: Fri, 12 Mar 2010 11:49:16 +0100
-Subject: [PATCH 16/16] ARM: OMAP: omap3-touchbook: update boardfile
+Subject: [PATCH 16/17] ARM: OMAP: omap3-touchbook: update boardfile
---
- arch/arm/mach-omap2/board-omap3touchbook.c | 408 +++++++++++++++++++++-------
- 1 files changed, 313 insertions(+), 95 deletions(-)
+ arch/arm/mach-omap2/board-omap3touchbook.c | 417 +++++++++++++++++++++-------
+ 1 files changed, 322 insertions(+), 95 deletions(-)
diff --git a/arch/arm/mach-omap2/board-omap3touchbook.c b/arch/arm/mach-omap2/board-omap3touchbook.c
-index fc3e03c..ec7830e 100644
+index fc3e03c..c22a3e3 100644
--- a/arch/arm/mach-omap2/board-omap3touchbook.c
+++ b/arch/arm/mach-omap2/board-omap3touchbook.c
@@ -1,7 +1,7 @@
@@ -213,10 +213,15 @@ index fc3e03c..ec7830e 100644
/* VMMC1 for MMC1 pins CMD, CLK, DAT0..DAT3 (20 mA, plus card == max 220 mA) */
static struct regulator_init_data touchbook_vmmc1 = {
.constraints = {
-@@ -283,6 +369,10 @@ static struct twl4030_codec_data touchbook_codec_data = {
+@@ -283,6 +369,15 @@ static struct twl4030_codec_data touchbook_codec_data = {
.audio = &touchbook_audio_data,
};
++static struct twl4030_bci_platform_data touchbook_bci_data = {
++ .tblsize = 0,
++ .no_backup_battery = 1,
++};
++
+static struct twl4030_madc_platform_data touchbook_madc_data = {
+ .irq_line = 1,
+};
@@ -224,7 +229,7 @@ index fc3e03c..ec7830e 100644
static struct twl4030_platform_data touchbook_twldata = {
.irq_base = TWL4030_IRQ_BASE,
.irq_end = TWL4030_IRQ_END,
-@@ -291,6 +381,7 @@ static struct twl4030_platform_data touchbook_twldata = {
+@@ -291,10 +386,15 @@ static struct twl4030_platform_data touchbook_twldata = {
.usb = &touchbook_usb_data,
.gpio = &touchbook_gpio_data,
.codec = &touchbook_codec_data,
@@ -232,7 +237,15 @@ index fc3e03c..ec7830e 100644
.vmmc1 = &touchbook_vmmc1,
.vsim = &touchbook_vsim,
.vdac = &touchbook_vdac,
-@@ -310,10 +401,18 @@ static struct i2c_board_info __initdata touchBook_i2c_boardinfo[] = {
+ .vpll2 = &touchbook_vpll2,
++
++ /* TouchBook BCI */
++ .bci = &touchbook_bci_data,
++ .madc = &touchbook_madc_data,
+ };
+
+ static struct i2c_board_info __initdata touchbook_i2c_boardinfo[] = {
+@@ -310,10 +410,18 @@ static struct i2c_board_info __initdata touchBook_i2c_boardinfo[] = {
{
I2C_BOARD_INFO("bq27200", 0x55),
},
@@ -251,7 +264,7 @@ index fc3e03c..ec7830e 100644
/* Standard TouchBook bus */
omap_register_i2c_bus(1, 2600, touchbook_i2c_boardinfo,
ARRAY_SIZE(touchbook_i2c_boardinfo));
-@@ -322,53 +421,16 @@ static int __init omap3_touchbook_i2c_init(void)
+@@ -322,53 +430,16 @@ static int __init omap3_touchbook_i2c_init(void)
omap_register_i2c_bus(3, 100, touchBook_i2c_boardinfo,
ARRAY_SIZE(touchBook_i2c_boardinfo));
@@ -311,7 +324,7 @@ index fc3e03c..ec7830e 100644
static struct gpio_led gpio_leds[] = {
{
.name = "touchbook::usr0",
-@@ -412,6 +474,7 @@ static struct gpio_keys_button gpio_buttons[] = {
+@@ -412,6 +483,7 @@ static struct gpio_keys_button gpio_buttons[] = {
.gpio = 183,
.desc = "power",
.wakeup = 1,
@@ -319,7 +332,7 @@ index fc3e03c..ec7830e 100644
},
};
-@@ -428,23 +491,8 @@ static struct platform_device keys_gpio = {
+@@ -428,23 +500,8 @@ static struct platform_device keys_gpio = {
},
};
@@ -343,7 +356,7 @@ index fc3e03c..ec7830e 100644
omap2_init_common_hw(mt46h32m32lf6_sdrc_params,
mt46h32m32lf6_sdrc_params, omap35x_mpu_rate_table,
omap35x_dsp_rate_table, omap35x_l3_rate_table);
-@@ -456,9 +504,9 @@ static void __init omap3_touchbook_init_irq(void)
+@@ -456,9 +513,9 @@ static void __init omap3_touchbook_init_irq(void)
}
static struct platform_device *omap3_touchbook_devices[] __initdata = {
@@ -354,7 +367,7 @@ index fc3e03c..ec7830e 100644
};
static void __init omap3touchbook_flash_init(void)
-@@ -500,7 +548,7 @@ static void __init omap3touchbook_flash_init(void)
+@@ -500,7 +557,7 @@ static void __init omap3touchbook_flash_init(void)
}
}
@@ -363,7 +376,7 @@ index fc3e03c..ec7830e 100644
.port_mode[0] = EHCI_HCD_OMAP_MODE_PHY,
.port_mode[1] = EHCI_HCD_OMAP_MODE_PHY,
-@@ -512,6 +560,170 @@ static struct ehci_hcd_omap_platform_data ehci_pdata __initconst = {
+@@ -512,6 +569,170 @@ static struct ehci_hcd_omap_platform_data ehci_pdata __initconst = {
.reset_gpio_port[2] = -EINVAL
};
@@ -534,7 +547,7 @@ index fc3e03c..ec7830e 100644
static void omap3_touchbook_poweroff(void)
{
int r;
-@@ -525,33 +737,26 @@ static void omap3_touchbook_poweroff(void)
+@@ -525,33 +746,26 @@ static void omap3_touchbook_poweroff(void)
gpio_direction_output(TB_KILL_POWER_GPIO, 0);
}
@@ -575,7 +588,7 @@ index fc3e03c..ec7830e 100644
usb_musb_init();
usb_ehci_init(&ehci_pdata);
omap3touchbook_flash_init();
-@@ -559,6 +764,17 @@ static void __init omap3_touchbook_init(void)
+@@ -559,6 +773,17 @@ static void __init omap3_touchbook_init(void)
/* Ensure SDRC pins are mux'd for self-refresh */
omap_mux_init_signal("sdrc_cke0", OMAP_PIN_OUTPUT);
omap_mux_init_signal("sdrc_cke1", OMAP_PIN_OUTPUT);
@@ -593,7 +606,7 @@ index fc3e03c..ec7830e 100644
}
static void __init omap3_touchbook_map_io(void)
-@@ -567,6 +783,8 @@ static void __init omap3_touchbook_map_io(void)
+@@ -567,6 +792,8 @@ static void __init omap3_touchbook_map_io(void)
omap2_map_common_io();
}
diff --git a/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0017-ARM-OMAP-add-800MHz-OPP-and-remove-125MHz-one.patch b/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0017-ARM-OMAP-add-800MHz-OPP-and-remove-125MHz-one.patch
new file mode 100644
index 0000000000..8a06ead440
--- /dev/null
+++ b/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/0017-ARM-OMAP-add-800MHz-OPP-and-remove-125MHz-one.patch
@@ -0,0 +1,48 @@
+From 1f36c057ab83a5c5e8162094fb52022edd5ba9b8 Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen@dominion.thruhere.net>
+Date: Tue, 4 May 2010 09:01:21 +0200
+Subject: [PATCH 17/17] ARM: OMAP: add 800MHz OPP and remove 125MHz one
+
+---
+ arch/arm/mach-omap2/pm34xx.c | 6 ++++--
+ 1 files changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c
+index d1cc528..42fbcdd 100644
+--- a/arch/arm/mach-omap2/pm34xx.c
++++ b/arch/arm/mach-omap2/pm34xx.c
+@@ -120,7 +120,7 @@ static struct prm_setup_vc prm_setup = {
+ struct omap_opp omap35x_mpu_rate_table[] = {
+ {0, 0, 0},
+ /*OPP1*/
+- {S125M, VDD1_OPP1, 0x1E},
++// {S125M, VDD1_OPP1, 0x1E},
+ /*OPP2*/
+ {S250M, VDD1_OPP2, 0x26},
+ /*OPP3*/
+@@ -131,12 +131,13 @@ struct omap_opp omap35x_mpu_rate_table[] = {
+ {S600M, VDD1_OPP5, 0x3C},
+ /*OPP6*/
+ {S720M, VDD1_OPP6, 0x3C},
++ {S800M, VDD1_OPP6, 0x3F},
+ };
+
+ struct omap_opp omap35x_dsp_rate_table[] = {
+ {0, 0, 0},
+ /*OPP1*/
+- {S90M, VDD1_OPP1, 0x1E},
++// {S90M, VDD1_OPP1, 0x1E},
+ /*OPP2*/
+ {S180M, VDD1_OPP2, 0x26},
+ /*OPP3*/
+@@ -147,6 +148,7 @@ struct omap_opp omap35x_dsp_rate_table[] = {
+ {S430M, VDD1_OPP5, 0x3C},
+ /*OPP5*/
+ {S520M, VDD1_OPP6, 0x3C},
++ {S600M, VDD1_OPP6, 0x3F},
+ };
+
+ struct omap_opp omap35x_l3_rate_table[] = {
+--
+1.6.6.1
+
diff --git a/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/defconfig b/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/defconfig
index 991279b605..6f2b7bd989 100644
--- a/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/defconfig
+++ b/recipes/linux/linux-omap-psp-2.6.32/omap3-touchbook/defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.32
-# Wed Mar 31 11:43:52 2010
+# Mon May 10 12:50:28 2010
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -306,6 +306,8 @@ CONFIG_ARM_THUMBEE=y
# CONFIG_CPU_BPREDICT_DISABLE is not set
CONFIG_HAS_TLS_REG=y
CONFIG_ARM_L1_CACHE_SHIFT=6
+# CONFIG_USER_L2_PLE is not set
+# CONFIG_USER_PMON is not set
CONFIG_ARM_ERRATA_430973=y
# CONFIG_ARM_ERRATA_458693 is not set
# CONFIG_ARM_ERRATA_460075 is not set
@@ -356,6 +358,7 @@ CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
CONFIG_LEDS=y
CONFIG_ALIGNMENT_TRAP=y
# CONFIG_UACCESS_WITH_MEMCPY is not set
+CONFIG_CPU_V7_SYSFS=y
#
# Boot options
@@ -375,9 +378,9 @@ CONFIG_CPU_FREQ_TABLE=y
# CONFIG_CPU_FREQ_DEBUG is not set
CONFIG_CPU_FREQ_STAT=y
CONFIG_CPU_FREQ_STAT_DETAILS=y
-# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
+CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
-CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
@@ -1486,6 +1489,7 @@ CONFIG_POWER_SUPPLY=y
# CONFIG_BATTERY_DS2782 is not set
CONFIG_BATTERY_BQ27x00=y
# CONFIG_BATTERY_MAX17040 is not set
+CONFIG_TWL4030_BCI_BATTERY=y
CONFIG_HWMON=y
# CONFIG_HWMON_VID is not set
# CONFIG_HWMON_DEBUG_CHIP is not set
@@ -1595,7 +1599,7 @@ CONFIG_MFD_CORE=y
CONFIG_TWL4030_CORE=y
# CONFIG_TWL4030_POWER is not set
CONFIG_TWL4030_CODEC=y
-# CONFIG_TWL4030_MADC is not set
+CONFIG_TWL4030_MADC=y
# CONFIG_MFD_TMIO is not set
# CONFIG_MFD_T7L66XB is not set
# CONFIG_MFD_TC6387XB is not set
@@ -1712,7 +1716,6 @@ CONFIG_VIDEO_KS0127=m
CONFIG_VIDEO_MT9V011=m
CONFIG_VIDEO_TCM825X=m
CONFIG_VIDEO_MT9P012=m
-# CONFIG_VIDEO_MT9T111 is not set
CONFIG_VIDEO_DW9710=m
# CONFIG_VIDEO_OV3640 is not set
CONFIG_VIDEO_IMX046=m