Remove old TI WiLink4 testing bitbake files and unused image task. Also small cleanup...
authorDavid-John Willis <John.Willis@Distant-earth.com>
Fri, 10 Jul 2009 17:44:34 +0000 (18:44 +0100)
committerDavid-John Willis <John.Willis@Distant-earth.com>
Fri, 10 Jul 2009 17:44:34 +0000 (18:44 +0100)
41 files changed:
recipes/linux/omap3-pandora-kernel-wifi/0001-Implement-downsampling-with-debugs.patch [deleted file]
recipes/linux/omap3-pandora-kernel-wifi/0001-Removed-resolution-check-that-prevents-scaling-when.patch [deleted file]
recipes/linux/omap3-pandora-kernel-wifi/cache-display-fix.patch [deleted file]
recipes/linux/omap3-pandora-kernel-wifi/defconfig [deleted file]
recipes/linux/omap3-pandora-kernel-wifi/defconfig.bak [deleted file]
recipes/linux/omap3-pandora-kernel-wifi/dvb-fix-dma.diff [deleted file]
recipes/linux/omap3-pandora-kernel-wifi/evm-mcspi-ts.diff [deleted file]
recipes/linux/omap3-pandora-kernel-wifi/fix-install.patch [deleted file]
recipes/linux/omap3-pandora-kernel-wifi/fix-irq33.diff [deleted file]
recipes/linux/omap3-pandora-kernel-wifi/mru-256MB.diff [deleted file]
recipes/linux/omap3-pandora-kernel-wifi/mru-add-clk-get-parent.diff [deleted file]
recipes/linux/omap3-pandora-kernel-wifi/mru-enable-overlay-optimalization.diff [deleted file]
recipes/linux/omap3-pandora-kernel-wifi/mru-fix-display-panning.diff [deleted file]
recipes/linux/omap3-pandora-kernel-wifi/mru-fix-timings.diff [deleted file]
recipes/linux/omap3-pandora-kernel-wifi/mru-improve-pixclock-config.diff [deleted file]
recipes/linux/omap3-pandora-kernel-wifi/mru-make-dpll4-m4-ck-programmable.diff [deleted file]
recipes/linux/omap3-pandora-kernel-wifi/mru-make-video-timings-selectable.diff [deleted file]
recipes/linux/omap3-pandora-kernel-wifi/musb-dma-iso-in.eml [deleted file]
recipes/linux/omap3-pandora-kernel-wifi/musb-fix-ISO-in-unlink.diff [deleted file]
recipes/linux/omap3-pandora-kernel-wifi/musb-fix-dbrownell.patch [deleted file]
recipes/linux/omap3-pandora-kernel-wifi/musb-fix-endpoints.diff [deleted file]
recipes/linux/omap3-pandora-kernel-wifi/musb-fix-multiple-bulk-transfers.diff [deleted file]
recipes/linux/omap3-pandora-kernel-wifi/musb-mru-otgfix.diff [deleted file]
recipes/linux/omap3-pandora-kernel-wifi/musb-support-high-bandwidth.patch.eml [deleted file]
recipes/linux/omap3-pandora-kernel-wifi/nand.patch [deleted file]
recipes/linux/omap3-pandora-kernel-wifi/no-cortex-deadlock.patch [deleted file]
recipes/linux/omap3-pandora-kernel-wifi/no-empty-flash-warnings.patch [deleted file]
recipes/linux/omap3-pandora-kernel-wifi/no-harry-potter.diff [deleted file]
recipes/linux/omap3-pandora-kernel-wifi/omap-2430-lcd.patch [deleted file]
recipes/linux/omap3-pandora-kernel-wifi/oprofile-0.9.3.armv7.diff [deleted file]
recipes/linux/omap3-pandora-kernel-wifi/pvr/dispc.patch [deleted file]
recipes/linux/omap3-pandora-kernel-wifi/pvr/nokia-TI.diff [deleted file]
recipes/linux/omap3-pandora-kernel-wifi/pvr/pvr-add.patch [deleted file]
recipes/linux/omap3-pandora-kernel-wifi/read_die_ids.patch [deleted file]
recipes/linux/omap3-pandora-kernel-wifi/sitecomwl168-support.diff [deleted file]
recipes/linux/omap3-pandora-kernel-wifi/strongly-ordered-memory.diff [deleted file]
recipes/linux/omap3-pandora-kernel-wifi/timer-suppression.patch [deleted file]
recipes/linux/omap3-pandora-kernel-wifi/touchscreen.patch [deleted file]
recipes/linux/omap3-pandora-kernel-wifi_2.6.27-pandora.bb [deleted file]
recipes/pandora-system/pandora-libpnd/rc.libpnd
recipes/tasks/task-pandora-satogui.bb [deleted file]

diff --git a/recipes/linux/omap3-pandora-kernel-wifi/0001-Implement-downsampling-with-debugs.patch b/recipes/linux/omap3-pandora-kernel-wifi/0001-Implement-downsampling-with-debugs.patch
deleted file mode 100755 (executable)
index d3608df..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-From 1ef94095e9399a9a387b7b457b48f6c5de7013d8 Mon Sep 17 00:00:00 2001
-From: Tuomas Kulve <tuomas.kulve@movial.com>
-Date: Fri, 31 Oct 2008 14:23:57 +0200
-Subject: [PATCH] Implement downsampling (with debugs).
-
----
- drivers/video/omap/dispc.c |   75 +++++++++++++++++++++++++++++++++++++-------
- 1 files changed, 63 insertions(+), 12 deletions(-)
-
-diff --git a/drivers/video/omap/dispc.c b/drivers/video/omap/dispc.c
-index 68bc887..3640dbe 100644
---- a/drivers/video/omap/dispc.c
-+++ b/drivers/video/omap/dispc.c
-@@ -18,6 +18,8 @@
-  * with this program; if not, write to the Free Software Foundation, Inc.,
-  * 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
-  */
-+#define DEBUG
-+#define VERBOSE_DEBUG
- #include <linux/kernel.h>
- #include <linux/dma-mapping.h>
- #include <linux/mm.h>
-@@ -545,6 +547,17 @@ static void write_firhv_reg(int plane, int reg, u32 value)
-       dispc_write_reg(base + reg * 8, value);
- }
-+static void write_firv_reg(int plane, int reg, u32 value)
-+{
-+      u32 base;
-+
-+      if (plane == 1)
-+              base = 0x1E0;
-+      else
-+              base = 0x1E0 + 0x20;
-+      dispc_write_reg(base + reg * 4, value);
-+}
-+
- static void set_upsampling_coef_table(int plane)
- {
-       const u32 coef[][2] = {
-@@ -565,6 +578,27 @@ static void set_upsampling_coef_table(int plane)
-       }
- }
-+static void set_downsampling_coef_table(int plane)
-+{
-+      const u32 coef[][3] = {
-+                { 0x24382400, 0x24382400, 0x00000000 },
-+                { 0x28371FFE, 0x28391F04, 0x000004FE },
-+                { 0x2C361BFB, 0x2D381B08, 0x000008FB },
-+                { 0x303516F9, 0x3237170C, 0x00000CF9 },
-+                { 0x11343311, 0x123737F7, 0x0000F711 },
-+                { 0x1635300C, 0x173732F9, 0x0000F90C },
-+                { 0x1B362C08, 0x1B382DFB, 0x0000FB08 },
-+                { 0x1F372804, 0x1F3928FE, 0x0000FE04 },
-+      };
-+      int i;
-+
-+      for (i = 0; i < 8; i++) {
-+              write_firh_reg(plane, i, coef[i][0]);
-+              write_firhv_reg(plane, i, coef[i][1]);
-+              write_firv_reg(plane, i, coef[i][2]);
-+      }
-+}
-+
- static int omap_dispc_set_scale(int plane,
-                               int orig_width, int orig_height,
-                               int out_width, int out_height)
-@@ -592,25 +626,47 @@ static int omap_dispc_set_scale(int plane,
-               if (orig_height > out_height ||
-                   orig_width * 8 < out_width ||
-                   orig_height * 8 < out_height) {
-+                        dev_dbg(dispc.fbdev->dev, 
-+                                "Max upsampling is 8x, "
-+                                "tried: %dx%d -> %dx%d\n",
-+                                orig_width, orig_height,
-+                                out_width, out_height);
-                       enable_lcd_clocks(0);
-                       return -EINVAL;
-               }
-               set_upsampling_coef_table(plane);
-       } else if (orig_width > out_width) {
--              /* Downsampling not yet supported
--              */
--
--              enable_lcd_clocks(0);
--              return -EINVAL;
-+              /*
-+               * Downsampling.
-+               * Currently you can only scale both dimensions in one way.
-+               */
-+              if (orig_height < out_height ||
-+                  orig_width > out_width * 4||
-+                  orig_height > out_height * 4) {
-+                        dev_dbg(dispc.fbdev->dev, 
-+                                "Max downsampling is 4x, "
-+                                "tried: %dx%d -> %dx%d\n",
-+                                orig_width, orig_height,
-+                                out_width, out_height);
-+                      enable_lcd_clocks(0);
-+                      return -EINVAL;
-+              }
-+              set_downsampling_coef_table(plane);
-       }
-       if (!orig_width || orig_width == out_width)
-               fir_hinc = 0;
-       else
--              fir_hinc = 1024 * orig_width / out_width;
-+              fir_hinc = 1024 * (orig_width -1)/ (out_width -1);
-       if (!orig_height || orig_height == out_height)
-               fir_vinc = 0;
-       else
--              fir_vinc = 1024 * orig_height / out_height;
-+              fir_vinc = 1024 * (orig_height-1) / (out_height -1 );
-+
-+      dev_dbg(dispc.fbdev->dev, "out_width %d out_height %d orig_width %d "
-+              "orig_height %d fir_hinc  %d fir_vinc %d\n",
-+              out_width, out_height, orig_width, orig_height,
-+              fir_hinc, fir_vinc);
-+
-       dispc.fir_hinc[plane] = fir_hinc;
-       dispc.fir_vinc[plane] = fir_vinc;
-@@ -619,11 +675,6 @@ static int omap_dispc_set_scale(int plane,
-                   ((fir_vinc & 4095) << 16) |
-                   (fir_hinc & 4095));
--      dev_dbg(dispc.fbdev->dev, "out_width %d out_height %d orig_width %d "
--              "orig_height %d fir_hinc  %d fir_vinc %d\n",
--              out_width, out_height, orig_width, orig_height,
--              fir_hinc, fir_vinc);
--
-       MOD_REG_FLD(vs_reg[plane],
-                   FLD_MASK(16, 11) | FLD_MASK(0, 11),
-                   ((out_height - 1) << 16) | (out_width - 1));
--- 
-1.5.6.5
-
diff --git a/recipes/linux/omap3-pandora-kernel-wifi/0001-Removed-resolution-check-that-prevents-scaling-when.patch b/recipes/linux/omap3-pandora-kernel-wifi/0001-Removed-resolution-check-that-prevents-scaling-when.patch
deleted file mode 100755 (executable)
index 636203e..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-From 3227bd5c412e7eb0d4370b2834e71723f6b4be48 Mon Sep 17 00:00:00 2001
-From: Tuomas Kulve <tuomas.kulve@movial.fi>
-Date: Mon, 27 Oct 2008 18:55:59 +0200
-Subject: [PATCH] Removed resolution check that prevents scaling when output resolution doesn't match the original resolution.
-
----
- drivers/video/omap/dispc.c |    3 ---
- 1 files changed, 0 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/video/omap/dispc.c b/drivers/video/omap/dispc.c
-index 0f0b2e5..1df0c1e 100644
---- a/drivers/video/omap/dispc.c
-+++ b/drivers/video/omap/dispc.c
-@@ -579,9 +579,6 @@ static int omap_dispc_set_scale(int plane,
-       if ((unsigned)plane > OMAPFB_PLANE_NUM)
-               return -ENODEV;
--      if (out_width != orig_width || out_height != orig_height)
--              return -EINVAL;
--
-       enable_lcd_clocks(1);
-       if (orig_width < out_width) {
-               /*
--- 
-1.5.6.5
-
diff --git a/recipes/linux/omap3-pandora-kernel-wifi/cache-display-fix.patch b/recipes/linux/omap3-pandora-kernel-wifi/cache-display-fix.patch
deleted file mode 100755 (executable)
index 019fd5a..0000000
+++ /dev/null
@@ -1,238 +0,0 @@
-On Tue, 2008-07-01 at 06:23 +0100, Dirk Behme wrote:
-> Catalin Marinas wrote:
-> > But, anyway, if you want a patch, Harry is updating it to a recent
-> > kernel.
-> 
-> Any news on this? I think there are some people wanting a patch ;)
-
-See below for a preliminary patch updated to 2.6.26-rc8. Note that I
-don't plan to submit it in its current form but clean it up a bit first.
-
-
-Show the cache type of ARMv7 CPUs
-
-From: Catalin Marinas <catalin.marinas@arm.com>
-
-Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
----
-
- arch/arm/kernel/setup.c  |  137 +++++++++++++++++++++++++++++++++++++++++++++-
- include/asm-arm/system.h |   18 ++++++
- 2 files changed, 153 insertions(+), 2 deletions(-)
-
-
-diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c
-index 5ae0eb2..0cd238d 100644
---- a/arch/arm/kernel/setup.c
-+++ b/arch/arm/kernel/setup.c
-@@ -256,6 +256,24 @@ static const char *proc_arch[] = {
-       "?(17)",
- };
-+static const char *v7_cache_policy[4] = {
-+      "reserved",
-+      "AVIVT",
-+      "VIPT",
-+      "PIPT",
-+};
-+
-+static const char *v7_cache_type[8] = {
-+      "none",
-+      "instruction only",
-+      "data only",
-+      "separate instruction and data",
-+      "unified",
-+      "unknown type",
-+      "unknown type",
-+      "unknown type",
-+};
-+
- #define CACHE_TYPE(x) (((x) >> 25) & 15)
- #define CACHE_S(x)    ((x) & (1 << 24))
- #define CACHE_DSIZE(x)        (((x) >> 12) & 4095)    /* only if S=1 */
-@@ -266,6 +284,22 @@ static const char *proc_arch[] = {
- #define CACHE_M(y)    ((y) & (1 << 2))
- #define CACHE_LINE(y) ((y) & 3)
-+#define CACHE_TYPE_V7(x)      (((x) >> 14) & 3)
-+#define CACHE_UNIFIED(x)      ((((x) >> 27) & 7)+1)
-+#define CACHE_COHERENT(x)     ((((x) >> 24) & 7)+1)
-+
-+#define CACHE_ID_LEVEL_MASK   7
-+#define CACHE_ID_LEVEL_BITS   3
-+
-+#define CACHE_LINE_V7(v)      ((1 << (((v) & 7)+4)))
-+#define CACHE_ASSOC_V7(v)     ((((v) >> 3) & ((1<<10)-1))+1)
-+#define CACHE_SETS_V7(v)      ((((v) >> 13) & ((1<<15)-1))+1)
-+#define CACHE_SIZE_V7(v)      (CACHE_LINE_V7(v)*CACHE_ASSOC_V7(v)*CACHE_SETS_V7(v))
-+#define CACHE_WA_V7(v)                (((v) & (1<<28)) != 0)
-+#define CACHE_RA_V7(v)                (((v) & (1<<29)) != 0)
-+#define CACHE_WB_V7(v)                (((v) & (1<<30)) != 0)
-+#define CACHE_WT_V7(v)                (((v) & (1<<31)) != 0)
-+
- static inline void dump_cache(const char *prefix, int cpu, unsigned int cache)
- {
-       unsigned int mult = 2 + (CACHE_M(cache) ? 1 : 0);
-@@ -279,11 +313,57 @@ static inline void dump_cache(const char *prefix, int cpu, unsigned int cache)
-                       CACHE_LINE(cache)));
- }
-+static void dump_v7_cache(const char *type, int cpu, unsigned int level)
-+{
-+      unsigned int cachesize;
-+                    
-+      write_extended_cpuid(2,0,0,0,level);  /* Set the cache size selection register */
-+      write_extended_cpuid(0,7,5,4,0);      /* Prefetch flush to wait for above */
-+      cachesize = read_extended_cpuid(1,0,0,0);
-+
-+      printk("CPU%u: %s cache: %d bytes, associativity %d, %d byte lines, %d sets,\n      supports%s%s%s%s\n",
-+             cpu, type,
-+             CACHE_SIZE_V7(cachesize),CACHE_ASSOC_V7(cachesize),
-+             CACHE_LINE_V7(cachesize),CACHE_SETS_V7(cachesize),
-+             CACHE_WA_V7(cachesize) ? " WA" : "",
-+             CACHE_RA_V7(cachesize) ? " RA" : "",
-+             CACHE_WB_V7(cachesize) ? " WB" : "",
-+             CACHE_WT_V7(cachesize) ? " WT" : "");
-+}
-+
- static void __init dump_cpu_info(int cpu)
- {
-       unsigned int info = read_cpuid(CPUID_CACHETYPE);
--      if (info != processor_id) {
-+      if (info != processor_id && (info & (1 << 31))) {
-+              /* ARMv7 style of cache info register */
-+              unsigned int id = read_extended_cpuid(1,0,0,1);
-+              unsigned int level = 0;
-+              printk("CPU%u: L1 I %s cache. Caches unified at level %u, coherent at level %u\n",
-+                     cpu,
-+                     v7_cache_policy[CACHE_TYPE_V7(info)],
-+                     CACHE_UNIFIED(id),
-+                     CACHE_COHERENT(id));
-+
-+              while (id & CACHE_ID_LEVEL_MASK) {
-+                      printk("CPU%u: Level %u cache is %s\n",
-+                             cpu, (level >> 1)+1, v7_cache_type[id & CACHE_ID_LEVEL_MASK]);
-+
-+                      if (id & 1) {
-+                              /* Dump I at this level */
-+                              dump_v7_cache("I", cpu, level | 1);
-+                      }
-+
-+                      if (id & (4 | 2)) {
-+                              /* Dump D or unified at this level */
-+                              dump_v7_cache((id & 4) ? "unified" : "D", cpu, level);
-+                      }
-+
-+                      /* Next level out */
-+                      level += 2;
-+                      id >>= CACHE_ID_LEVEL_BITS;
-+              }
-+      } else if (info != processor_id) {
-               printk("CPU%u: D %s %s cache\n", cpu, cache_is_vivt() ? "VIVT" : "VIPT",
-                      cache_types[CACHE_TYPE(info)]);
-               if (CACHE_S(info)) {
-@@ -916,6 +996,30 @@ c_show_cache(struct seq_file *m, const char *type, unsigned int cache)
-                           CACHE_LINE(cache)));
- }
-+static void c_show_v7_cache(struct seq_file *m, const char *type, unsigned int levelselect)
-+{
-+      unsigned int cachesize;
-+      unsigned int level = (levelselect >> 1) + 1;
-+                    
-+      write_extended_cpuid(2,0,0,0,levelselect);  /* Set the cache size selection register */
-+      write_extended_cpuid(0,7,5,4,0);      /* Prefetch flush to wait for above */
-+      cachesize = read_extended_cpuid(1,0,0,0);
-+
-+      seq_printf(m, "L%u %s size\t\t: %d bytes\n"
-+                 "L%u %s assoc\t\t: %d\n"
-+                 "L%u %s line length\t: %d\n"
-+                 "L%u %s sets\t\t: %d\n"
-+                 "L%u %s supports\t\t:%s%s%s%s\n",
-+                 level, type, CACHE_SIZE_V7(cachesize),
-+                 level, type, CACHE_ASSOC_V7(cachesize),
-+                 level, type, CACHE_LINE_V7(cachesize),
-+                 level, type, CACHE_SETS_V7(cachesize),
-+                 level, type, CACHE_WA_V7(cachesize) ? " WA" : "",
-+                 CACHE_RA_V7(cachesize) ? " RA" : "",
-+                 CACHE_WB_V7(cachesize) ? " WB" : "",
-+                 CACHE_WT_V7(cachesize) ? " WT" : "");
-+}
-+
- static int c_show(struct seq_file *m, void *v)
- {
-       int i;
-@@ -971,7 +1075,36 @@ static int c_show(struct seq_file *m, void *v)
-       {
-               unsigned int cache_info = read_cpuid(CPUID_CACHETYPE);
--              if (cache_info != processor_id) {
-+              if (cache_info != processor_id && (cache_info & (1<<31))) {
-+                      /* V7 style of cache info register */
-+                      unsigned int id = read_extended_cpuid(1,0,0,1);
-+                      unsigned int levelselect = 0;
-+                      seq_printf(m, "L1 I cache\t:%s\n"
-+                                 "Cache unification level\t: %u\n"
-+                                 "Cache coherency level\t: %u\n",
-+                                 v7_cache_policy[CACHE_TYPE_V7(cache_info)],
-+                                 CACHE_UNIFIED(id),
-+                                 CACHE_COHERENT(id));
-+
-+                      while (id & CACHE_ID_LEVEL_MASK) {
-+                              seq_printf(m, "Level %u cache\t\t: %s\n",
-+                                         (levelselect >> 1)+1, v7_cache_type[id & CACHE_ID_LEVEL_MASK]);
-+
-+                              if (id & 1) {
-+                                      /* Dump I at this level */
-+                                      c_show_v7_cache(m, "I", levelselect | 1);
-+                              }
-+
-+                              if (id & (4 | 2)) {
-+                                      /* Dump D or unified at this level */
-+                                      c_show_v7_cache(m, (id & 4) ? "cache" : "D", levelselect);
-+                              }
-+
-+                              /* Next level out */
-+                              levelselect += 2;
-+                              id >>= CACHE_ID_LEVEL_BITS;
-+                      }
-+              } else if (cache_info != processor_id) {
-                       seq_printf(m, "Cache type\t: %s\n"
-                                     "Cache clean\t: %s\n"
-                                     "Cache lockdown\t: %s\n"
-diff --git a/arch/arm/include/asm/system.h b/arch/arm/include/asm/system.h
-index 514af79..704738e 100644
---- a/arch/arm/include/asm/system.h
-+++ b/arch/arm/include/asm/system.h
-@@ -74,6 +74,24 @@
-                   : "cc");                                            \
-               __val;                                                  \
-       })
-+#define read_extended_cpuid(op1,op2,op3,op4)          \
-+      ({                                                              \
-+              unsigned int __val;                                     \
-+              asm("mrc p15," __stringify(op1) ",%0,c" __stringify(op2)",c" __stringify(op3)"," __stringify(op4)       \
-+                  : "=r" (__val)                                      \
-+                  :                                                   \
-+                  : "cc");                                            \
-+              __val;                                                  \
-+      })
-+
-+#define write_extended_cpuid(op1,op2,op3,op4,v)               \
-+      ({                                                              \
-+              unsigned int __val = v;                                 \
-+              asm("mcr p15," __stringify(op1) ",%0,c" __stringify(op2)",c" __stringify(op3)"," __stringify(op4)       \
-+                  :                                                   \
-+                  : "r" (__val)                                       \
-+                  : "cc");                                            \
-+      })
- #else
- extern unsigned int processor_id;
- #define read_cpuid(reg) (processor_id)
-
-
--- 
-Catalin
-
-
diff --git a/recipes/linux/omap3-pandora-kernel-wifi/defconfig b/recipes/linux/omap3-pandora-kernel-wifi/defconfig
deleted file mode 100755 (executable)
index 16815a9..0000000
+++ /dev/null
@@ -1,1965 +0,0 @@
-#
-# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.27-omap1
-# Mon Jan 12 18:36:10 2009
-#
-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
-CONFIG_LOCKDEP_SUPPORT=y
-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_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"
-
-#
-# General setup
-#
-CONFIG_EXPERIMENTAL=y
-CONFIG_BROKEN_ON_SMP=y
-CONFIG_INIT_ENV_ARG_LIMIT=32
-CONFIG_LOCALVERSION=""
-CONFIG_LOCALVERSION_AUTO=y
-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_AUDIT is not set
-CONFIG_IKCONFIG=y
-CONFIG_IKCONFIG_PROC=y
-CONFIG_LOG_BUF_SHIFT=14
-CONFIG_CGROUPS=y
-# CONFIG_CGROUP_DEBUG is not set
-# CONFIG_CGROUP_NS is not set
-CONFIG_CGROUP_DEVICE=y
-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
-CONFIG_SYSFS_DEPRECATED_V2=y
-# CONFIG_RELAY is not set
-CONFIG_NAMESPACES=y
-CONFIG_UTS_NS=y
-CONFIG_IPC_NS=y
-CONFIG_USER_NS=y
-CONFIG_PID_NS=y
-CONFIG_BLK_DEV_INITRD=y
-CONFIG_INITRAMFS_SOURCE=""
-CONFIG_CC_OPTIMIZE_FOR_SIZE=y
-CONFIG_SYSCTL=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_HOTPLUG=y
-CONFIG_PRINTK=y
-CONFIG_BUG=y
-CONFIG_ELF_CORE=y
-CONFIG_COMPAT_BRK=y
-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_VM_EVENT_COUNTERS=y
-CONFIG_SLAB=y
-# CONFIG_SLUB is not set
-# CONFIG_SLOB is not set
-# CONFIG_PROFILING is not set
-# CONFIG_MARKERS is not set
-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
-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=y
-CONFIG_MODULE_UNLOAD=y
-CONFIG_MODULE_FORCE_UNLOAD=y
-CONFIG_MODVERSIONS=y
-CONFIG_MODULE_SRCVERSION_ALL=y
-CONFIG_KMOD=y
-CONFIG_BLOCK=y
-CONFIG_LBD=y
-# CONFIG_BLK_DEV_IO_TRACE is not set
-CONFIG_LSF=y
-# CONFIG_BLK_DEV_BSG is not set
-# 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 is not set
-# CONFIG_DEFAULT_DEADLINE is not set
-CONFIG_DEFAULT_CFQ=y
-# CONFIG_DEFAULT_NOOP is not set
-CONFIG_DEFAULT_IOSCHED="cfq"
-CONFIG_CLASSIC_RCU=y
-
-#
-# System Type
-#
-# 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_EBSA110 is not set
-# CONFIG_ARCH_EP93XX is not set
-# CONFIG_ARCH_FOOTBRIDGE is not set
-# CONFIG_ARCH_NETX is not set
-# CONFIG_ARCH_H720X is not set
-# CONFIG_ARCH_IMX is not set
-# CONFIG_ARCH_IOP13XX is not set
-# CONFIG_ARCH_IOP32X is not set
-# CONFIG_ARCH_IOP33X is not set
-# CONFIG_ARCH_IXP23XX is not set
-# CONFIG_ARCH_IXP2000 is not set
-# CONFIG_ARCH_IXP4XX is not set
-# CONFIG_ARCH_L7200 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_PNX4008 is not set
-# CONFIG_ARCH_PXA is not set
-# CONFIG_ARCH_RPC is not set
-# CONFIG_ARCH_SA1100 is not set
-# CONFIG_ARCH_S3C2410 is not set
-# CONFIG_ARCH_SHARK is not set
-# CONFIG_ARCH_LH7A40X is not set
-# CONFIG_ARCH_DAVINCI is not set
-CONFIG_ARCH_OMAP=y
-# CONFIG_ARCH_MSM7X00A is not set
-
-#
-# TI OMAP Implementations
-#
-CONFIG_ARCH_OMAP_OTG=y
-# CONFIG_ARCH_OMAP1 is not set
-# CONFIG_ARCH_OMAP2 is not set
-CONFIG_ARCH_OMAP3=y
-
-#
-# OMAP Feature Selections
-#
-# CONFIG_OMAP_DEBUG_POWERDOMAIN is not set
-# CONFIG_OMAP_DEBUG_CLOCKDOMAIN is not set
-CONFIG_OMAP_SMARTREFLEX=y
-# CONFIG_OMAP_SMARTREFLEX_TESTING is not set
-CONFIG_OMAP_RESET_CLOCKS=y
-CONFIG_OMAP_BOOT_TAG=y
-CONFIG_OMAP_BOOT_REASON=y
-# CONFIG_OMAP_COMPONENT_VERSION is not set
-# CONFIG_OMAP_GPIO_SWITCH is not set
-# CONFIG_OMAP_MUX is not set
-CONFIG_OMAP_MCBSP=y
-# CONFIG_OMAP_MMU_FWK is not set
-# CONFIG_OMAP_MBOX_FWK is not set
-# CONFIG_OMAP_MPU_TIMER is not set
-CONFIG_OMAP_32K_TIMER=y
-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_ARCH_OMAP34XX=y
-CONFIG_ARCH_OMAP3430=y
-
-#
-# OMAP Board Type
-#
-# CONFIG_MACH_OMAP_LDP is not set
-# CONFIG_MACH_OMAP_3430SDP is not set
-# CONFIG_MACH_OMAP3EVM is not set
-# CONFIG_MACH_OMAP3_BEAGLE is not set
-# CONFIG_MACH_OVERO is not set
-CONFIG_MACH_OMAP3_PANDORA=y
-CONFIG_OMAP_TICK_GPTIMER=12
-
-#
-# Boot options
-#
-
-#
-# Power management
-#
-
-#
-# Processor Type
-#
-CONFIG_CPU_32=y
-CONFIG_CPU_32v6K=y
-CONFIG_CPU_V7=y
-CONFIG_CPU_32v7=y
-CONFIG_CPU_ABRT_EV7=y
-CONFIG_CPU_PABRT_IFAR=y
-CONFIG_CPU_CACHE_V7=y
-CONFIG_CPU_CACHE_VIPT=y
-CONFIG_CPU_COPY_V6=y
-CONFIG_CPU_TLB_V7=y
-CONFIG_CPU_HAS_ASID=y
-CONFIG_CPU_CP15=y
-CONFIG_CPU_CP15_MMU=y
-
-#
-# Processor Features
-#
-CONFIG_ARM_THUMB=y
-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
-
-#
-# Bus support
-#
-# CONFIG_PCI_SYSCALL is not set
-# CONFIG_ARCH_SUPPORTS_MSI is not set
-# CONFIG_PCCARD is not set
-
-#
-# Kernel Features
-#
-CONFIG_TICK_ONESHOT=y
-CONFIG_NO_HZ=y
-CONFIG_HIGH_RES_TIMERS=y
-CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
-# CONFIG_PREEMPT is not set
-CONFIG_HZ=128
-CONFIG_AEABI=y
-# CONFIG_OABI_COMPAT is not set
-CONFIG_ARCH_FLATMEM_HAS_HOLES=y
-# CONFIG_ARCH_DISCONTIGMEM_ENABLE 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_VIRT_TO_BUS=y
-CONFIG_LEDS=y
-CONFIG_ALIGNMENT_TRAP=y
-
-#
-# Boot options
-#
-CONFIG_ZBOOT_ROM_TEXT=0x0
-CONFIG_ZBOOT_ROM_BSS=0x0
-CONFIG_CMDLINE=" debug "
-# CONFIG_XIP_KERNEL is not set
-CONFIG_KEXEC=y
-CONFIG_ATAGS_PROC=y
-
-#
-# CPU Frequency scaling
-#
-# CONFIG_CPU_FREQ is not set
-
-#
-# Floating point emulation
-#
-
-#
-# 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=y
-
-#
-# Userspace binary formats
-#
-CONFIG_BINFMT_ELF=y
-CONFIG_BINFMT_AOUT=m
-CONFIG_BINFMT_MISC=y
-
-#
-# Power management options
-#
-CONFIG_PM=y
-# CONFIG_PM_DEBUG is not set
-CONFIG_PM_SLEEP=y
-CONFIG_SUSPEND=y
-CONFIG_SUSPEND_FREEZER=y
-# CONFIG_APM_EMULATION is not set
-CONFIG_ARCH_SUSPEND_POSSIBLE=y
-CONFIG_NET=y
-
-#
-# Networking options
-#
-CONFIG_PACKET=y
-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_NET_KEY=y
-# CONFIG_NET_KEY_MIGRATE is not set
-CONFIG_INET=y
-# CONFIG_IP_MULTICAST is not set
-# CONFIG_IP_ADVANCED_ROUTER is not set
-CONFIG_IP_FIB_HASH=y
-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_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=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_TCP_CONG_CUBIC=y
-CONFIG_DEFAULT_TCP_CONG="cubic"
-# CONFIG_TCP_MD5SIG 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 is not set
-# CONFIG_INET6_ESP is not set
-# CONFIG_INET6_IPCOMP is not set
-# CONFIG_IPV6_MIP6 is not set
-# CONFIG_INET6_XFRM_TUNNEL is not set
-# CONFIG_INET6_TUNNEL is not set
-CONFIG_INET6_XFRM_MODE_TRANSPORT=m
-CONFIG_INET6_XFRM_MODE_TUNNEL=m
-CONFIG_INET6_XFRM_MODE_BEET=m
-# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
-CONFIG_IPV6_SIT=m
-CONFIG_IPV6_NDISC_NODETYPE=y
-# CONFIG_IPV6_TUNNEL is not set
-# CONFIG_IPV6_MULTIPLE_TABLES is not set
-# CONFIG_IPV6_MROUTE 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_DECNET is not set
-# 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
-
-#
-# Network testing
-#
-# CONFIG_NET_PKTGEN is not set
-# CONFIG_HAMRADIO is not set
-# CONFIG_CAN is not set
-# CONFIG_IRDA is not set
-CONFIG_BT=y
-CONFIG_BT_L2CAP=y
-CONFIG_BT_SCO=y
-CONFIG_BT_RFCOMM=y
-CONFIG_BT_RFCOMM_TTY=y
-CONFIG_BT_BNEP=y
-CONFIG_BT_BNEP_MC_FILTER=y
-CONFIG_BT_BNEP_PROTO_FILTER=y
-CONFIG_BT_HIDP=y
-
-#
-# Bluetooth device drivers
-#
-CONFIG_BT_HCIUSB=y
-CONFIG_BT_HCIUSB_SCO=y
-# CONFIG_BT_HCIBTUSB is not set
-CONFIG_BT_HCIBTSDIO=y
-# CONFIG_BT_HCIUART is not set
-CONFIG_BT_HCIBCM203X=y
-CONFIG_BT_HCIBPA10X=y
-# CONFIG_BT_HCIBFUSB is not set
-# CONFIG_BT_HCIBRF6150 is not set
-CONFIG_BT_HCIH4P=y
-# CONFIG_BT_HCIVHCI is not set
-# CONFIG_AF_RXRPC is not set
-
-#
-# Wireless
-#
-CONFIG_CFG80211=y
-CONFIG_NL80211=y
-CONFIG_WIRELESS_EXT=y
-CONFIG_WIRELESS_EXT_SYSFS=y
-CONFIG_MAC80211=y
-
-#
-# Rate control algorithm selection
-#
-CONFIG_MAC80211_RC_PID=y
-CONFIG_MAC80211_RC_DEFAULT_PID=y
-CONFIG_MAC80211_RC_DEFAULT="pid"
-# CONFIG_MAC80211_MESH is not set
-CONFIG_MAC80211_LEDS=y
-# CONFIG_MAC80211_DEBUG_MENU is not set
-CONFIG_IEEE80211=y
-# CONFIG_IEEE80211_DEBUG is not set
-CONFIG_IEEE80211_CRYPT_WEP=y
-CONFIG_IEEE80211_CRYPT_CCMP=y
-CONFIG_IEEE80211_CRYPT_TKIP=y
-# CONFIG_RFKILL is not set
-# CONFIG_NET_9P is not set
-
-#
-# Device Drivers
-#
-
-#
-# Generic Driver Options
-#
-CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
-CONFIG_STANDALONE=y
-CONFIG_PREVENT_FIRMWARE_BUILD=y
-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=y
-CONFIG_MTD_PARTITIONS=y
-# CONFIG_MTD_REDBOOT_PARTS is not set
-# CONFIG_MTD_CMDLINE_PARTS is not set
-# CONFIG_MTD_AFS_PARTS is not set
-# CONFIG_MTD_AR7_PARTS is not set
-
-#
-# User Modules And Translation Layers
-#
-CONFIG_MTD_CHAR=y
-CONFIG_MTD_BLKDEVS=y
-CONFIG_MTD_BLOCK=y
-# CONFIG_FTL is not set
-# CONFIG_NFTL is not set
-# CONFIG_INFTL is not set
-# CONFIG_RFD_FTL is not set
-# CONFIG_SSFDC is not set
-# CONFIG_MTD_OOPS is not set
-
-#
-# RAM/ROM/Flash chip drivers
-#
-# CONFIG_MTD_CFI is not set
-# CONFIG_MTD_JEDECPROBE is not set
-CONFIG_MTD_MAP_BANK_WIDTH_1=y
-CONFIG_MTD_MAP_BANK_WIDTH_2=y
-CONFIG_MTD_MAP_BANK_WIDTH_4=y
-# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
-# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
-# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
-CONFIG_MTD_CFI_I1=y
-CONFIG_MTD_CFI_I2=y
-# CONFIG_MTD_CFI_I4 is not set
-# CONFIG_MTD_CFI_I8 is not set
-# CONFIG_MTD_RAM is not set
-# CONFIG_MTD_ROM is not set
-# CONFIG_MTD_ABSENT is not set
-
-#
-# Mapping drivers for chip access
-#
-# CONFIG_MTD_COMPLEX_MAPPINGS is not set
-# CONFIG_MTD_PLATRAM is not set
-
-#
-# Self-contained MTD device drivers
-#
-# CONFIG_MTD_DATAFLASH is not set
-# CONFIG_MTD_M25P80 is not set
-# CONFIG_MTD_SLRAM is not set
-# CONFIG_MTD_PHRAM is not set
-# CONFIG_MTD_MTDRAM is not set
-# CONFIG_MTD_BLOCK2MTD is not set
-
-#
-# Disk-On-Chip Device Drivers
-#
-# CONFIG_MTD_DOC2000 is not set
-# CONFIG_MTD_DOC2001 is not set
-# CONFIG_MTD_DOC2001PLUS is not set
-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_OMAP2=y
-CONFIG_MTD_NAND_IDS=y
-# CONFIG_MTD_NAND_DISKONCHIP is not set
-# CONFIG_MTD_NAND_NANDSIM is not set
-CONFIG_MTD_NAND_PLATFORM=y
-# CONFIG_MTD_ALAUDA is not set
-# CONFIG_MTD_ONENAND is not set
-
-#
-# UBI - Unsorted block images
-#
-# CONFIG_MTD_UBI 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=m
-# 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=m
-CONFIG_CDROM_PKTCDVD_BUFFERS=8
-# CONFIG_CDROM_PKTCDVD_WCACHE is not set
-# CONFIG_ATA_OVER_ETH is not set
-CONFIG_MISC_DEVICES=y
-CONFIG_EEPROM_93CX6=y
-# CONFIG_OMAP_STI is not set
-# CONFIG_ENCLOSURE_SERVICES is not set
-CONFIG_PANDORA_GAME_CONSOLE=y
-CONFIG_HAVE_IDE=y
-# CONFIG_IDE is not set
-
-#
-# SCSI device support
-#
-# CONFIG_RAID_ATTRS is not set
-CONFIG_SCSI=y
-CONFIG_SCSI_DMA=y
-# CONFIG_SCSI_TGT is not set
-# CONFIG_SCSI_NETLINK is not set
-CONFIG_SCSI_PROC_FS=y
-
-#
-# SCSI support type (disk, tape, CD-ROM)
-#
-CONFIG_BLK_DEV_SD=y
-# CONFIG_CHR_DEV_ST is not set
-# CONFIG_CHR_DEV_OSST is not set
-CONFIG_BLK_DEV_SR=m
-# CONFIG_BLK_DEV_SR_VENDOR is not set
-CONFIG_CHR_DEV_SG=m
-CONFIG_CHR_DEV_SCH=m
-
-#
-# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
-#
-CONFIG_SCSI_MULTI_LUN=y
-# CONFIG_SCSI_CONSTANTS is not set
-# CONFIG_SCSI_LOGGING is not set
-# CONFIG_SCSI_SCAN_ASYNC is not set
-CONFIG_SCSI_WAIT_SCAN=m
-
-#
-# SCSI Transports
-#
-# CONFIG_SCSI_SPI_ATTRS is not set
-# CONFIG_SCSI_FC_ATTRS is not set
-# CONFIG_SCSI_ISCSI_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_SCSI_DEBUG is not set
-# CONFIG_SCSI_DH is not set
-# CONFIG_ATA is not set
-# CONFIG_MD 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_NETDEV_1000 is not set
-# CONFIG_NETDEV_10000 is not set
-
-#
-# Wireless LAN
-#
-# CONFIG_WLAN_PRE80211 is not set
-CONFIG_WLAN_80211=y
-CONFIG_LIBERTAS=m
-CONFIG_LIBERTAS_USB=m
-# CONFIG_LIBERTAS_SDIO is not set
-# CONFIG_LIBERTAS_DEBUG is not set
-CONFIG_USB_ZD1201=y
-CONFIG_USB_NET_RNDIS_WLAN=y
-CONFIG_RTL8187=y
-# CONFIG_MAC80211_HWSIM is not set
-CONFIG_P54_COMMON=y
-CONFIG_P54_USB=y
-# CONFIG_IWLWIFI_LEDS is not set
-CONFIG_HOSTAP=m
-CONFIG_HOSTAP_FIRMWARE=y
-CONFIG_HOSTAP_FIRMWARE_NVRAM=y
-# CONFIG_B43 is not set
-# CONFIG_B43LEGACY is not set
-CONFIG_ZD1211RW=y
-# CONFIG_ZD1211RW_DEBUG is not set
-CONFIG_RT2X00=y
-CONFIG_RT2X00_LIB=y
-CONFIG_RT2X00_LIB_USB=y
-CONFIG_RT2X00_LIB_FIRMWARE=y
-CONFIG_RT2X00_LIB_LEDS=y
-CONFIG_RT2500USB=y
-CONFIG_RT2500USB_LEDS=y
-CONFIG_RT73USB=y
-CONFIG_RT73USB_LEDS=y
-# CONFIG_RT2X00_DEBUG is not set
-
-#
-# USB Network Adapters
-#
-CONFIG_USB_CATC=m
-CONFIG_USB_KAWETH=m
-CONFIG_USB_PEGASUS=m
-CONFIG_USB_RTL8150=m
-CONFIG_USB_USBNET=y
-CONFIG_USB_NET_AX8817X=y
-CONFIG_USB_NET_CDCETHER=y
-CONFIG_USB_NET_DM9601=m
-CONFIG_USB_NET_GL620A=m
-CONFIG_USB_NET_NET1080=m
-CONFIG_USB_NET_PLUSB=m
-CONFIG_USB_NET_MCS7830=m
-CONFIG_USB_NET_RNDIS_HOST=y
-CONFIG_USB_NET_CDC_SUBSET=m
-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=m
-# CONFIG_WAN 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_PPPOL2TP=m
-# CONFIG_SLIP is not set
-CONFIG_SLHC=m
-# CONFIG_NETCONSOLE is not set
-# CONFIG_NETPOLL is not set
-# CONFIG_NET_POLL_CONTROLLER is not set
-# CONFIG_ISDN is not set
-
-#
-# Input device support
-#
-CONFIG_INPUT=y
-# CONFIG_INPUT_FF_MEMLESS is not set
-# CONFIG_INPUT_POLLDEV is not set
-
-#
-# Userland interfaces
-#
-CONFIG_INPUT_MOUSEDEV=y
-CONFIG_INPUT_MOUSEDEV_PSAUX=y
-CONFIG_INPUT_MOUSEDEV_SCREEN_X=800
-CONFIG_INPUT_MOUSEDEV_SCREEN_Y=480
-CONFIG_INPUT_JOYDEV=y
-CONFIG_INPUT_EVDEV=y
-# CONFIG_INPUT_EVBUG is not set
-
-#
-# Input Device Drivers
-#
-CONFIG_INPUT_KEYBOARD=y
-# CONFIG_KEYBOARD_ATKBD is not set
-# CONFIG_KEYBOARD_SUNKBD is not set
-# CONFIG_KEYBOARD_LKKBD is not set
-# CONFIG_KEYBOARD_XTKBD is not set
-# CONFIG_KEYBOARD_NEWTON is not set
-# CONFIG_KEYBOARD_STOWAWAY is not set
-CONFIG_KEYBOARD_TWL4030=y
-# CONFIG_KEYBOARD_LM8323 is not set
-CONFIG_KEYBOARD_GPIO=y
-CONFIG_INPUT_MOUSE=y
-# CONFIG_MOUSE_PS2 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_INPUT_JOYSTICK is not set
-# CONFIG_INPUT_TABLET is not set
-CONFIG_INPUT_TOUCHSCREEN=y
-CONFIG_TOUCHSCREEN_ADS7846=y
-# CONFIG_TOUCHSCREEN_FUJITSU is not set
-# CONFIG_TOUCHSCREEN_GUNZE is not set
-# CONFIG_TOUCHSCREEN_ELO is not set
-# CONFIG_TOUCHSCREEN_MTOUCH is not set
-# CONFIG_TOUCHSCREEN_INEXIO is not set
-# CONFIG_TOUCHSCREEN_MK712 is not set
-# CONFIG_TOUCHSCREEN_PENMOUNT is not set
-# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
-# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
-# CONFIG_TOUCHSCREEN_TSC2005 is not set
-# CONFIG_TOUCHSCREEN_TSC2102 is not set
-# CONFIG_TOUCHSCREEN_TSC210X is not set
-# CONFIG_TOUCHSCREEN_UCB1400 is not set
-# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
-# CONFIG_TOUCHSCREEN_TOUCHIT213 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_UINPUT is not set
-CONFIG_INPUT_VSENSE=y
-
-#
-# Hardware I/O ports
-#
-CONFIG_SERIO=y
-CONFIG_SERIO_SERPORT=y
-CONFIG_SERIO_LIBPS2=y
-# CONFIG_SERIO_RAW is not set
-# CONFIG_GAMEPORT is not set
-
-#
-# Character devices
-#
-CONFIG_VT=y
-CONFIG_CONSOLE_TRANSLATIONS=y
-CONFIG_VT_CONSOLE=y
-CONFIG_HW_CONSOLE=y
-CONFIG_VT_HW_CONSOLE_BINDING=y
-CONFIG_DEVKMEM=y
-# CONFIG_SERIAL_NONSTANDARD is not set
-
-#
-# Serial drivers
-#
-CONFIG_SERIAL_8250=y
-CONFIG_SERIAL_8250_CONSOLE=y
-CONFIG_SERIAL_8250_NR_UARTS=32
-CONFIG_SERIAL_8250_RUNTIME_UARTS=4
-CONFIG_SERIAL_8250_EXTENDED=y
-CONFIG_SERIAL_8250_MANY_PORTS=y
-CONFIG_SERIAL_8250_SHARE_IRQ=y
-CONFIG_SERIAL_8250_DETECT_IRQ=y
-CONFIG_SERIAL_8250_RSA=y
-
-#
-# Non-8250 serial port support
-#
-CONFIG_SERIAL_CORE=y
-CONFIG_SERIAL_CORE_CONSOLE=y
-CONFIG_UNIX98_PTYS=y
-# CONFIG_LEGACY_PTYS is not set
-# CONFIG_IPMI_HANDLER is not set
-CONFIG_HW_RANDOM=y
-# CONFIG_NVRAM 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_CHARDEV=y
-CONFIG_I2C_HELPER_AUTO=y
-
-#
-# I2C Hardware Bus support
-#
-
-#
-# I2C system bus drivers (mostly embedded / system-on-chip)
-#
-# CONFIG_I2C_GPIO is not set
-# CONFIG_I2C_OCORES is not set
-CONFIG_I2C_OMAP=y
-# CONFIG_I2C_SIMTEC is not set
-
-#
-# External I2C/SMBus adapter drivers
-#
-# CONFIG_I2C_PARPORT_LIGHT is not set
-# CONFIG_I2C_TAOS_EVM is not set
-# CONFIG_I2C_TINY_USB is not set
-
-#
-# Other I2C/SMBus bus drivers
-#
-# CONFIG_I2C_PCA_PLATFORM is not set
-# CONFIG_I2C_STUB is not set
-
-#
-# Miscellaneous I2C Chip support
-#
-# CONFIG_DS1682 is not set
-# CONFIG_AT24 is not set
-CONFIG_SENSORS_EEPROM=y
-# 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_TLV320AIC23 is not set
-CONFIG_TWL4030_MADC=m
-CONFIG_TWL4030_USB=y
-CONFIG_TWL4030_PWRBUTTON=y
-CONFIG_TWL4030_POWEROFF=y
-# CONFIG_SENSORS_MAX6875 is not set
-# CONFIG_SENSORS_TSL2550 is not set
-# CONFIG_LP5521 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=y
-# CONFIG_SPI_DEBUG is not set
-CONFIG_SPI_MASTER=y
-
-#
-# SPI Master Controller Drivers
-#
-# CONFIG_SPI_BITBANG is not set
-CONFIG_SPI_OMAP24XX=y
-
-#
-# SPI Protocol Masters
-#
-# CONFIG_SPI_AT25 is not set
-# CONFIG_SPI_TSC2101 is not set
-# CONFIG_SPI_TSC2102 is not set
-# CONFIG_SPI_TSC210X is not set
-# CONFIG_SPI_TSC2301 is not set
-# CONFIG_SPI_SPIDEV is not set
-# CONFIG_SPI_TLE62X0 is not set
-CONFIG_ARCH_REQUIRE_GPIOLIB=y
-CONFIG_GPIOLIB=y
-# CONFIG_DEBUG_GPIO is not set
-CONFIG_GPIO_SYSFS=y
-
-#
-# I2C GPIO expanders:
-#
-# CONFIG_GPIO_MAX732X is not set
-# CONFIG_GPIO_PCA953X is not set
-# CONFIG_GPIO_PCF857X is not set
-CONFIG_GPIO_TWL4030=y
-
-#
-# PCI GPIO expanders:
-#
-
-#
-# SPI GPIO expanders:
-#
-# CONFIG_GPIO_MAX7301 is not set
-# CONFIG_GPIO_MCP23S08 is not set
-# CONFIG_W1 is not set
-# CONFIG_POWER_SUPPLY is not set
-# CONFIG_HWMON is not set
-# CONFIG_WATCHDOG is not set
-
-#
-# Sonics Silicon Backplane
-#
-CONFIG_SSB_POSSIBLE=y
-# CONFIG_SSB is not set
-
-#
-# Multifunction device drivers
-#
-# CONFIG_MFD_CORE is not set
-# 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_TWL4030_CORE=y
-CONFIG_TWL4030_POWER=y
-# 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
-#
-
-#
-# Multimedia core support
-#
-CONFIG_VIDEO_DEV=m
-CONFIG_VIDEO_V4L2_COMMON=m
-CONFIG_VIDEO_ALLOW_V4L1=y
-CONFIG_VIDEO_V4L1_COMPAT=y
-CONFIG_DVB_CORE=m
-CONFIG_VIDEO_MEDIA=m
-
-#
-# Multimedia drivers
-#
-CONFIG_MEDIA_ATTACH=y
-CONFIG_MEDIA_TUNER=m
-# CONFIG_MEDIA_TUNER_CUSTOMIZE is not set
-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_QT1010=m
-CONFIG_MEDIA_TUNER_XC2028=m
-CONFIG_MEDIA_TUNER_XC5000=m
-CONFIG_MEDIA_TUNER_MXL5005S=m
-CONFIG_VIDEO_V4L2=m
-CONFIG_VIDEO_V4L1=m
-CONFIG_VIDEO_TVEEPROM=m
-CONFIG_VIDEO_TUNER=m
-CONFIG_VIDEO_CAPTURE_DRIVERS=y
-# CONFIG_VIDEO_ADV_DEBUG is not set
-CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
-CONFIG_VIDEO_MSP3400=m
-CONFIG_VIDEO_CS53L32A=m
-CONFIG_VIDEO_WM8775=m
-CONFIG_VIDEO_SAA711X=m
-CONFIG_VIDEO_CX25840=m
-CONFIG_VIDEO_CX2341X=m
-# CONFIG_VIDEO_VIVI is not set
-# 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_TUNER_3036 is not set
-# CONFIG_VIDEO_AU0828 is not set
-CONFIG_V4L_USB_DRIVERS=y
-CONFIG_USB_VIDEO_CLASS=m
-CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
-# CONFIG_USB_GSPCA is not set
-CONFIG_VIDEO_PVRUSB2=m
-CONFIG_VIDEO_PVRUSB2_SYSFS=y
-CONFIG_VIDEO_PVRUSB2_DVB=y
-# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set
-# CONFIG_VIDEO_EM28XX is not set
-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 is not set
-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 is not set
-CONFIG_USB_PWC=m
-# CONFIG_USB_PWC_DEBUG is not set
-CONFIG_USB_ZR364XX=m
-# CONFIG_USB_STKWEBCAM is not set
-# CONFIG_USB_S2255 is not set
-# CONFIG_SOC_CAMERA is not set
-# CONFIG_VIDEO_SH_MOBILE_CEU is not set
-CONFIG_RADIO_ADAPTERS=y
-# CONFIG_RADIO_TEA5761 is not set
-# CONFIG_USB_DSBR is not set
-# CONFIG_USB_SI470X is not set
-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 is not set
-# CONFIG_DVB_USB_ANYSEE is not set
-CONFIG_DVB_TTUSB_BUDGET=m
-CONFIG_DVB_TTUSB_DEC=m
-CONFIG_DVB_CINERGYT2=m
-# CONFIG_DVB_CINERGYT2_TUNING is not set
-# CONFIG_DVB_SIANO_SMS1XXX is not set
-
-#
-# Supported FlexCopII (B2C2) Adapters
-#
-# CONFIG_DVB_B2C2_FLEXCOP is not set
-
-#
-# Supported DVB Frontends
-#
-
-#
-# Customise DVB Frontends
-#
-# CONFIG_DVB_FE_CUSTOMISE is not set
-
-#
-# DVB-S (satellite) frontends
-#
-CONFIG_DVB_CX24110=m
-CONFIG_DVB_CX24123=m
-CONFIG_DVB_MT312=m
-CONFIG_DVB_S5H1420=m
-CONFIG_DVB_STV0299=m
-CONFIG_DVB_TDA8083=m
-CONFIG_DVB_TDA10086=m
-CONFIG_DVB_VES1X93=m
-CONFIG_DVB_TUNER_ITD1000=m
-CONFIG_DVB_TDA826X=m
-CONFIG_DVB_TUA6100=m
-
-#
-# DVB-T (terrestrial) frontends
-#
-CONFIG_DVB_SP8870=m
-CONFIG_DVB_SP887X=m
-CONFIG_DVB_CX22700=m
-CONFIG_DVB_CX22702=m
-# CONFIG_DVB_DRX397XD is not set
-CONFIG_DVB_L64781=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
-
-#
-# DVB-C (cable) frontends
-#
-CONFIG_DVB_VES1820=m
-CONFIG_DVB_TDA10021=m
-CONFIG_DVB_TDA10023=m
-CONFIG_DVB_STV0297=m
-
-#
-# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
-#
-CONFIG_DVB_NXT200X=m
-# CONFIG_DVB_OR51211 is not set
-# CONFIG_DVB_OR51132 is not set
-CONFIG_DVB_BCM3510=m
-CONFIG_DVB_LGDT330X=m
-CONFIG_DVB_S5H1409=m
-CONFIG_DVB_AU8522=m
-CONFIG_DVB_S5H1411=m
-
-#
-# Digital terrestrial only tuners/PLL
-#
-CONFIG_DVB_PLL=m
-CONFIG_DVB_TUNER_DIB0070=m
-
-#
-# SEC control devices for DVB-S
-#
-CONFIG_DVB_LNBP21=m
-# CONFIG_DVB_ISL6405 is not set
-CONFIG_DVB_ISL6421=m
-CONFIG_DAB=y
-
-#
-# Graphics support
-#
-# CONFIG_VGASTATE is not set
-# CONFIG_VIDEO_OUTPUT_CONTROL is not set
-CONFIG_FB=y
-# CONFIG_FIRMWARE_EDID is not set
-# CONFIG_FB_DDC is not set
-CONFIG_FB_CFB_FILLRECT=y
-CONFIG_FB_CFB_COPYAREA=y
-CONFIG_FB_CFB_IMAGEBLIT=y
-# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
-# CONFIG_FB_SYS_FILLRECT is not set
-# CONFIG_FB_SYS_COPYAREA is not set
-# CONFIG_FB_SYS_IMAGEBLIT is not set
-# CONFIG_FB_FOREIGN_ENDIAN is not set
-# CONFIG_FB_SYS_FOPS is not set
-# 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_TILEBLITTING is not set
-
-#
-# Frame buffer hardware drivers
-#
-# CONFIG_FB_S1D13XXX is not set
-# CONFIG_FB_VIRTUAL is not set
-CONFIG_FB_OMAP=y
-# CONFIG_FB_OMAP_LCDC_EXTERNAL is not set
-# CONFIG_FB_OMAP_BOOTLOADER_INIT is not set
-CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE=4
-CONFIG_BACKLIGHT_LCD_SUPPORT=y
-# CONFIG_LCD_CLASS_DEVICE is not set
-CONFIG_BACKLIGHT_CLASS_DEVICE=y
-# CONFIG_BACKLIGHT_CORGI is not set
-CONFIG_BACKLIGHT_GPIO=y
-
-#
-# Display device support
-#
-CONFIG_DISPLAY_SUPPORT=y
-
-#
-# Display hardware drivers
-#
-
-#
-# Console display driver support
-#
-# CONFIG_VGA_CONSOLE is not set
-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_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=y
-# CONFIG_LOGO_LINUX_MONO is not set
-# CONFIG_LOGO_LINUX_VGA16 is not set
-# CONFIG_LOGO_LINUX_CLUT224 is not set
-CONFIG_LOGO_PANDORA_CLUT224=y
-CONFIG_SOUND=y
-CONFIG_SND=y
-CONFIG_SND_TIMER=y
-CONFIG_SND_PCM=y
-CONFIG_SND_HWDEP=y
-CONFIG_SND_RAWMIDI=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_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
-CCONFIG_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=y
-# CONFIG_SND_OMAP_AIC23 is not set
-# CONFIG_SND_OMAP_TSC2101 is not set
-# CONFIG_SND_SX1 is not set
-# CONFIG_SND_OMAP_TSC2102 is not set
-# CONFIG_SND_OMAP24XX_EAC 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_OMAP3_PANDORA=y
-CONFIG_SND_SOC_TWL4030=y
-# CONFIG_SOUND_PRIME is not set
-CONFIG_HID_SUPPORT=y
-CONFIG_HID=y
-CONFIG_HID_DEBUG=y
-# CONFIG_HIDRAW is not set
-
-#
-# USB Input Devices
-#
-CONFIG_USB_HID=y
-# CONFIG_USB_HIDINPUT_POWERBOOK is not set
-# CONFIG_HID_FF is not set
-# CONFIG_USB_HIDDEV 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=y
-
-#
-# Miscellaneous USB options
-#
-CONFIG_USB_DEVICEFS=y
-CONFIG_USB_DEVICE_CLASS=y
-# CONFIG_USB_DYNAMIC_MINORS is not set
-CONFIG_USB_SUSPEND=y
-CONFIG_USB_OTG=y
-# CONFIG_USB_OTG_WHITELIST is not set
-# CONFIG_USB_OTG_BLACKLIST_HUB is not set
-CONFIG_USB_MON=y
-
-#
-# USB Host Controller Drivers
-#
-# CONFIG_USB_C67X00_HCD is not set
-CONFIG_USB_EHCI_HCD=y
-CONFIG_OMAP_EHCI_PHY_MODE=y
-# CONFIG_OMAP_EHCI_TLL_MODE is not set
-# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
-# CONFIG_USB_EHCI_TT_NEWSCHED is not set
-# CONFIG_USB_ISP116X_HCD is not set
-# CONFIG_USB_ISP1760_HCD is not set
-# CONFIG_USB_OHCI_HCD is not set
-# CONFIG_USB_SL811_HCD is not set
-# CONFIG_USB_R8A66597_HCD is not set
-CONFIG_USB_MUSB_HDRC=y
-CONFIG_USB_MUSB_SOC=y
-
-#
-# OMAP 343x high speed USB support
-#
-# CONFIG_USB_MUSB_HOST is not set
-# CONFIG_USB_MUSB_PERIPHERAL is not set
-CONFIG_USB_MUSB_OTG=y
-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_USB_TI_CPPI_DMA is not set
-# CONFIG_USB_MUSB_DEBUG is not set
-
-#
-# USB Device Class drivers
-#
-CONFIG_USB_ACM=m
-CONFIG_USB_PRINTER=m
-CONFIG_USB_WDM=m
-
-#
-# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
-#
-
-#
-# may also be needed; see USB_STORAGE Help for more information
-#
-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_DPCM 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
-
-#
-# USB Imaging devices
-#
-# CONFIG_USB_MDC800 is not set
-# CONFIG_USB_MICROTEK is not set
-
-#
-# USB port drivers
-#
-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_CP2101=m
-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_SPCP8X5=m
-CONFIG_USB_SERIAL_HP4X=m
-CONFIG_USB_SERIAL_SAFE=m
-# CONFIG_USB_SERIAL_SAFE_PADDED is not set
-CONFIG_USB_SERIAL_SIERRAWIRELESS=m
-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_DEBUG=m
-
-#
-# USB Miscellaneous drivers
-#
-CONFIG_USB_EMI62=m
-CONFIG_USB_EMI26=m
-# CONFIG_USB_ADUTUX is not set
-# CONFIG_USB_RIO500 is not set
-CONFIG_USB_LEGOTOWER=m
-CONFIG_USB_LCD=m
-# CONFIG_USB_BERRY_CHARGE is not set
-CONFIG_USB_LED=m
-# 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_APPLEDISPLAY is not set
-# CONFIG_USB_SISUSBVGA is not set
-# CONFIG_USB_LD is not set
-# CONFIG_USB_TRANCEVIBRATOR is not set
-# CONFIG_USB_IOWARRIOR is not set
-CONFIG_USB_TEST=m
-# CONFIG_USB_ISIGHTFW is not set
-CONFIG_USB_GADGET=y
-# CONFIG_USB_GADGET_DEBUG is not set
-# CONFIG_USB_GADGET_DEBUG_FILES is not set
-# CONFIG_USB_GADGET_DEBUG_FS is not set
-CONFIG_USB_GADGET_SELECTED=y
-# CONFIG_USB_GADGET_AMD5536UDC 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_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_S3C2410 is not set
-# CONFIG_USB_GADGET_AT91 is not set
-# CONFIG_USB_GADGET_DUMMY_HCD is not set
-CONFIG_USB_GADGET_DUALSPEED=y
-# CONFIG_USB_ZERO 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_MMC=y
-# CONFIG_MMC_DEBUG is not set
-CONFIG_MMC_UNSAFE_RESUME=y
-CONFIG_MMC_EMBEDDED_SDIO=y
-
-#
-# MMC/SD Card Drivers
-#
-CONFIG_MMC_BLOCK=y
-CONFIG_MMC_BLOCK_BOUNCE=y
-CONFIG_SDIO_UART=y
-# CONFIG_MMC_TEST is not set
-
-#
-# MMC/SD Host Controller Drivers
-#
-# CONFIG_MMC_SDHCI is not set
-CONFIG_MMC_OMAP_HS=y
-# CONFIG_MMC_SPI is not set
-CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=y
-
-#
-# LED drivers
-#
-# CONFIG_LEDS_OMAP_DEBUG is not set
-# CONFIG_LEDS_OMAP is not set
-# CONFIG_LEDS_OMAP_PWM is not set
-# CONFIG_LEDS_PCA9532 is not set
-CONFIG_LEDS_GPIO=y
-# CONFIG_LEDS_PCA955X is not set
-
-#
-# LED Triggers
-#
-CONFIG_LEDS_TRIGGERS=y
-CONFIG_LEDS_TRIGGER_TIMER=y
-CONFIG_LEDS_TRIGGER_HEARTBEAT=y
-CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
-CONFIG_RTC_LIB=y
-CONFIG_RTC_CLASS=y
-CONFIG_RTC_HCTOSYS=y
-CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
-# CONFIG_RTC_DEBUG is not set
-
-#
-# RTC interfaces
-#
-CONFIG_RTC_INTF_SYSFS=y
-CONFIG_RTC_INTF_PROC=y
-CONFIG_RTC_INTF_DEV=y
-# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
-# CONFIG_RTC_DRV_TEST is not set
-
-#
-# I2C RTC drivers
-#
-# CONFIG_RTC_DRV_DS1307 is not set
-# CONFIG_RTC_DRV_DS1374 is not set
-# CONFIG_RTC_DRV_DS1672 is not set
-# CONFIG_RTC_DRV_MAX6900 is not set
-# CONFIG_RTC_DRV_RS5C372 is not set
-# CONFIG_RTC_DRV_ISL1208 is not set
-# CONFIG_RTC_DRV_X1205 is not set
-# 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=y
-# CONFIG_RTC_DRV_S35390A is not set
-# CONFIG_RTC_DRV_FM3130 is not set
-
-#
-# SPI RTC drivers
-#
-# CONFIG_RTC_DRV_M41T94 is not set
-# CONFIG_RTC_DRV_DS1305 is not set
-# CONFIG_RTC_DRV_MAX6902 is not set
-# CONFIG_RTC_DRV_R9701 is not set
-# CONFIG_RTC_DRV_RS5C348 is not set
-
-#
-# Platform RTC drivers
-#
-# CONFIG_RTC_DRV_CMOS 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_M48T59 is not set
-# CONFIG_RTC_DRV_V3020 is not set
-
-#
-# on-CPU RTC drivers
-#
-# CONFIG_DMADEVICES is not set
-
-#
-# Voltage and Current regulators
-#
-# CONFIG_REGULATOR is not set
-# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
-# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
-# CONFIG_REGULATOR_BQ24022 is not set
-# CONFIG_UIO is not set
-
-#
-# CBUS support
-#
-# CONFIG_CBUS is not set
-
-#
-# File systems
-#
-CONFIG_EXT2_FS=y
-# CONFIG_EXT2_FS_XATTR is not set
-# CONFIG_EXT2_FS_XIP is not set
-CONFIG_EXT3_FS=y
-# CONFIG_EXT3_FS_XATTR is not set
-# CONFIG_EXT4DEV_FS is not set
-CONFIG_JBD=y
-# CONFIG_JBD_DEBUG is not set
-# CONFIG_REISERFS_FS is not set
-# CONFIG_JFS_FS 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 is not set
-# CONFIG_OCFS2_FS is not set
-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_QFMT_V1 is not set
-CONFIG_QFMT_V2=y
-CONFIG_QUOTACTL=y
-# CONFIG_AUTOFS_FS is not set
-CONFIG_AUTOFS4_FS=m
-CONFIG_FUSE_FS=m
-
-#
-# CD-ROM/DVD Filesystems
-#
-CONFIG_ISO9660_FS=m
-CONFIG_JOLIET=y
-CONFIG_ZISOFS=y
-CONFIG_UDF_FS=m
-CONFIG_UDF_NLS=y
-
-#
-# DOS/FAT/NT Filesystems
-#
-CONFIG_FAT_FS=y
-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
-
-#
-# Pseudo filesystems
-#
-CONFIG_PROC_FS=y
-CONFIG_PROC_SYSCTL=y
-CONFIG_SYSFS=y
-CONFIG_TMPFS=y
-# CONFIG_TMPFS_POSIX_ACL is not set
-# 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_JFFS2_FS=y
-CONFIG_JFFS2_FS_DEBUG=0
-CONFIG_JFFS2_FS_WRITEBUFFER=y
-# CONFIG_JFFS2_FS_WBUF_VERIFY 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=y
-CONFIG_JFFS2_RTIME=y
-CONFIG_JFFS2_RUBIN=y
-# CONFIG_JFFS2_CMODE_NONE is not set
-CONFIG_JFFS2_CMODE_PRIORITY=y
-# CONFIG_JFFS2_CMODE_SIZE is not set
-# CONFIG_JFFS2_CMODE_FAVOURLZO 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_NETWORK_FILESYSTEMS=y
-CONFIG_NFS_FS=y
-CONFIG_NFS_V3=y
-# CONFIG_NFS_V3_ACL is not set
-CONFIG_NFS_V4=y
-CONFIG_ROOT_NFS=y
-# CONFIG_NFSD is not set
-CONFIG_LOCKD=y
-CONFIG_LOCKD_V4=y
-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=y
-# CONFIG_CIFS_STATS is not set
-# CONFIG_CIFS_WEAK_PW_HASH is not set
-# CONFIG_CIFS_XATTR is not set
-# CONFIG_CIFS_DEBUG2 is not set
-# CONFIG_CIFS_EXPERIMENTAL is not set
-# CONFIG_NCP_FS is not set
-# CONFIG_CODA_FS is not set
-# CONFIG_AFS_FS is not set
-
-#
-# Partition Types
-#
-CONFIG_PARTITION_ADVANCED=y
-# CONFIG_ACORN_PARTITION is not set
-# 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_MSDOS_PARTITION=y
-# CONFIG_BSD_DISKLABEL is not set
-# CONFIG_MINIX_SUBPARTITION is not set
-# CONFIG_SOLARIS_X86_PARTITION is not set
-# CONFIG_UNIXWARE_DISKLABEL is not set
-# CONFIG_LDM_PARTITION is not set
-# 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_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_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
-
-#
-# Kernel hacking
-#
-# CONFIG_PRINTK_TIME is not set
-CONFIG_ENABLE_WARN_DEPRECATED=y
-CONFIG_ENABLE_MUST_CHECK=y
-CONFIG_FRAME_WARN=1024
-CONFIG_MAGIC_SYSRQ=y
-# CONFIG_UNUSED_SYMBOLS is not set
-# CONFIG_DEBUG_FS is not set
-# 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_SCHED_DEBUG=y
-CONFIG_SCHEDSTATS=y
-CONFIG_TIMER_STATS=y
-# CONFIG_DEBUG_OBJECTS is not set
-# CONFIG_DEBUG_SLAB is not set
-# CONFIG_DEBUG_RT_MUTEXES is not set
-# CONFIG_RT_MUTEX_TESTER is not set
-# CONFIG_DEBUG_SPINLOCK is not set
-CONFIG_DEBUG_MUTEXES=y
-# CONFIG_DEBUG_LOCK_ALLOC is not set
-# CONFIG_PROVE_LOCKING is not set
-# CONFIG_LOCK_STAT is not set
-# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
-# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
-# CONFIG_DEBUG_KOBJECT is not set
-# CONFIG_DEBUG_BUGVERBOSE is not set
-# 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_BOOT_PRINTK_DELAY is not set
-# CONFIG_RCU_TORTURE_TEST is not set
-# CONFIG_BACKTRACE_SELF_TEST 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_IRQSOFF_TRACER is not set
-# CONFIG_SCHED_TRACER is not set
-# CONFIG_CONTEXT_SWITCH_TRACER is not set
-# CONFIG_SAMPLES is not set
-CONFIG_HAVE_ARCH_KGDB=y
-# CONFIG_KGDB is not set
-# 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
-
-#
-# Security options
-#
-# CONFIG_KEYS is not set
-# CONFIG_SECURITY is not set
-# CONFIG_SECURITY_FILE_CAPABILITIES is not set
-CONFIG_XOR_BLOCKS=m
-CONFIG_ASYNC_CORE=m
-CONFIG_ASYNC_MEMCPY=m
-CONFIG_ASYNC_XOR=m
-CONFIG_CRYPTO=y
-
-#
-# Crypto core or helper
-#
-CONFIG_CRYPTO_ALGAPI=y
-CONFIG_CRYPTO_AEAD=m
-CONFIG_CRYPTO_BLKCIPHER=y
-CONFIG_CRYPTO_HASH=m
-CONFIG_CRYPTO_MANAGER=y
-CONFIG_CRYPTO_GF128MUL=m
-CONFIG_CRYPTO_NULL=m
-CONFIG_CRYPTO_CRYPTD=m
-# CONFIG_CRYPTO_AUTHENC is not set
-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
-
-#
-# Block modes
-#
-CONFIG_CRYPTO_CBC=y
-# CONFIG_CRYPTO_CTR is not set
-# CONFIG_CRYPTO_CTS is not set
-CONFIG_CRYPTO_ECB=y
-CONFIG_CRYPTO_LRW=m
-CONFIG_CRYPTO_PCBC=m
-# CONFIG_CRYPTO_XTS is not set
-
-#
-# Hash modes
-#
-CONFIG_CRYPTO_HMAC=m
-CONFIG_CRYPTO_XCBC=m
-
-#
-# Digest
-#
-CONFIG_CRYPTO_CRC32C=m
-CONFIG_CRYPTO_MD4=m
-CONFIG_CRYPTO_MD5=y
-CONFIG_CRYPTO_MICHAEL_MIC=y
-# 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=m
-CONFIG_CRYPTO_SHA256=m
-CONFIG_CRYPTO_SHA512=m
-CONFIG_CRYPTO_TGR192=m
-CONFIG_CRYPTO_WP512=m
-
-#
-# Ciphers
-#
-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=m
-CONFIG_CRYPTO_KHAZAD=m
-# CONFIG_CRYPTO_SALSA20 is not set
-# CONFIG_CRYPTO_SEED is not set
-CONFIG_CRYPTO_SERPENT=m
-CONFIG_CRYPTO_TEA=m
-CONFIG_CRYPTO_TWOFISH=m
-CONFIG_CRYPTO_TWOFISH_COMMON=m
-
-#
-# Compression
-#
-CONFIG_CRYPTO_DEFLATE=m
-# CONFIG_CRYPTO_LZO is not set
-CONFIG_CRYPTO_HW=y
-
-#
-# Library routines
-#
-CONFIG_BITREVERSE=y
-# CONFIG_GENERIC_FIND_FIRST_BIT is not set
-# CONFIG_GENERIC_FIND_NEXT_BIT is not set
-CONFIG_CRC_CCITT=y
-CONFIG_CRC16=m
-CONFIG_CRC_T10DIF=y
-CONFIG_CRC_ITU_T=y
-CONFIG_CRC32=y
-CONFIG_CRC7=y
-CONFIG_LIBCRC32C=y
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=y
-CONFIG_LZO_COMPRESS=y
-CONFIG_LZO_DECOMPRESS=y
-CONFIG_PLIST=y
-CONFIG_HAS_IOMEM=y
-CONFIG_HAS_IOPORT=y
-CONFIG_HAS_DMA=y
diff --git a/recipes/linux/omap3-pandora-kernel-wifi/defconfig.bak b/recipes/linux/omap3-pandora-kernel-wifi/defconfig.bak
deleted file mode 100755 (executable)
index 92f3c08..0000000
+++ /dev/null
@@ -1,1970 +0,0 @@
-#
-# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.27-omap1
-# Mon Jan 12 18:36:10 2009
-#
-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
-CONFIG_LOCKDEP_SUPPORT=y
-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_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"
-
-#
-# General setup
-#
-CONFIG_EXPERIMENTAL=y
-CONFIG_BROKEN_ON_SMP=y
-CONFIG_INIT_ENV_ARG_LIMIT=32
-CONFIG_LOCALVERSION=""
-CONFIG_LOCALVERSION_AUTO=y
-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_AUDIT is not set
-CONFIG_IKCONFIG=y
-CONFIG_IKCONFIG_PROC=y
-CONFIG_LOG_BUF_SHIFT=14
-CONFIG_CGROUPS=y
-# CONFIG_CGROUP_DEBUG is not set
-# CONFIG_CGROUP_NS is not set
-CONFIG_CGROUP_DEVICE=y
-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
-CONFIG_SYSFS_DEPRECATED_V2=y
-# CONFIG_RELAY is not set
-CONFIG_NAMESPACES=y
-CONFIG_UTS_NS=y
-CONFIG_IPC_NS=y
-CONFIG_USER_NS=y
-CONFIG_PID_NS=y
-CONFIG_BLK_DEV_INITRD=y
-CONFIG_INITRAMFS_SOURCE=""
-CONFIG_CC_OPTIMIZE_FOR_SIZE=y
-CONFIG_SYSCTL=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_HOTPLUG=y
-CONFIG_PRINTK=y
-CONFIG_BUG=y
-CONFIG_ELF_CORE=y
-CONFIG_COMPAT_BRK=y
-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_VM_EVENT_COUNTERS=y
-CONFIG_SLAB=y
-# CONFIG_SLUB is not set
-# CONFIG_SLOB is not set
-# CONFIG_PROFILING is not set
-# CONFIG_MARKERS is not set
-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
-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=y
-CONFIG_MODULE_UNLOAD=y
-CONFIG_MODULE_FORCE_UNLOAD=y
-CONFIG_MODVERSIONS=y
-CONFIG_MODULE_SRCVERSION_ALL=y
-CONFIG_KMOD=y
-CONFIG_BLOCK=y
-CONFIG_LBD=y
-# CONFIG_BLK_DEV_IO_TRACE is not set
-CONFIG_LSF=y
-# CONFIG_BLK_DEV_BSG is not set
-# 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 is not set
-# CONFIG_DEFAULT_DEADLINE is not set
-CONFIG_DEFAULT_CFQ=y
-# CONFIG_DEFAULT_NOOP is not set
-CONFIG_DEFAULT_IOSCHED="cfq"
-CONFIG_CLASSIC_RCU=y
-
-#
-# System Type
-#
-# 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_EBSA110 is not set
-# CONFIG_ARCH_EP93XX is not set
-# CONFIG_ARCH_FOOTBRIDGE is not set
-# CONFIG_ARCH_NETX is not set
-# CONFIG_ARCH_H720X is not set
-# CONFIG_ARCH_IMX is not set
-# CONFIG_ARCH_IOP13XX is not set
-# CONFIG_ARCH_IOP32X is not set
-# CONFIG_ARCH_IOP33X is not set
-# CONFIG_ARCH_IXP23XX is not set
-# CONFIG_ARCH_IXP2000 is not set
-# CONFIG_ARCH_IXP4XX is not set
-# CONFIG_ARCH_L7200 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_PNX4008 is not set
-# CONFIG_ARCH_PXA is not set
-# CONFIG_ARCH_RPC is not set
-# CONFIG_ARCH_SA1100 is not set
-# CONFIG_ARCH_S3C2410 is not set
-# CONFIG_ARCH_SHARK is not set
-# CONFIG_ARCH_LH7A40X is not set
-# CONFIG_ARCH_DAVINCI is not set
-CONFIG_ARCH_OMAP=y
-# CONFIG_ARCH_MSM7X00A is not set
-
-#
-# TI OMAP Implementations
-#
-CONFIG_ARCH_OMAP_OTG=y
-# CONFIG_ARCH_OMAP1 is not set
-# CONFIG_ARCH_OMAP2 is not set
-CONFIG_ARCH_OMAP3=y
-
-#
-# OMAP Feature Selections
-#
-# CONFIG_OMAP_DEBUG_POWERDOMAIN is not set
-# CONFIG_OMAP_DEBUG_CLOCKDOMAIN is not set
-CONFIG_OMAP_SMARTREFLEX=y
-# CONFIG_OMAP_SMARTREFLEX_TESTING is not set
-CONFIG_OMAP_RESET_CLOCKS=y
-CONFIG_OMAP_BOOT_TAG=y
-CONFIG_OMAP_BOOT_REASON=y
-# CONFIG_OMAP_COMPONENT_VERSION is not set
-# CONFIG_OMAP_GPIO_SWITCH is not set
-# CONFIG_OMAP_MUX is not set
-CONFIG_OMAP_MCBSP=y
-# CONFIG_OMAP_MMU_FWK is not set
-# CONFIG_OMAP_MBOX_FWK is not set
-# CONFIG_OMAP_MPU_TIMER is not set
-CONFIG_OMAP_32K_TIMER=y
-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_ARCH_OMAP34XX=y
-CONFIG_ARCH_OMAP3430=y
-
-#
-# OMAP Board Type
-#
-# CONFIG_MACH_OMAP_LDP is not set
-# CONFIG_MACH_OMAP_3430SDP is not set
-# CONFIG_MACH_OMAP3EVM is not set
-# CONFIG_MACH_OMAP3_BEAGLE is not set
-# CONFIG_MACH_OVERO is not set
-CONFIG_MACH_OMAP3_PANDORA=y
-CONFIG_OMAP_TICK_GPTIMER=12
-
-#
-# Boot options
-#
-
-#
-# Power management
-#
-
-#
-# Processor Type
-#
-CONFIG_CPU_32=y
-CONFIG_CPU_32v6K=y
-CONFIG_CPU_V7=y
-CONFIG_CPU_32v7=y
-CONFIG_CPU_ABRT_EV7=y
-CONFIG_CPU_PABRT_IFAR=y
-CONFIG_CPU_CACHE_V7=y
-CONFIG_CPU_CACHE_VIPT=y
-CONFIG_CPU_COPY_V6=y
-CONFIG_CPU_TLB_V7=y
-CONFIG_CPU_HAS_ASID=y
-CONFIG_CPU_CP15=y
-CONFIG_CPU_CP15_MMU=y
-
-#
-# Processor Features
-#
-CONFIG_ARM_THUMB=y
-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
-
-#
-# Bus support
-#
-# CONFIG_PCI_SYSCALL is not set
-# CONFIG_ARCH_SUPPORTS_MSI is not set
-# CONFIG_PCCARD is not set
-
-#
-# Kernel Features
-#
-CONFIG_TICK_ONESHOT=y
-CONFIG_NO_HZ=y
-CONFIG_HIGH_RES_TIMERS=y
-CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
-# CONFIG_PREEMPT is not set
-CONFIG_HZ=128
-CONFIG_AEABI=y
-# CONFIG_OABI_COMPAT is not set
-CONFIG_ARCH_FLATMEM_HAS_HOLES=y
-# CONFIG_ARCH_DISCONTIGMEM_ENABLE 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_VIRT_TO_BUS=y
-CONFIG_LEDS=y
-CONFIG_ALIGNMENT_TRAP=y
-
-#
-# Boot options
-#
-CONFIG_ZBOOT_ROM_TEXT=0x0
-CONFIG_ZBOOT_ROM_BSS=0x0
-CONFIG_CMDLINE=" debug "
-# CONFIG_XIP_KERNEL is not set
-CONFIG_KEXEC=y
-CONFIG_ATAGS_PROC=y
-
-#
-# CPU Frequency scaling
-#
-# CONFIG_CPU_FREQ is not set
-
-#
-# Floating point emulation
-#
-
-#
-# 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=y
-
-#
-# Userspace binary formats
-#
-CONFIG_BINFMT_ELF=y
-CONFIG_BINFMT_AOUT=m
-CONFIG_BINFMT_MISC=y
-
-#
-# Power management options
-#
-CONFIG_PM=y
-# CONFIG_PM_DEBUG is not set
-CONFIG_PM_SLEEP=y
-CONFIG_SUSPEND=y
-CONFIG_SUSPEND_FREEZER=y
-# CONFIG_APM_EMULATION is not set
-CONFIG_ARCH_SUSPEND_POSSIBLE=y
-CONFIG_NET=y
-
-#
-# Networking options
-#
-CONFIG_PACKET=y
-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_NET_KEY=y
-# CONFIG_NET_KEY_MIGRATE is not set
-CONFIG_INET=y
-# CONFIG_IP_MULTICAST is not set
-# CONFIG_IP_ADVANCED_ROUTER is not set
-CONFIG_IP_FIB_HASH=y
-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_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=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_TCP_CONG_CUBIC=y
-CONFIG_DEFAULT_TCP_CONG="cubic"
-# CONFIG_TCP_MD5SIG 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 is not set
-# CONFIG_INET6_ESP is not set
-# CONFIG_INET6_IPCOMP is not set
-# CONFIG_IPV6_MIP6 is not set
-# CONFIG_INET6_XFRM_TUNNEL is not set
-# CONFIG_INET6_TUNNEL is not set
-CONFIG_INET6_XFRM_MODE_TRANSPORT=m
-CONFIG_INET6_XFRM_MODE_TUNNEL=m
-CONFIG_INET6_XFRM_MODE_BEET=m
-# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
-CONFIG_IPV6_SIT=m
-CONFIG_IPV6_NDISC_NODETYPE=y
-# CONFIG_IPV6_TUNNEL is not set
-# CONFIG_IPV6_MULTIPLE_TABLES is not set
-# CONFIG_IPV6_MROUTE 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_DECNET is not set
-# 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
-
-#
-# Network testing
-#
-# CONFIG_NET_PKTGEN is not set
-# CONFIG_HAMRADIO is not set
-# CONFIG_CAN is not set
-# CONFIG_IRDA is not set
-CONFIG_BT=y
-CONFIG_BT_L2CAP=y
-CONFIG_BT_SCO=y
-CONFIG_BT_RFCOMM=y
-CONFIG_BT_RFCOMM_TTY=y
-CONFIG_BT_BNEP=y
-CONFIG_BT_BNEP_MC_FILTER=y
-CONFIG_BT_BNEP_PROTO_FILTER=y
-CONFIG_BT_HIDP=y
-
-#
-# Bluetooth device drivers
-#
-CONFIG_BT_HCIUSB=y
-CONFIG_BT_HCIUSB_SCO=y
-# CONFIG_BT_HCIBTUSB is not set
-CONFIG_BT_HCIBTSDIO=y
-# CONFIG_BT_HCIUART is not set
-CONFIG_BT_HCIBCM203X=y
-CONFIG_BT_HCIBPA10X=y
-# CONFIG_BT_HCIBFUSB is not set
-# CONFIG_BT_HCIBRF6150 is not set
-CONFIG_BT_HCIH4P=y
-# CONFIG_BT_HCIVHCI is not set
-# CONFIG_AF_RXRPC is not set
-
-#
-# Wireless
-#
-CONFIG_CFG80211=y
-CONFIG_NL80211=y
-CONFIG_WIRELESS_EXT=y
-CONFIG_WIRELESS_EXT_SYSFS=y
-CONFIG_MAC80211=y
-
-#
-# Rate control algorithm selection
-#
-CONFIG_MAC80211_RC_PID=y
-CONFIG_MAC80211_RC_DEFAULT_PID=y
-CONFIG_MAC80211_RC_DEFAULT="pid"
-# CONFIG_MAC80211_MESH is not set
-CONFIG_MAC80211_LEDS=y
-# CONFIG_MAC80211_DEBUG_MENU is not set
-CONFIG_IEEE80211=y
-# CONFIG_IEEE80211_DEBUG is not set
-CONFIG_IEEE80211_CRYPT_WEP=y
-CONFIG_IEEE80211_CRYPT_CCMP=y
-CONFIG_IEEE80211_CRYPT_TKIP=y
-# CONFIG_RFKILL is not set
-# CONFIG_NET_9P is not set
-
-#
-# Device Drivers
-#
-
-#
-# Generic Driver Options
-#
-CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
-CONFIG_STANDALONE=y
-CONFIG_PREVENT_FIRMWARE_BUILD=y
-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=y
-CONFIG_MTD_PARTITIONS=y
-# CONFIG_MTD_REDBOOT_PARTS is not set
-# CONFIG_MTD_CMDLINE_PARTS is not set
-# CONFIG_MTD_AFS_PARTS is not set
-# CONFIG_MTD_AR7_PARTS is not set
-
-#
-# User Modules And Translation Layers
-#
-CONFIG_MTD_CHAR=y
-CONFIG_MTD_BLKDEVS=y
-CONFIG_MTD_BLOCK=y
-# CONFIG_FTL is not set
-# CONFIG_NFTL is not set
-# CONFIG_INFTL is not set
-# CONFIG_RFD_FTL is not set
-# CONFIG_SSFDC is not set
-# CONFIG_MTD_OOPS is not set
-
-#
-# RAM/ROM/Flash chip drivers
-#
-# CONFIG_MTD_CFI is not set
-# CONFIG_MTD_JEDECPROBE is not set
-CONFIG_MTD_MAP_BANK_WIDTH_1=y
-CONFIG_MTD_MAP_BANK_WIDTH_2=y
-CONFIG_MTD_MAP_BANK_WIDTH_4=y
-# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
-# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
-# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
-CONFIG_MTD_CFI_I1=y
-CONFIG_MTD_CFI_I2=y
-# CONFIG_MTD_CFI_I4 is not set
-# CONFIG_MTD_CFI_I8 is not set
-# CONFIG_MTD_RAM is not set
-# CONFIG_MTD_ROM is not set
-# CONFIG_MTD_ABSENT is not set
-
-#
-# Mapping drivers for chip access
-#
-# CONFIG_MTD_COMPLEX_MAPPINGS is not set
-# CONFIG_MTD_PLATRAM is not set
-
-#
-# Self-contained MTD device drivers
-#
-# CONFIG_MTD_DATAFLASH is not set
-# CONFIG_MTD_M25P80 is not set
-# CONFIG_MTD_SLRAM is not set
-# CONFIG_MTD_PHRAM is not set
-# CONFIG_MTD_MTDRAM is not set
-# CONFIG_MTD_BLOCK2MTD is not set
-
-#
-# Disk-On-Chip Device Drivers
-#
-# CONFIG_MTD_DOC2000 is not set
-# CONFIG_MTD_DOC2001 is not set
-# CONFIG_MTD_DOC2001PLUS is not set
-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_OMAP2=y
-CONFIG_MTD_NAND_IDS=y
-# CONFIG_MTD_NAND_DISKONCHIP is not set
-# CONFIG_MTD_NAND_NANDSIM is not set
-CONFIG_MTD_NAND_PLATFORM=y
-# CONFIG_MTD_ALAUDA is not set
-# CONFIG_MTD_ONENAND is not set
-
-#
-# UBI - Unsorted block images
-#
-# CONFIG_MTD_UBI 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=m
-# 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=m
-CONFIG_CDROM_PKTCDVD_BUFFERS=8
-# CONFIG_CDROM_PKTCDVD_WCACHE is not set
-# CONFIG_ATA_OVER_ETH is not set
-CONFIG_MISC_DEVICES=y
-CONFIG_EEPROM_93CX6=y
-# CONFIG_OMAP_STI is not set
-# CONFIG_ENCLOSURE_SERVICES is not set
-CONFIG_PANDORA_GAME_CONSOLE=y
-CONFIG_HAVE_IDE=y
-# CONFIG_IDE is not set
-
-#
-# SCSI device support
-#
-# CONFIG_RAID_ATTRS is not set
-CONFIG_SCSI=y
-CONFIG_SCSI_DMA=y
-# CONFIG_SCSI_TGT is not set
-# CONFIG_SCSI_NETLINK is not set
-CONFIG_SCSI_PROC_FS=y
-
-#
-# SCSI support type (disk, tape, CD-ROM)
-#
-CONFIG_BLK_DEV_SD=y
-# CONFIG_CHR_DEV_ST is not set
-# CONFIG_CHR_DEV_OSST is not set
-CONFIG_BLK_DEV_SR=m
-# CONFIG_BLK_DEV_SR_VENDOR is not set
-CONFIG_CHR_DEV_SG=m
-CONFIG_CHR_DEV_SCH=m
-
-#
-# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
-#
-CONFIG_SCSI_MULTI_LUN=y
-# CONFIG_SCSI_CONSTANTS is not set
-# CONFIG_SCSI_LOGGING is not set
-# CONFIG_SCSI_SCAN_ASYNC is not set
-CONFIG_SCSI_WAIT_SCAN=m
-
-#
-# SCSI Transports
-#
-# CONFIG_SCSI_SPI_ATTRS is not set
-# CONFIG_SCSI_FC_ATTRS is not set
-# CONFIG_SCSI_ISCSI_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_SCSI_DEBUG is not set
-# CONFIG_SCSI_DH is not set
-# CONFIG_ATA is not set
-# CONFIG_MD 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_NETDEV_1000 is not set
-# CONFIG_NETDEV_10000 is not set
-
-#
-# Wireless LAN
-#
-# CONFIG_WLAN_PRE80211 is not set
-CONFIG_WLAN_80211=y
-CONFIG_LIBERTAS=m
-CONFIG_LIBERTAS_USB=m
-# CONFIG_LIBERTAS_SDIO is not set
-# CONFIG_LIBERTAS_DEBUG is not set
-CONFIG_USB_ZD1201=y
-CONFIG_USB_NET_RNDIS_WLAN=y
-CONFIG_RTL8187=y
-# CONFIG_MAC80211_HWSIM is not set
-CONFIG_P54_COMMON=y
-CONFIG_P54_USB=y
-# CONFIG_IWLWIFI_LEDS is not set
-CONFIG_HOSTAP=m
-CONFIG_HOSTAP_FIRMWARE=y
-CONFIG_HOSTAP_FIRMWARE_NVRAM=y
-# CONFIG_B43 is not set
-# CONFIG_B43LEGACY is not set
-CONFIG_ZD1211RW=y
-# CONFIG_ZD1211RW_DEBUG is not set
-CONFIG_RT2X00=y
-CONFIG_RT2X00_LIB=y
-CONFIG_RT2X00_LIB_USB=y
-CONFIG_RT2X00_LIB_FIRMWARE=y
-CONFIG_RT2X00_LIB_LEDS=y
-CONFIG_RT2500USB=y
-CONFIG_RT2500USB_LEDS=y
-CONFIG_RT73USB=y
-CONFIG_RT73USB_LEDS=y
-# CONFIG_RT2X00_DEBUG is not set
-
-#
-# USB Network Adapters
-#
-CONFIG_USB_CATC=m
-CONFIG_USB_KAWETH=m
-CONFIG_USB_PEGASUS=m
-CONFIG_USB_RTL8150=m
-CONFIG_USB_USBNET=y
-CONFIG_USB_NET_AX8817X=y
-CONFIG_USB_NET_CDCETHER=y
-CONFIG_USB_NET_DM9601=m
-CONFIG_USB_NET_GL620A=m
-CONFIG_USB_NET_NET1080=m
-CONFIG_USB_NET_PLUSB=m
-CONFIG_USB_NET_MCS7830=m
-CONFIG_USB_NET_RNDIS_HOST=y
-CONFIG_USB_NET_CDC_SUBSET=m
-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=m
-# CONFIG_WAN 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_PPPOL2TP=m
-# CONFIG_SLIP is not set
-CONFIG_SLHC=m
-# CONFIG_NETCONSOLE is not set
-# CONFIG_NETPOLL is not set
-# CONFIG_NET_POLL_CONTROLLER is not set
-# CONFIG_ISDN is not set
-
-#
-# Input device support
-#
-CONFIG_INPUT=y
-# CONFIG_INPUT_FF_MEMLESS is not set
-# CONFIG_INPUT_POLLDEV is not set
-
-#
-# Userland interfaces
-#
-CONFIG_INPUT_MOUSEDEV=y
-CONFIG_INPUT_MOUSEDEV_PSAUX=y
-CONFIG_INPUT_MOUSEDEV_SCREEN_X=800
-CONFIG_INPUT_MOUSEDEV_SCREEN_Y=480
-CONFIG_INPUT_JOYDEV=y
-CONFIG_INPUT_EVDEV=y
-# CONFIG_INPUT_EVBUG is not set
-
-#
-# Input Device Drivers
-#
-CONFIG_INPUT_KEYBOARD=y
-# CONFIG_KEYBOARD_ATKBD is not set
-# CONFIG_KEYBOARD_SUNKBD is not set
-# CONFIG_KEYBOARD_LKKBD is not set
-# CONFIG_KEYBOARD_XTKBD is not set
-# CONFIG_KEYBOARD_NEWTON is not set
-# CONFIG_KEYBOARD_STOWAWAY is not set
-CONFIG_KEYBOARD_TWL4030=y
-# CONFIG_KEYBOARD_LM8323 is not set
-CONFIG_KEYBOARD_GPIO=y
-CONFIG_INPUT_MOUSE=y
-# CONFIG_MOUSE_PS2 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_INPUT_JOYSTICK is not set
-# CONFIG_INPUT_TABLET is not set
-CONFIG_INPUT_TOUCHSCREEN=y
-CONFIG_TOUCHSCREEN_ADS7846=y
-# CONFIG_TOUCHSCREEN_FUJITSU is not set
-# CONFIG_TOUCHSCREEN_GUNZE is not set
-# CONFIG_TOUCHSCREEN_ELO is not set
-# CONFIG_TOUCHSCREEN_MTOUCH is not set
-# CONFIG_TOUCHSCREEN_INEXIO is not set
-# CONFIG_TOUCHSCREEN_MK712 is not set
-# CONFIG_TOUCHSCREEN_PENMOUNT is not set
-# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
-# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
-# CONFIG_TOUCHSCREEN_TSC2005 is not set
-# CONFIG_TOUCHSCREEN_TSC2102 is not set
-# CONFIG_TOUCHSCREEN_TSC210X is not set
-# CONFIG_TOUCHSCREEN_UCB1400 is not set
-# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
-# CONFIG_TOUCHSCREEN_TOUCHIT213 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_UINPUT is not set
-CONFIG_INPUT_VSENSE=y
-
-#
-# Hardware I/O ports
-#
-CONFIG_SERIO=y
-CONFIG_SERIO_SERPORT=y
-CONFIG_SERIO_LIBPS2=y
-# CONFIG_SERIO_RAW is not set
-# CONFIG_GAMEPORT is not set
-
-#
-# Character devices
-#
-CONFIG_VT=y
-CONFIG_CONSOLE_TRANSLATIONS=y
-CONFIG_VT_CONSOLE=y
-CONFIG_HW_CONSOLE=y
-CONFIG_VT_HW_CONSOLE_BINDING=y
-CONFIG_DEVKMEM=y
-# CONFIG_SERIAL_NONSTANDARD is not set
-
-#
-# Serial drivers
-#
-CONFIG_SERIAL_8250=y
-CONFIG_SERIAL_8250_CONSOLE=y
-CONFIG_SERIAL_8250_NR_UARTS=32
-CONFIG_SERIAL_8250_RUNTIME_UARTS=4
-CONFIG_SERIAL_8250_EXTENDED=y
-CONFIG_SERIAL_8250_MANY_PORTS=y
-CONFIG_SERIAL_8250_SHARE_IRQ=y
-CONFIG_SERIAL_8250_DETECT_IRQ=y
-CONFIG_SERIAL_8250_RSA=y
-
-#
-# Non-8250 serial port support
-#
-CONFIG_SERIAL_CORE=y
-CONFIG_SERIAL_CORE_CONSOLE=y
-CONFIG_UNIX98_PTYS=y
-# CONFIG_LEGACY_PTYS is not set
-# CONFIG_IPMI_HANDLER is not set
-CONFIG_HW_RANDOM=y
-# CONFIG_NVRAM 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_CHARDEV=y
-CONFIG_I2C_HELPER_AUTO=y
-
-#
-# I2C Hardware Bus support
-#
-
-#
-# I2C system bus drivers (mostly embedded / system-on-chip)
-#
-# CONFIG_I2C_GPIO is not set
-# CONFIG_I2C_OCORES is not set
-CONFIG_I2C_OMAP=y
-# CONFIG_I2C_SIMTEC is not set
-
-#
-# External I2C/SMBus adapter drivers
-#
-# CONFIG_I2C_PARPORT_LIGHT is not set
-# CONFIG_I2C_TAOS_EVM is not set
-# CONFIG_I2C_TINY_USB is not set
-
-#
-# Other I2C/SMBus bus drivers
-#
-# CONFIG_I2C_PCA_PLATFORM is not set
-# CONFIG_I2C_STUB is not set
-
-#
-# Miscellaneous I2C Chip support
-#
-# CONFIG_DS1682 is not set
-# CONFIG_AT24 is not set
-CONFIG_SENSORS_EEPROM=y
-# 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_TLV320AIC23 is not set
-CONFIG_TWL4030_MADC=m
-CONFIG_TWL4030_USB=y
-CONFIG_TWL4030_PWRBUTTON=y
-CONFIG_TWL4030_POWEROFF=y
-# CONFIG_SENSORS_MAX6875 is not set
-# CONFIG_SENSORS_TSL2550 is not set
-# CONFIG_LP5521 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=y
-# CONFIG_SPI_DEBUG is not set
-CONFIG_SPI_MASTER=y
-
-#
-# SPI Master Controller Drivers
-#
-# CONFIG_SPI_BITBANG is not set
-CONFIG_SPI_OMAP24XX=y
-
-#
-# SPI Protocol Masters
-#
-# CONFIG_SPI_AT25 is not set
-# CONFIG_SPI_TSC2101 is not set
-# CONFIG_SPI_TSC2102 is not set
-# CONFIG_SPI_TSC210X is not set
-# CONFIG_SPI_TSC2301 is not set
-# CONFIG_SPI_SPIDEV is not set
-# CONFIG_SPI_TLE62X0 is not set
-CONFIG_ARCH_REQUIRE_GPIOLIB=y
-CONFIG_GPIOLIB=y
-# CONFIG_DEBUG_GPIO is not set
-CONFIG_GPIO_SYSFS=y
-
-#
-# I2C GPIO expanders:
-#
-# CONFIG_GPIO_MAX732X is not set
-# CONFIG_GPIO_PCA953X is not set
-# CONFIG_GPIO_PCF857X is not set
-CONFIG_GPIO_TWL4030=y
-
-#
-# PCI GPIO expanders:
-#
-
-#
-# SPI GPIO expanders:
-#
-# CONFIG_GPIO_MAX7301 is not set
-# CONFIG_GPIO_MCP23S08 is not set
-# CONFIG_W1 is not set
-# CONFIG_POWER_SUPPLY is not set
-# CONFIG_HWMON is not set
-# CONFIG_WATCHDOG is not set
-
-#
-# Sonics Silicon Backplane
-#
-CONFIG_SSB_POSSIBLE=y
-# CONFIG_SSB is not set
-
-#
-# Multifunction device drivers
-#
-# CONFIG_MFD_CORE is not set
-# 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_TWL4030_CORE=y
-CONFIG_TWL4030_POWER=y
-# 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
-#
-
-#
-# Multimedia core support
-#
-CONFIG_VIDEO_DEV=m
-CONFIG_VIDEO_V4L2_COMMON=m
-CONFIG_VIDEO_ALLOW_V4L1=y
-CONFIG_VIDEO_V4L1_COMPAT=y
-CONFIG_DVB_CORE=m
-CONFIG_VIDEO_MEDIA=m
-
-#
-# Multimedia drivers
-#
-CONFIG_MEDIA_ATTACH=y
-CONFIG_MEDIA_TUNER=m
-# CONFIG_MEDIA_TUNER_CUSTOMIZE is not set
-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_QT1010=m
-CONFIG_MEDIA_TUNER_XC2028=m
-CONFIG_MEDIA_TUNER_XC5000=m
-CONFIG_MEDIA_TUNER_MXL5005S=m
-CONFIG_VIDEO_V4L2=m
-CONFIG_VIDEO_V4L1=m
-CONFIG_VIDEO_TVEEPROM=m
-CONFIG_VIDEO_TUNER=m
-CONFIG_VIDEO_CAPTURE_DRIVERS=y
-# CONFIG_VIDEO_ADV_DEBUG is not set
-CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
-CONFIG_VIDEO_MSP3400=m
-CONFIG_VIDEO_CS53L32A=m
-CONFIG_VIDEO_WM8775=m
-CONFIG_VIDEO_SAA711X=m
-CONFIG_VIDEO_CX25840=m
-CONFIG_VIDEO_CX2341X=m
-# CONFIG_VIDEO_VIVI is not set
-# 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_TUNER_3036 is not set
-# CONFIG_VIDEO_AU0828 is not set
-CONFIG_V4L_USB_DRIVERS=y
-CONFIG_USB_VIDEO_CLASS=m
-CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
-# CONFIG_USB_GSPCA is not set
-CONFIG_VIDEO_PVRUSB2=m
-CONFIG_VIDEO_PVRUSB2_SYSFS=y
-CONFIG_VIDEO_PVRUSB2_DVB=y
-# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set
-# CONFIG_VIDEO_EM28XX is not set
-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 is not set
-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 is not set
-CONFIG_USB_PWC=m
-# CONFIG_USB_PWC_DEBUG is not set
-CONFIG_USB_ZR364XX=m
-# CONFIG_USB_STKWEBCAM is not set
-# CONFIG_USB_S2255 is not set
-# CONFIG_SOC_CAMERA is not set
-# CONFIG_VIDEO_SH_MOBILE_CEU is not set
-CONFIG_RADIO_ADAPTERS=y
-# CONFIG_RADIO_TEA5761 is not set
-# CONFIG_USB_DSBR is not set
-# CONFIG_USB_SI470X is not set
-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 is not set
-# CONFIG_DVB_USB_ANYSEE is not set
-CONFIG_DVB_TTUSB_BUDGET=m
-CONFIG_DVB_TTUSB_DEC=m
-CONFIG_DVB_CINERGYT2=m
-# CONFIG_DVB_CINERGYT2_TUNING is not set
-# CONFIG_DVB_SIANO_SMS1XXX is not set
-
-#
-# Supported FlexCopII (B2C2) Adapters
-#
-# CONFIG_DVB_B2C2_FLEXCOP is not set
-
-#
-# Supported DVB Frontends
-#
-
-#
-# Customise DVB Frontends
-#
-# CONFIG_DVB_FE_CUSTOMISE is not set
-
-#
-# DVB-S (satellite) frontends
-#
-CONFIG_DVB_CX24110=m
-CONFIG_DVB_CX24123=m
-CONFIG_DVB_MT312=m
-CONFIG_DVB_S5H1420=m
-CONFIG_DVB_STV0299=m
-CONFIG_DVB_TDA8083=m
-CONFIG_DVB_TDA10086=m
-CONFIG_DVB_VES1X93=m
-CONFIG_DVB_TUNER_ITD1000=m
-CONFIG_DVB_TDA826X=m
-CONFIG_DVB_TUA6100=m
-
-#
-# DVB-T (terrestrial) frontends
-#
-CONFIG_DVB_SP8870=m
-CONFIG_DVB_SP887X=m
-CONFIG_DVB_CX22700=m
-CONFIG_DVB_CX22702=m
-# CONFIG_DVB_DRX397XD is not set
-CONFIG_DVB_L64781=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
-
-#
-# DVB-C (cable) frontends
-#
-CONFIG_DVB_VES1820=m
-CONFIG_DVB_TDA10021=m
-CONFIG_DVB_TDA10023=m
-CONFIG_DVB_STV0297=m
-
-#
-# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
-#
-CONFIG_DVB_NXT200X=m
-# CONFIG_DVB_OR51211 is not set
-# CONFIG_DVB_OR51132 is not set
-CONFIG_DVB_BCM3510=m
-CONFIG_DVB_LGDT330X=m
-CONFIG_DVB_S5H1409=m
-CONFIG_DVB_AU8522=m
-CONFIG_DVB_S5H1411=m
-
-#
-# Digital terrestrial only tuners/PLL
-#
-CONFIG_DVB_PLL=m
-CONFIG_DVB_TUNER_DIB0070=m
-
-#
-# SEC control devices for DVB-S
-#
-CONFIG_DVB_LNBP21=m
-# CONFIG_DVB_ISL6405 is not set
-CONFIG_DVB_ISL6421=m
-CONFIG_DAB=y
-
-#
-# Graphics support
-#
-# CONFIG_VGASTATE is not set
-# CONFIG_VIDEO_OUTPUT_CONTROL is not set
-CONFIG_FB=y
-# CONFIG_FIRMWARE_EDID is not set
-# CONFIG_FB_DDC is not set
-CONFIG_FB_CFB_FILLRECT=y
-CONFIG_FB_CFB_COPYAREA=y
-CONFIG_FB_CFB_IMAGEBLIT=y
-# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
-# CONFIG_FB_SYS_FILLRECT is not set
-# CONFIG_FB_SYS_COPYAREA is not set
-# CONFIG_FB_SYS_IMAGEBLIT is not set
-# CONFIG_FB_FOREIGN_ENDIAN is not set
-# CONFIG_FB_SYS_FOPS is not set
-# 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_TILEBLITTING is not set
-
-#
-# Frame buffer hardware drivers
-#
-# CONFIG_FB_S1D13XXX is not set
-# CONFIG_FB_VIRTUAL is not set
-CONFIG_FB_OMAP=y
-# CONFIG_FB_OMAP_LCDC_EXTERNAL is not set
-# CONFIG_FB_OMAP_BOOTLOADER_INIT is not set
-CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE=4
-CONFIG_BACKLIGHT_LCD_SUPPORT=y
-# CONFIG_LCD_CLASS_DEVICE is not set
-CONFIG_BACKLIGHT_CLASS_DEVICE=y
-# CONFIG_BACKLIGHT_CORGI is not set
-CONFIG_BACKLIGHT_GPIO=y
-
-#
-# Display device support
-#
-CONFIG_DISPLAY_SUPPORT=y
-
-#
-# Display hardware drivers
-#
-
-#
-# Console display driver support
-#
-# CONFIG_VGA_CONSOLE is not set
-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_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=y
-# CONFIG_LOGO_LINUX_MONO is not set
-# CONFIG_LOGO_LINUX_VGA16 is not set
-# CONFIG_LOGO_LINUX_CLUT224 is not set
-CONFIG_LOGO_PANDORA_CLUT224=y
-CONFIG_SOUND=y
-CONFIG_SND=y
-CONFIG_SND_TIMER=y
-CONFIG_SND_PCM=y
-CONFIG_SND_HWDEP=y
-CONFIG_SND_RAWMIDI=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_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
-CCONFIG_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=y
-# CONFIG_SND_OMAP_AIC23 is not set
-# CONFIG_SND_OMAP_TSC2101 is not set
-# CONFIG_SND_SX1 is not set
-# CONFIG_SND_OMAP_TSC2102 is not set
-# CONFIG_SND_OMAP24XX_EAC 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_OMAP3_PANDORA=y
-CONFIG_SND_SOC_TWL4030=y
-# CONFIG_SOUND_PRIME is not set
-CONFIG_HID_SUPPORT=y
-CONFIG_HID=y
-CONFIG_HID_DEBUG=y
-# CONFIG_HIDRAW is not set
-
-#
-# USB Input Devices
-#
-CONFIG_USB_HID=y
-# CONFIG_USB_HIDINPUT_POWERBOOK is not set
-# CONFIG_HID_FF is not set
-# CONFIG_USB_HIDDEV 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=y
-
-#
-# Miscellaneous USB options
-#
-CONFIG_USB_DEVICEFS=y
-CONFIG_USB_DEVICE_CLASS=y
-# CONFIG_USB_DYNAMIC_MINORS is not set
-CONFIG_USB_SUSPEND=y
-CONFIG_USB_OTG=y
-# CONFIG_USB_OTG_WHITELIST is not set
-# CONFIG_USB_OTG_BLACKLIST_HUB is not set
-CONFIG_USB_MON=y
-
-#
-# USB Host Controller Drivers
-#
-# CONFIG_USB_C67X00_HCD is not set
-CONFIG_USB_EHCI_HCD=y
-CONFIG_OMAP_EHCI_PHY_MODE=y
-# CONFIG_OMAP_EHCI_TLL_MODE is not set
-# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
-# CONFIG_USB_EHCI_TT_NEWSCHED is not set
-# CONFIG_USB_ISP116X_HCD is not set
-# CONFIG_USB_ISP1760_HCD is not set
-# CONFIG_USB_OHCI_HCD is not set
-# CONFIG_USB_SL811_HCD is not set
-# CONFIG_USB_R8A66597_HCD is not set
-CONFIG_USB_MUSB_HDRC=y
-CONFIG_USB_MUSB_SOC=y
-
-#
-# OMAP 343x high speed USB support
-#
-# CONFIG_USB_MUSB_HOST is not set
-# CONFIG_USB_MUSB_PERIPHERAL is not set
-CONFIG_USB_MUSB_OTG=y
-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_USB_TI_CPPI_DMA is not set
-# CONFIG_USB_MUSB_DEBUG is not set
-
-#
-# USB Device Class drivers
-#
-CONFIG_USB_ACM=m
-CONFIG_USB_PRINTER=m
-CONFIG_USB_WDM=m
-
-#
-# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
-#
-
-#
-# may also be needed; see USB_STORAGE Help for more information
-#
-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_DPCM 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
-
-#
-# USB Imaging devices
-#
-# CONFIG_USB_MDC800 is not set
-# CONFIG_USB_MICROTEK is not set
-
-#
-# USB port drivers
-#
-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_CP2101=m
-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_SPCP8X5=m
-CONFIG_USB_SERIAL_HP4X=m
-CONFIG_USB_SERIAL_SAFE=m
-# CONFIG_USB_SERIAL_SAFE_PADDED is not set
-CONFIG_USB_SERIAL_SIERRAWIRELESS=m
-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_DEBUG=m
-
-#
-# USB Miscellaneous drivers
-#
-CONFIG_USB_EMI62=m
-CONFIG_USB_EMI26=m
-# CONFIG_USB_ADUTUX is not set
-# CONFIG_USB_RIO500 is not set
-CONFIG_USB_LEGOTOWER=m
-CONFIG_USB_LCD=m
-# CONFIG_USB_BERRY_CHARGE is not set
-CONFIG_USB_LED=m
-# 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_APPLEDISPLAY is not set
-# CONFIG_USB_SISUSBVGA is not set
-# CONFIG_USB_LD is not set
-# CONFIG_USB_TRANCEVIBRATOR is not set
-# CONFIG_USB_IOWARRIOR is not set
-CONFIG_USB_TEST=m
-# CONFIG_USB_ISIGHTFW is not set
-CONFIG_USB_GADGET=y
-# CONFIG_USB_GADGET_DEBUG is not set
-# CONFIG_USB_GADGET_DEBUG_FILES is not set
-# CONFIG_USB_GADGET_DEBUG_FS is not set
-CONFIG_USB_GADGET_SELECTED=y
-# CONFIG_USB_GADGET_AMD5536UDC 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_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_S3C2410 is not set
-# CONFIG_USB_GADGET_AT91 is not set
-# CONFIG_USB_GADGET_DUMMY_HCD is not set
-CONFIG_USB_GADGET_DUALSPEED=y
-# CONFIG_USB_ZERO 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_MMC=y
-# CONFIG_MMC_DEBUG is not set
-CONFIG_MMC_UNSAFE_RESUME=y
-
-#
-# MMC/SD Card Drivers
-#
-CONFIG_MMC_BLOCK=y
-CONFIG_MMC_BLOCK_BOUNCE=y
-CONFIG_SDIO_UART=y
-# CONFIG_MMC_TEST is not set
-
-#
-# MMC/SD Host Controller Drivers
-#
-# CONFIG_MMC_SDHCI is not set
-CONFIG_MMC_OMAP_HS=y
-CONFIG_MMC_SPI=m
-CONFIG_OMAP_HS_MMC1=y
-CONFIG_OMAP_HS_MMC2=y
-CONFIG_OMAP_HS_MMC3=y
-CONFIG_TIWLAN_SDIO=y
-CONFIG_TIWLAN_MMC_CONTROLLER=3
-# CONFIG_MMC_SPI is not set
-CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=y
-
-#
-# LED drivers
-#
-# CONFIG_LEDS_OMAP_DEBUG is not set
-# CONFIG_LEDS_OMAP is not set
-# CONFIG_LEDS_OMAP_PWM is not set
-# CONFIG_LEDS_PCA9532 is not set
-CONFIG_LEDS_GPIO=y
-# CONFIG_LEDS_PCA955X is not set
-
-#
-# LED Triggers
-#
-CONFIG_LEDS_TRIGGERS=y
-CONFIG_LEDS_TRIGGER_TIMER=y
-CONFIG_LEDS_TRIGGER_HEARTBEAT=y
-CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
-CONFIG_RTC_LIB=y
-CONFIG_RTC_CLASS=y
-CONFIG_RTC_HCTOSYS=y
-CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
-# CONFIG_RTC_DEBUG is not set
-
-#
-# RTC interfaces
-#
-CONFIG_RTC_INTF_SYSFS=y
-CONFIG_RTC_INTF_PROC=y
-CONFIG_RTC_INTF_DEV=y
-# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
-# CONFIG_RTC_DRV_TEST is not set
-
-#
-# I2C RTC drivers
-#
-# CONFIG_RTC_DRV_DS1307 is not set
-# CONFIG_RTC_DRV_DS1374 is not set
-# CONFIG_RTC_DRV_DS1672 is not set
-# CONFIG_RTC_DRV_MAX6900 is not set
-# CONFIG_RTC_DRV_RS5C372 is not set
-# CONFIG_RTC_DRV_ISL1208 is not set
-# CONFIG_RTC_DRV_X1205 is not set
-# 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=y
-# CONFIG_RTC_DRV_S35390A is not set
-# CONFIG_RTC_DRV_FM3130 is not set
-
-#
-# SPI RTC drivers
-#
-# CONFIG_RTC_DRV_M41T94 is not set
-# CONFIG_RTC_DRV_DS1305 is not set
-# CONFIG_RTC_DRV_MAX6902 is not set
-# CONFIG_RTC_DRV_R9701 is not set
-# CONFIG_RTC_DRV_RS5C348 is not set
-
-#
-# Platform RTC drivers
-#
-# CONFIG_RTC_DRV_CMOS 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_M48T59 is not set
-# CONFIG_RTC_DRV_V3020 is not set
-
-#
-# on-CPU RTC drivers
-#
-# CONFIG_DMADEVICES is not set
-
-#
-# Voltage and Current regulators
-#
-# CONFIG_REGULATOR is not set
-# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
-# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
-# CONFIG_REGULATOR_BQ24022 is not set
-# CONFIG_UIO is not set
-
-#
-# CBUS support
-#
-# CONFIG_CBUS is not set
-
-#
-# File systems
-#
-CONFIG_EXT2_FS=y
-# CONFIG_EXT2_FS_XATTR is not set
-# CONFIG_EXT2_FS_XIP is not set
-CONFIG_EXT3_FS=y
-# CONFIG_EXT3_FS_XATTR is not set
-# CONFIG_EXT4DEV_FS is not set
-CONFIG_JBD=y
-# CONFIG_JBD_DEBUG is not set
-# CONFIG_REISERFS_FS is not set
-# CONFIG_JFS_FS 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 is not set
-# CONFIG_OCFS2_FS is not set
-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_QFMT_V1 is not set
-CONFIG_QFMT_V2=y
-CONFIG_QUOTACTL=y
-# CONFIG_AUTOFS_FS is not set
-CONFIG_AUTOFS4_FS=m
-CONFIG_FUSE_FS=m
-
-#
-# CD-ROM/DVD Filesystems
-#
-CONFIG_ISO9660_FS=m
-CONFIG_JOLIET=y
-CONFIG_ZISOFS=y
-CONFIG_UDF_FS=m
-CONFIG_UDF_NLS=y
-
-#
-# DOS/FAT/NT Filesystems
-#
-CONFIG_FAT_FS=y
-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
-
-#
-# Pseudo filesystems
-#
-CONFIG_PROC_FS=y
-CONFIG_PROC_SYSCTL=y
-CONFIG_SYSFS=y
-CONFIG_TMPFS=y
-# CONFIG_TMPFS_POSIX_ACL is not set
-# 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_JFFS2_FS=y
-CONFIG_JFFS2_FS_DEBUG=0
-CONFIG_JFFS2_FS_WRITEBUFFER=y
-# CONFIG_JFFS2_FS_WBUF_VERIFY 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=y
-CONFIG_JFFS2_RTIME=y
-CONFIG_JFFS2_RUBIN=y
-# CONFIG_JFFS2_CMODE_NONE is not set
-CONFIG_JFFS2_CMODE_PRIORITY=y
-# CONFIG_JFFS2_CMODE_SIZE is not set
-# CONFIG_JFFS2_CMODE_FAVOURLZO 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_NETWORK_FILESYSTEMS=y
-CONFIG_NFS_FS=y
-CONFIG_NFS_V3=y
-# CONFIG_NFS_V3_ACL is not set
-CONFIG_NFS_V4=y
-CONFIG_ROOT_NFS=y
-# CONFIG_NFSD is not set
-CONFIG_LOCKD=y
-CONFIG_LOCKD_V4=y
-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=y
-# CONFIG_CIFS_STATS is not set
-# CONFIG_CIFS_WEAK_PW_HASH is not set
-# CONFIG_CIFS_XATTR is not set
-# CONFIG_CIFS_DEBUG2 is not set
-# CONFIG_CIFS_EXPERIMENTAL is not set
-# CONFIG_NCP_FS is not set
-# CONFIG_CODA_FS is not set
-# CONFIG_AFS_FS is not set
-
-#
-# Partition Types
-#
-CONFIG_PARTITION_ADVANCED=y
-# CONFIG_ACORN_PARTITION is not set
-# 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_MSDOS_PARTITION=y
-# CONFIG_BSD_DISKLABEL is not set
-# CONFIG_MINIX_SUBPARTITION is not set
-# CONFIG_SOLARIS_X86_PARTITION is not set
-# CONFIG_UNIXWARE_DISKLABEL is not set
-# CONFIG_LDM_PARTITION is not set
-# 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_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_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
-
-#
-# Kernel hacking
-#
-# CONFIG_PRINTK_TIME is not set
-CONFIG_ENABLE_WARN_DEPRECATED=y
-CONFIG_ENABLE_MUST_CHECK=y
-CONFIG_FRAME_WARN=1024
-CONFIG_MAGIC_SYSRQ=y
-# CONFIG_UNUSED_SYMBOLS is not set
-# CONFIG_DEBUG_FS is not set
-# 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_SCHED_DEBUG=y
-CONFIG_SCHEDSTATS=y
-CONFIG_TIMER_STATS=y
-# CONFIG_DEBUG_OBJECTS is not set
-# CONFIG_DEBUG_SLAB is not set
-# CONFIG_DEBUG_RT_MUTEXES is not set
-# CONFIG_RT_MUTEX_TESTER is not set
-# CONFIG_DEBUG_SPINLOCK is not set
-CONFIG_DEBUG_MUTEXES=y
-# CONFIG_DEBUG_LOCK_ALLOC is not set
-# CONFIG_PROVE_LOCKING is not set
-# CONFIG_LOCK_STAT is not set
-# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
-# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
-# CONFIG_DEBUG_KOBJECT is not set
-# CONFIG_DEBUG_BUGVERBOSE is not set
-# 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_BOOT_PRINTK_DELAY is not set
-# CONFIG_RCU_TORTURE_TEST is not set
-# CONFIG_BACKTRACE_SELF_TEST 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_IRQSOFF_TRACER is not set
-# CONFIG_SCHED_TRACER is not set
-# CONFIG_CONTEXT_SWITCH_TRACER is not set
-# CONFIG_SAMPLES is not set
-CONFIG_HAVE_ARCH_KGDB=y
-# CONFIG_KGDB is not set
-# 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
-
-#
-# Security options
-#
-# CONFIG_KEYS is not set
-# CONFIG_SECURITY is not set
-# CONFIG_SECURITY_FILE_CAPABILITIES is not set
-CONFIG_XOR_BLOCKS=m
-CONFIG_ASYNC_CORE=m
-CONFIG_ASYNC_MEMCPY=m
-CONFIG_ASYNC_XOR=m
-CONFIG_CRYPTO=y
-
-#
-# Crypto core or helper
-#
-CONFIG_CRYPTO_ALGAPI=y
-CONFIG_CRYPTO_AEAD=m
-CONFIG_CRYPTO_BLKCIPHER=y
-CONFIG_CRYPTO_HASH=m
-CONFIG_CRYPTO_MANAGER=y
-CONFIG_CRYPTO_GF128MUL=m
-CONFIG_CRYPTO_NULL=m
-CONFIG_CRYPTO_CRYPTD=m
-# CONFIG_CRYPTO_AUTHENC is not set
-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
-
-#
-# Block modes
-#
-CONFIG_CRYPTO_CBC=y
-# CONFIG_CRYPTO_CTR is not set
-# CONFIG_CRYPTO_CTS is not set
-CONFIG_CRYPTO_ECB=y
-CONFIG_CRYPTO_LRW=m
-CONFIG_CRYPTO_PCBC=m
-# CONFIG_CRYPTO_XTS is not set
-
-#
-# Hash modes
-#
-CONFIG_CRYPTO_HMAC=m
-CONFIG_CRYPTO_XCBC=m
-
-#
-# Digest
-#
-CONFIG_CRYPTO_CRC32C=m
-CONFIG_CRYPTO_MD4=m
-CONFIG_CRYPTO_MD5=y
-CONFIG_CRYPTO_MICHAEL_MIC=y
-# 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=m
-CONFIG_CRYPTO_SHA256=m
-CONFIG_CRYPTO_SHA512=m
-CONFIG_CRYPTO_TGR192=m
-CONFIG_CRYPTO_WP512=m
-
-#
-# Ciphers
-#
-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=m
-CONFIG_CRYPTO_KHAZAD=m
-# CONFIG_CRYPTO_SALSA20 is not set
-# CONFIG_CRYPTO_SEED is not set
-CONFIG_CRYPTO_SERPENT=m
-CONFIG_CRYPTO_TEA=m
-CONFIG_CRYPTO_TWOFISH=m
-CONFIG_CRYPTO_TWOFISH_COMMON=m
-
-#
-# Compression
-#
-CONFIG_CRYPTO_DEFLATE=m
-# CONFIG_CRYPTO_LZO is not set
-CONFIG_CRYPTO_HW=y
-
-#
-# Library routines
-#
-CONFIG_BITREVERSE=y
-# CONFIG_GENERIC_FIND_FIRST_BIT is not set
-# CONFIG_GENERIC_FIND_NEXT_BIT is not set
-CONFIG_CRC_CCITT=y
-CONFIG_CRC16=m
-CONFIG_CRC_T10DIF=y
-CONFIG_CRC_ITU_T=y
-CONFIG_CRC32=y
-CONFIG_CRC7=y
-CONFIG_LIBCRC32C=y
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=y
-CONFIG_LZO_COMPRESS=y
-CONFIG_LZO_DECOMPRESS=y
-CONFIG_PLIST=y
-CONFIG_HAS_IOMEM=y
-CONFIG_HAS_IOPORT=y
-CONFIG_HAS_DMA=y
diff --git a/recipes/linux/omap3-pandora-kernel-wifi/dvb-fix-dma.diff b/recipes/linux/omap3-pandora-kernel-wifi/dvb-fix-dma.diff
deleted file mode 100755 (executable)
index e05473f..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-Hi,
-I post this patch that fixes a kernel crash that happens when using a dvb
-usb stick on a mips platform and I think even on other platforms on which
-the dma access in not cache-coherent.
-
-The problem's origin is that, inside the method usb_bulk_urb_init of file
-drivers/media/dvb/dvb-usb/usb-urb.c, stream->urb_list[i]->transfer_buffer
-points to a memory area that has been allocated to be dma-coherent but
-stream->urb_list[i]->transfer_flags doesn't include the
-URB_NO_TRANSFER_DMA_MAP flag and stream->urb_list[i]->transfer_dma is not
-set.
-When later on the stream->urb_list[i]->transfer_buffer pointer is used
-inside function usb_hcd_submit_urb of file drivers/usb/core/hcd.c since the
-flag URB_NO_TRANSFER_DMA_MAP is not set the urb->transfer_buffer pointer is
-passed to the dma_map_single function that since the address is dma-coherent
-returns a wrong tranfer_dma address that later on leads to the kernel crash.
-
-The problem is solved by setting the URB_NO_TRANSFER_DMA_MAP flag and the
-stream->urb_list[i]->transfer_dma address.
-
-Perhaps to be more safe the URB_NO_TRANSFER_DMA_MAP flag can be set only
-if stream->urb_list[i]->transfer_dma != 0.
-
-I don't know if half of the fault can be of the dma_map_single function that
-should anyway returns a valid address both for a not dma-coherent and a
-dma-coherent address.
-
-Just to be clear:
-I've done this patch to solve my problem and I tested it only on a mips 
-platform
-but I think it should not cause any problems on other platforms.
-I posted it here to help someone else that can have my same problem and to 
-point it out
-to the mantainer of this part of code.
-You can use it at your own risk and I'm not resposible in any way for any 
-problem or
-damage that it can cause.
-I'm available to discuss about it
-
-Bye
-
-Michele Scorcia
-
---------------------
-
-
-
-
---- /tmp/usb-urb.c     2008-10-08 09:53:23.000000000 +0200
-+++ git/drivers/media/dvb/dvb-usb/usb-urb.c    2008-10-08 09:54:16.000000000 +0200
-@@ -152,7 +152,8 @@
-                               stream->props.u.bulk.buffersize,
-                               usb_urb_complete, stream);
--              stream->urb_list[i]->transfer_flags = 0;
-+              stream->urb_list[i]->transfer_flags = URB_NO_TRANSFER_DMA_MAP;
-+              stream->urb_list[i]->transfer_dma = stream->dma_addr[i];        
-               stream->urbs_initialized++;
-       }
-       return 0;
diff --git a/recipes/linux/omap3-pandora-kernel-wifi/evm-mcspi-ts.diff b/recipes/linux/omap3-pandora-kernel-wifi/evm-mcspi-ts.diff
deleted file mode 100755 (executable)
index 64d797c..0000000
+++ /dev/null
@@ -1,132 +0,0 @@
-From linux-omap-owner@vger.kernel.org Sun Nov 02 21:08:25 2008
-Received: from localhost
-       ([127.0.0.1] helo=dominion ident=koen)
-       by dominion.dominion.void with esmtp (Exim 4.69)
-       (envelope-from <linux-omap-owner@vger.kernel.org>)
-       id 1KwjFJ-0008Hg-0T
-       for koen@localhost; Sun, 02 Nov 2008 21:08:25 +0100
-Received: from xs.service.utwente.nl [130.89.5.250]
-       by dominion with POP3 (fetchmail-6.3.9-rc2)
-       for <koen@localhost> (single-drop); Sun, 02 Nov 2008 21:08:25 +0100 (CET)
-Received: from mail.service.utwente.nl ([130.89.5.253]) by exchange.service.utwente.nl with Microsoft SMTPSVC(6.0.3790.3959);
-        Sun, 2 Nov 2008 20:57:16 +0100
-Received: from mx.utwente.nl ([130.89.2.13]) by mail.service.utwente.nl with Microsoft SMTPSVC(6.0.3790.3959);
-        Sun, 2 Nov 2008 20:57:16 +0100
-Received: from vger.kernel.org (vger.kernel.org [209.132.176.167])
-          by mx.utwente.nl (8.12.10/SuSE Linux 0.7) with ESMTP id mA2JudEK010968
-          for <k.kooi@student.utwente.nl>; Sun, 2 Nov 2008 20:56:40 +0100
-Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
-       id S1752819AbYKBT4i (ORCPT <rfc822;k.kooi@student.utwente.nl>);
-       Sun, 2 Nov 2008 14:56:38 -0500
-Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1752829AbYKBT4i
-       (ORCPT <rfc822;linux-omap-outgoing>); Sun, 2 Nov 2008 14:56:38 -0500
-Received: from fg-out-1718.google.com ([72.14.220.153]:32481 "EHLO
-       fg-out-1718.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
-       with ESMTP id S1752819AbYKBT4h (ORCPT
-       <rfc822;linux-omap@vger.kernel.org>); Sun, 2 Nov 2008 14:56:37 -0500
-Received: by fg-out-1718.google.com with SMTP id 19so1869080fgg.17
-        for <linux-omap@vger.kernel.org>; Sun, 02 Nov 2008 11:56:33 -0800 (PST)
-DKIM-Signature:        v=1; a=rsa-sha256; c=relaxed/relaxed;
-        d=gmail.com; s=gamma;
-        h=domainkey-signature:received:received:from:to:cc:subject:date
-         :message-id:x-mailer:in-reply-to:references;
-        bh=Ftvoq8kE3ciPRy7pNy5VLkNnZD8o0HYWIrO1LMS/lAY=;
-        b=HpEcngDUbAObGNJuQmBIG3SoNHesUL57GluZGlYO7kxFxfH6N8zeHjKuRSk86+mT5s
-         gMhyCC07wjVp75HnqCtKbOJzNw/8F4ZGbL2lY1LC99+zxHW1JBQv5c3ZaoCVqTw6TuH0
-         bQ8Ew2BwHknT3wGA+QcGoMJJs5aw62AhPiyHY=
-DomainKey-Signature: a=rsa-sha1; c=nofws;
-        d=gmail.com; s=gamma;
-        h=from:to:cc:subject:date:message-id:x-mailer:in-reply-to:references;
-        b=aio1APZhCIcYIrMY844QkdaQzKw0/yiuaVjqfv52fnft1kafGT2qAS3KfXAc61a9If
-         sXHbi2fr/r1a7YZJJVGqkJX0WmWTY0OqdhS1lmugP/dXEMHeqaArKATbvxrq9/svb1bV
-         Vzpkm6sOzLrr54uo+BcZNoxHWqb8W2UrRxuTk=
-Received: by 10.103.131.18 with SMTP id i18mr6668205mun.126.1225655793072;
-        Sun, 02 Nov 2008 11:56:33 -0800 (PST)
-Received: from localhost.localdomain ([78.59.134.74])
-        by mx.google.com with ESMTPS id g1sm23199635muf.8.2008.11.02.11.56.31
-        (version=TLSv1/SSLv3 cipher=RC4-MD5);
-        Sun, 02 Nov 2008 11:56:31 -0800 (PST)
-From: Grazvydas Ignotas <notasas@gmail.com>
-To: linux-omap@vger.kernel.org
-Cc: Grazvydas Ignotas <notasas@gmail.com>
-Subject: Re: omap3evm LCD red-tint workaround
-Date:  Sun,  2 Nov 2008 21:56:19 +0200
-Message-Id: <1225655779-18934-1-git-send-email-notasas@gmail.com>
-X-Mailer: git-send-email 1.5.4.3
-In-Reply-To: <57322719-1A5A-45DC-9846-5C0A3B6EF346@student.utwente.nl>
-References: <57322719-1A5A-45DC-9846-5C0A3B6EF346@student.utwente.nl>
-Sender: linux-omap-owner@vger.kernel.org
-Precedence: bulk
-List-ID: <linux-omap.vger.kernel.org>
-X-Mailing-List:        linux-omap@vger.kernel.org
-X-UTwente-MailScanner-Information: Scanned by MailScanner. Contact servicedesk@icts.utwente.nl for more information.
-X-UTwente-MailScanner: Found to be clean
-X-UTwente-MailScanner-From: linux-omap-owner@vger.kernel.org
-X-Spam-Status: No
-X-OriginalArrivalTime: 02 Nov 2008 19:57:16.0876 (UTC) FILETIME=[34FBA0C0:01C93D25]
-
-> PS: TS is still unusable with the 16x16 pixel resolution
-This is also the case for Pandora. The patch below fixes the problem,
-but as I have no other boards to test this on, I haven't sent it.
-See if it helps you.
-
-
-From 91f3af26bbf751b846e6265d86387e81be7c1364 Mon Sep 17 00:00:00 2001
-From: Grazvydas Ignotas <notasas@gmail.com>
-Date: Tue, 28 Oct 2008 22:01:42 +0200
-Subject: [PATCH] OMAP3: fix McSPI transfers
-
-Currently on OMAP3 if both write and read is set up for a transfer,
-the first byte returned on read is corrupted. Work around this by
-disabling channel between reads and writes, instead of transfers.
----
- drivers/spi/omap2_mcspi.c |    7 ++++---
- 1 files changed, 4 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/spi/omap2_mcspi.c b/drivers/spi/omap2_mcspi.c
-index 454a271..4890b6c 100644
---- a/drivers/spi/omap2_mcspi.c
-+++ b/drivers/spi/omap2_mcspi.c
-@@ -710,7 +710,6 @@ static void omap2_mcspi_work(struct work_struct *work)
-               spi = m->spi;
-               cs = spi->controller_state;
--              omap2_mcspi_set_enable(spi, 1);
-               list_for_each_entry(t, &m->transfers, transfer_list) {
-                       if (t->tx_buf == NULL && t->rx_buf == NULL && t->len) {
-                               status = -EINVAL;
-@@ -741,6 +740,8 @@ static void omap2_mcspi_work(struct work_struct *work)
-                       if (t->len) {
-                               unsigned        count;
-+                              omap2_mcspi_set_enable(spi, 1);
-+
-                               /* RX_ONLY mode needs dummy data in TX reg */
-                               if (t->tx_buf == NULL)
-                                       __raw_writel(0, cs->base
-@@ -752,6 +753,8 @@ static void omap2_mcspi_work(struct work_struct *work)
-                                       count = omap2_mcspi_txrx_pio(spi, t);
-                               m->actual_length += count;
-+                              omap2_mcspi_set_enable(spi, 0);
-+
-                               if (count != t->len) {
-                                       status = -EIO;
-                                       break;
-@@ -777,8 +780,6 @@ static void omap2_mcspi_work(struct work_struct *work)
-               if (cs_active)
-                       omap2_mcspi_force_cs(spi, 0);
--              omap2_mcspi_set_enable(spi, 0);
--
-               m->status = status;
-               m->complete(m->context);
--- 
-1.5.4.3
-
---
-To unsubscribe from this list: send the line "unsubscribe linux-omap" in
-the body of a message to majordomo@vger.kernel.org
-More majordomo info at  http://vger.kernel.org/majordomo-info.html
-
diff --git a/recipes/linux/omap3-pandora-kernel-wifi/fix-install.patch b/recipes/linux/omap3-pandora-kernel-wifi/fix-install.patch
deleted file mode 100755 (executable)
index 46bc25a..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-From: Steve Sakoman <steve@sakoman.com>
-Date: Mon, 18 Aug 2008 16:07:31 +0000 (-0700)
-Subject: scripts/Makefile.fwinst: add missing space when setting mode in cmd_install
-X-Git-Url: http://www.sakoman.net/cgi-bin/gitweb.cgi?p=linux-omap-2.6.git;a=commitdiff_plain;h=f039944bdd491cde7327133e9976881d3133ae70
-
-scripts/Makefile.fwinst: add missing space when setting mode in cmd_install
-
-This was causing build failures on some machines
----
-
-diff --git a/scripts/Makefile.fwinst b/scripts/Makefile.fwinst
-index 6bf8e87..fb20532 100644
---- a/scripts/Makefile.fwinst
-+++ b/scripts/Makefile.fwinst
-@@ -37,7 +37,7 @@ install-all-dirs: $(installed-fw-dirs)
-       @true
- quiet_cmd_install = INSTALL $(subst $(srctree)/,,$@)
--      cmd_install = $(INSTALL) -m0644 $< $@
-+      cmd_install = $(INSTALL) -m 0644 $< $@
- $(installed-fw-dirs):
-       $(call cmd,mkdir)
diff --git a/recipes/linux/omap3-pandora-kernel-wifi/fix-irq33.diff b/recipes/linux/omap3-pandora-kernel-wifi/fix-irq33.diff
deleted file mode 100755 (executable)
index 709f042..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-From: "Nathan Monson" <nmonson@gmail.com>
-To: "linux-omap@vger.kernel.org List" <linux-omap@vger.kernel.org>
-Subject: Re: omapfb: help from userspace
-Cc: "TK, Pratheesh Gangadhar" <pratheesh@ti.com>
-
-On Wed, Oct 8, 2008 at 11:36 AM, Nathan Monson <nmonson@gmail.com> wrote:
-> "Felipe Contreras" <felipe.contreras@gmail.com> writes:
->> irq -33, desc: c0335cf8, depth: 0, count: 0, unhandled: 0
->
-> On the BeagleBoard list, Pratheesh Gangadhar said that mapping I/O
-> regions as Strongly Ordered suppresses this problem:
-> http://groups.google.com/group/beagleboard/browse_thread/thread/23e1c95b4bfb09b5/70d12dca569ca503?show_docid=70d12dca569ca503
-
-Pratheesh helped me make a patch against the latest linux-omap git to
-try this.
-
-With this patch, my IRQ -33 problems with the DSP have disappeared.
-Before, I would end up in IRQ -33 loop after 10 invocations of the DSP
-Bridge 'ping.out' utility.  I just finished running it 50,000 times
-without error.
-
-As stated before, this patch is just a workaround for testing
-purposes, not a fix.  Who knows what performance side effects it
-has...
-
----
-diff --git a/arch/arm/include/asm/mach/map.h b/arch/arm/include/asm/mach/map.h
-index 9eb936e..5cb4f5f 100644
---- a/arch/arm/include/asm/mach/map.h
-+++ b/arch/arm/include/asm/mach/map.h
-@@ -25,6 +25,7 @@ struct map_desc {
- #define MT_HIGH_VECTORS               8
- #define MT_MEMORY             9
- #define MT_ROM                        10
-+#define MT_MEMORY_SO          11
-
- #define MT_NONSHARED_DEVICE   MT_DEVICE_NONSHARED
- #define MT_IXP2000_DEVICE     MT_DEVICE_IXP2000
-diff --git a/arch/arm/mach-omap2/io.c b/arch/arm/mach-omap2/io.c
-index adbe21f..c11c0e8 100644
---- a/arch/arm/mach-omap2/io.c
-+++ b/arch/arm/mach-omap2/io.c
-@@ -119,13 +119,13 @@ static struct map_desc omap34xx_io_desc[] __initdata = {
-               .virtual        = L3_34XX_VIRT,
-               .pfn            = __phys_to_pfn(L3_34XX_PHYS),
-               .length         = L3_34XX_SIZE,
--              .type           = MT_DEVICE
-+              .type           = MT_MEMORY_SO
-       },
-       {
-               .virtual        = L4_34XX_VIRT,
-               .pfn            = __phys_to_pfn(L4_34XX_PHYS),
-               .length         = L4_34XX_SIZE,
--              .type           = MT_DEVICE
-+              .type           = MT_MEMORY_SO
-       },
-       {
-               .virtual        = L4_WK_34XX_VIRT,
-@@ -137,19 +137,19 @@ static struct map_desc omap34xx_io_desc[] __initdata = {
-               .virtual        = OMAP34XX_GPMC_VIRT,
-               .pfn            = __phys_to_pfn(OMAP34XX_GPMC_PHYS),
-               .length         = OMAP34XX_GPMC_SIZE,
--              .type           = MT_DEVICE
-+              .type           = MT_MEMORY_SO
-       },
-       {
-               .virtual        = OMAP343X_SMS_VIRT,
-               .pfn            = __phys_to_pfn(OMAP343X_SMS_PHYS),
-               .length         = OMAP343X_SMS_SIZE,
--              .type           = MT_DEVICE
-+              .type           = MT_MEMORY_SO
-       },
-       {
-               .virtual        = OMAP343X_SDRC_VIRT,
-               .pfn            = __phys_to_pfn(OMAP343X_SDRC_PHYS),
-               .length         = OMAP343X_SDRC_SIZE,
--              .type           = MT_DEVICE
-+              .type           = MT_MEMORY_SO
-       },
-       {
-               .virtual        = L4_PER_34XX_VIRT,
-@@ -161,7 +161,7 @@ static struct map_desc omap34xx_io_desc[] __initdata = {
-               .virtual        = L4_EMU_34XX_VIRT,
-               .pfn            = __phys_to_pfn(L4_EMU_34XX_PHYS),
-               .length         = L4_EMU_34XX_SIZE,
--              .type           = MT_DEVICE
-+              .type           = MT_MEMORY_SO
-       },
- };
- #endif
-diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c
-index a713e40..d5f25ad 100644
---- a/arch/arm/mm/mmu.c
-+++ b/arch/arm/mm/mmu.c
-@@ -245,6 +245,10 @@ static struct mem_type mem_types[] = {
-               .prot_sect = PMD_TYPE_SECT,
-               .domain    = DOMAIN_KERNEL,
-       },
-+      [MT_MEMORY_SO] = {
-+              .prot_sect = PMD_TYPE_SECT | PMD_SECT_AP_WRITE | PMD_SECT_UNCACHED,
-+              .domain    = DOMAIN_KERNEL,
-+      },
- };
-
- const struct mem_type *get_mem_type(unsigned int type)
---
---
-To unsubscribe from this list: send the line "unsubscribe linux-omap" in
-the body of a message to majordomo@vger.kernel.org
-More majordomo info at  http://vger.kernel.org/majordomo-info.html
-
diff --git a/recipes/linux/omap3-pandora-kernel-wifi/mru-256MB.diff b/recipes/linux/omap3-pandora-kernel-wifi/mru-256MB.diff
deleted file mode 100755 (executable)
index 0492ca2..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-From: Mans Rullgard <mans@mansr.com>
-Date: Thu, 2 Oct 2008 00:05:33 +0000 (+0100)
-Subject: OMAP: Increase VMALLOC_END to allow 256MB RAM
-X-Git-Url: http://git.mansr.com/?p=linux-omap;a=commitdiff_plain;h=355a0ce968e4a7b0c8d8203f4517296e932e373d
-
-OMAP: Increase VMALLOC_END to allow 256MB RAM
-
-This increases VMALLOC_END to 0x18000000, making room for 256MB
-RAM with the default 128MB vmalloc region.
-
-Signed-off-by: Mans Rullgard <mans@mansr.com>
----
-
-diff --git a/arch/arm/plat-omap/include/mach/vmalloc.h b/arch/arm/plat-omap/include/mach/vmalloc.h
-index d8515cb..b97dfaf 100644
---- a/arch/arm/plat-omap/include/mach/vmalloc.h
-+++ b/arch/arm/plat-omap/include/mach/vmalloc.h
-@@ -17,5 +17,5 @@
-  * along with this program; if not, write to the Free Software
-  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-  */
--#define VMALLOC_END     (PAGE_OFFSET + 0x17000000)
-+#define VMALLOC_END     (PAGE_OFFSET + 0x18000000)
diff --git a/recipes/linux/omap3-pandora-kernel-wifi/mru-add-clk-get-parent.diff b/recipes/linux/omap3-pandora-kernel-wifi/mru-add-clk-get-parent.diff
deleted file mode 100755 (executable)
index 64944a5..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-From: Mans Rullgard <mans@mansr.com>
-Date: Fri, 29 Aug 2008 01:51:36 +0000 (+0100)
-Subject: OMAP: Add clk_get_parent() for OMAP2/3
-X-Git-Url: http://git.mansr.com/?p=linux-omap;a=commitdiff_plain;h=08d1f1947a5a970b2fe6e4dfeeb70286b9379056
-
-OMAP: Add clk_get_parent() for OMAP2/3
-
-This makes clk_get_parent() work on OMAP2/3.
-
-Signed-off-by: Mans Rullgard <mans@mansr.com>
----
-
-diff --git a/arch/arm/mach-omap2/clock.c b/arch/arm/mach-omap2/clock.c
-index 5f48e14..aae0d2e 100644
---- a/arch/arm/mach-omap2/clock.c
-+++ b/arch/arm/mach-omap2/clock.c
-@@ -831,6 +831,11 @@ int omap2_clk_set_parent(struct clk *clk, struct clk *new_parent)
-       return 0;
- }
-+struct clk *omap2_clk_get_parent(struct clk *clk)
-+{
-+      return clk->parent;
-+}
-+
- /* DPLL rate rounding code */
- /**
-diff --git a/arch/arm/mach-omap2/clock.h b/arch/arm/mach-omap2/clock.h
-index 3fa2e26..2916879 100644
---- a/arch/arm/mach-omap2/clock.h
-+++ b/arch/arm/mach-omap2/clock.h
-@@ -29,6 +29,7 @@ int omap2_clk_set_rate(struct clk *clk, unsigned long rate);
- int omap2_clk_set_parent(struct clk *clk, struct clk *new_parent);
- int omap2_dpll_set_rate_tolerance(struct clk *clk, unsigned int tolerance);
- long omap2_dpll_round_rate(struct clk *clk, unsigned long target_rate);
-+struct clk *omap2_clk_get_parent(struct clk *clk);
- #ifdef CONFIG_OMAP_RESET_CLOCKS
- void omap2_clk_disable_unused(struct clk *clk);
-diff --git a/arch/arm/mach-omap2/clock24xx.c b/arch/arm/mach-omap2/clock24xx.c
-index c26d9d8..f91bd57 100644
---- a/arch/arm/mach-omap2/clock24xx.c
-+++ b/arch/arm/mach-omap2/clock24xx.c
-@@ -423,6 +423,7 @@ static struct clk_functions omap2_clk_functions = {
-       .clk_round_rate         = omap2_clk_round_rate,
-       .clk_set_rate           = omap2_clk_set_rate,
-       .clk_set_parent         = omap2_clk_set_parent,
-+      .clk_get_parent         = omap2_clk_get_parent,
-       .clk_disable_unused     = omap2_clk_disable_unused,
- #ifdef        CONFIG_CPU_FREQ
-       .clk_init_cpufreq_table = omap2_clk_init_cpufreq_table,
-diff --git a/arch/arm/mach-omap2/clock34xx.c b/arch/arm/mach-omap2/clock34xx.c
-index 152d095..2196edd 100644
---- a/arch/arm/mach-omap2/clock34xx.c
-+++ b/arch/arm/mach-omap2/clock34xx.c
-@@ -606,6 +606,7 @@ static struct clk_functions omap2_clk_functions = {
-       .clk_round_rate         = omap2_clk_round_rate,
-       .clk_set_rate           = omap2_clk_set_rate,
-       .clk_set_parent         = omap2_clk_set_parent,
-+      .clk_get_parent         = omap2_clk_get_parent,
-       .clk_disable_unused     = omap2_clk_disable_unused,
- };
diff --git a/recipes/linux/omap3-pandora-kernel-wifi/mru-enable-overlay-optimalization.diff b/recipes/linux/omap3-pandora-kernel-wifi/mru-enable-overlay-optimalization.diff
deleted file mode 100755 (executable)
index d027c53..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-From: Mans Rullgard <mans@mansr.com>
-Date: Fri, 29 Aug 2008 01:45:26 +0000 (+0100)
-Subject: OMAP: Enable overlay optimisation
-X-Git-Url: http://git.mansr.com/?p=linux-omap;a=commitdiff_plain;h=7e052af7e4c73dc450412486ad37eb529e725dc7
-
-OMAP: Enable overlay optimisation
-
-This enables the overlay optimisation feature when the video
-overlay is active. This reduces memory bandwidth used by the
-display subsystem, improving overall performance.
-
-Signed-off-by: Mans Rullgard <mans@mansr.com>
----
-
-diff --git a/drivers/video/omap/dispc.c b/drivers/video/omap/dispc.c
-index 888d2c2..0f0b2e5 100644
---- a/drivers/video/omap/dispc.c
-+++ b/drivers/video/omap/dispc.c
-@@ -315,6 +315,60 @@ void omap_dispc_enable_digit_out(int enable)
- }
- EXPORT_SYMBOL(omap_dispc_enable_digit_out);
-+#define MIN(a, b) ((a)<(b)?(a):(b))
-+#define MAX(a, b) ((a)>(b)?(a):(b))
-+
-+static void setup_overlay_opt(void)
-+{
-+      struct fb_info **fbi = dispc.fbdev->fb_info;
-+      struct omapfb_plane_struct *gfx, *vid;
-+      struct fb_var_screeninfo *gvar;
-+      unsigned gx, gx2, gy, gy2, gw, gh;
-+      unsigned vx, vx2, vy, vy2, vw, vh;
-+      unsigned bpp, skip;
-+      static unsigned last_skip;
-+
-+      if (!fbi[0] || !fbi[1])
-+              return;
-+
-+      gfx = fbi[0]->par;
-+      vid = fbi[1]->par;
-+      gvar = &fbi[0]->var;
-+
-+      gx = gfx->info.pos_x;
-+      gy = gfx->info.pos_y;
-+      gw = gfx->info.out_width;
-+      gh = gfx->info.out_height;
-+      vx = vid->info.pos_x;
-+      vy = vid->info.pos_y;
-+      vw = vid->info.out_width;
-+      vh = vid->info.out_height;
-+      gx2 = gx + gw;
-+      gy2 = gy + gh;
-+      vx2 = vx + vw;
-+      vy2 = vy + vh;
-+      bpp = gvar->bits_per_pixel / 8;
-+
-+      if (!gfx->info.enabled || !vid->info.enabled ||
-+          dispc.color_key.key_type != OMAPFB_COLOR_KEY_DISABLED) {
-+              skip = 0;
-+      } else if (vx <= gx && vx2 >= gx2) {
-+              unsigned y = MIN(gy2, vy2) - MAX(gy, vy);
-+              skip = y * gvar->xres_virtual * bpp;
-+      } else if (vx <= gx || vx2 >= gx2) {
-+              unsigned x = MIN(gx2, vx2) - MAX(gx, vx);
-+              skip = x * bpp;
-+      } else {
-+              skip = vw * bpp + 1;
-+      }
-+
-+      if (skip != last_skip) {
-+              last_skip = skip;
-+              dispc_write_reg(DISPC_GFX_WINDOW_SKIP, skip);
-+              MOD_REG_FLD(DISPC_CONTROL, 1<<12, !!skip<<12);
-+      }
-+}
-+
- static inline int _setup_plane(int plane, int channel_out,
-                                 u32 paddr, int screen_width,
-                                 int pos_x, int pos_y, int width, int height,
-@@ -437,6 +491,9 @@ static inline int _setup_plane(int plane, int channel_out,
-       dispc_write_reg(ri_reg[plane], (screen_width - width) * bpp / 8 + 1);
-+      if (plane < 2)
-+              setup_overlay_opt();
-+
-       MOD_REG_FLD(DISPC_CONTROL, 1<<5, 1<<5);
-       return height * screen_width * bpp / 8;
-@@ -585,11 +642,19 @@ static int omap_dispc_enable_plane(int plane, int enable)
-       const u32 at_reg[] = { DISPC_GFX_ATTRIBUTES,
-                               DISPC_VID1_BASE + DISPC_VID_ATTRIBUTES,
-                               DISPC_VID2_BASE + DISPC_VID_ATTRIBUTES };
-+      struct omapfb_plane_struct *pi;
-+
-       if ((unsigned int)plane > dispc.mem_desc.region_cnt)
-               return -EINVAL;
-+      pi = dispc.fbdev->fb_info[plane]->par;
-+      pi->info.enabled = enable;
-+
-       enable_lcd_clocks(1);
-       MOD_REG_FLD(at_reg[plane], 1, enable ? 1 : 0);
-+      if (plane < 2)
-+              setup_overlay_opt();
-+      MOD_REG_FLD(DISPC_CONTROL, 1<<5, 1<<5);
-       enable_lcd_clocks(0);
-       return 0;
-@@ -633,6 +698,7 @@ static int omap_dispc_set_color_key(struct omapfb_color_key *ck)
-       if (val != 0)
-               dispc_write_reg(tr_reg, ck->trans_key);
-       dispc_write_reg(df_reg, ck->background);
-+      setup_overlay_opt();
-       enable_lcd_clocks(0);
-       dispc.color_key = *ck;
diff --git a/recipes/linux/omap3-pandora-kernel-wifi/mru-fix-display-panning.diff b/recipes/linux/omap3-pandora-kernel-wifi/mru-fix-display-panning.diff
deleted file mode 100755 (executable)
index a4ba3d2..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-From: Mans Rullgard <mans@mansr.com>
-Date: Fri, 29 Aug 2008 01:18:48 +0000 (+0100)
-Subject: OMAP: Fix omapfb display panning
-X-Git-Url: http://git.mansr.com/?p=linux-omap;a=commitdiff_plain;h=2ea46e9f28ff57a32d87bc380457a584c913fe78
-
-OMAP: Fix omapfb display panning
-
-This makes the FBIOPAN_DISPLAY ioctl work with omapfb.
-
-Signed-off-by: Mans Rullgard <mans@mansr.com>
----
-
-diff --git a/drivers/video/omap/dispc.c b/drivers/video/omap/dispc.c
-index ce4c4de..64bf333 100644
---- a/drivers/video/omap/dispc.c
-+++ b/drivers/video/omap/dispc.c
-@@ -436,6 +436,8 @@ static inline int _setup_plane(int plane, int channel_out,
-       dispc_write_reg(ri_reg[plane], (screen_width - width) * bpp / 8 + 1);
-+      MOD_REG_FLD(DISPC_CONTROL, 1<<5, 1<<5);
-+
-       return height * screen_width * bpp / 8;
- }
-diff --git a/drivers/video/omap/omapfb_main.c b/drivers/video/omap/omapfb_main.c
-index e7f3462..e9ffb92 100644
---- a/drivers/video/omap/omapfb_main.c
-+++ b/drivers/video/omap/omapfb_main.c
-@@ -207,8 +207,8 @@ static int ctrl_change_mode(struct fb_info *fbi)
-       struct omapfb_device *fbdev = plane->fbdev;
-       struct fb_var_screeninfo *var = &fbi->var;
--      offset = var->yoffset * fbi->fix.line_length +
--               var->xoffset * var->bits_per_pixel / 8;
-+      offset = (var->yoffset * var->xres_virtual + var->xoffset) *
-+              var->bits_per_pixel / 8;
-       if (fbdev->ctrl->sync)
-               fbdev->ctrl->sync();
-@@ -426,6 +426,8 @@ static void set_fb_fix(struct fb_info *fbi)
-       }
-       fix->accel              = FB_ACCEL_OMAP1610;
-       fix->line_length        = var->xres_virtual * bpp / 8;
-+      fix->xpanstep           = 1;
-+      fix->ypanstep           = 1;
- }
- static int set_color_mode(struct omapfb_plane_struct *plane,
diff --git a/recipes/linux/omap3-pandora-kernel-wifi/mru-fix-timings.diff b/recipes/linux/omap3-pandora-kernel-wifi/mru-fix-timings.diff
deleted file mode 100755 (executable)
index 37ca7d3..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-From: Mans Rullgard <mans@mansr.com>
-Date: Fri, 29 Aug 2008 01:16:14 +0000 (+0100)
-Subject: OMAP: Fix video timings info message
-X-Git-Url: http://git.mansr.com/?p=linux-omap;a=commitdiff_plain;h=3a8bdf0967ae2c4eb3cebb97118ef0392f709c1c
-
-OMAP: Fix video timings info message
-
-This fixes the hsync frequency value printed on startup.
-
-Signed-off-by: Mans Rullgard <mans@mansr.com>
----
-
-diff --git a/drivers/video/omap/omapfb_main.c b/drivers/video/omap/omapfb_main.c
-index d176a2c..e7f3462 100644
---- a/drivers/video/omap/omapfb_main.c
-+++ b/drivers/video/omap/omapfb_main.c
-@@ -1792,7 +1792,8 @@ static int omapfb_do_probe(struct platform_device *pdev,
-                       vram, fbdev->mem_desc.region_cnt);
-       pr_info("omapfb: Pixclock %lu kHz hfreq %lu.%lu kHz "
-                       "vfreq %lu.%lu Hz\n",
--                      phz / 1000, hhz / 10000, hhz % 10, vhz / 10, vhz % 10);
-+                      phz / 1000, hhz / 10000, hhz % 10000,
-+                      vhz / 10, vhz % 10);
-       return 0;
diff --git a/recipes/linux/omap3-pandora-kernel-wifi/mru-improve-pixclock-config.diff b/recipes/linux/omap3-pandora-kernel-wifi/mru-improve-pixclock-config.diff
deleted file mode 100755 (executable)
index 5a70212..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-From: Mans Rullgard <mans@mansr.com>
-Date: Fri, 29 Aug 2008 01:34:39 +0000 (+0100)
-Subject: OMAP: Improve pixel clock configuration
-X-Git-Url: http://git.mansr.com/?p=linux-omap;a=commitdiff_plain;h=01c2d720e59c291de9eb21eb65225f2f215fef84
-
-OMAP: Improve pixel clock configuration
-
-This sets the DSS1_ALWON_FCLK clock as close as possible to a
-multiple of the requested pixel clock, while keeping it below
-the 173MHz limit.
-
-Due to of the structure of the clock tree, dss1_alwon_fck cannot
-be set directly, and we must use dpll4_m4_ck instead.
-
-Signed-off-by: Mans Rullgard <mans@mansr.com>
----
-
-diff --git a/drivers/video/omap/dispc.c b/drivers/video/omap/dispc.c
-index 64bf333..888d2c2 100644
---- a/drivers/video/omap/dispc.c
-+++ b/drivers/video/omap/dispc.c
-@@ -177,6 +177,7 @@ static struct {
-       struct clk      *dss_ick, *dss1_fck;
-       struct clk      *dss_54m_fck;
-+      struct clk      *dpll4_m4_ck;
-       enum omapfb_update_mode update_mode;
-       struct omapfb_device    *fbdev;
-@@ -736,19 +737,34 @@ static void setup_color_conv_coef(void)
-       MOD_REG_FLD(at2_reg, (1 << 11), ct->full_range);
- }
-+#define MAX_FCK 173000000
-+
- static void calc_ck_div(int is_tft, int pck, int *lck_div, int *pck_div)
- {
-+      unsigned long prate = clk_get_rate(clk_get_parent(dispc.dpll4_m4_ck));
-+      unsigned long pcd_min = is_tft? 2: 3;
-+      unsigned long fck_div;
-       unsigned long fck, lck;
--      *lck_div = 1;
-       pck = max(1, pck);
-+
-+      if (pck * pcd_min > MAX_FCK) {
-+              dev_warn(dispc.fbdev->dev, "pixclock %d kHz too high.\n",
-+                       pck / 1000);
-+              pck = MAX_FCK / pcd_min;
-+      }
-+
-+      fck = pck * 2;
-+      fck_div = (prate + pck) / fck;
-+      if (fck_div > 16)
-+              fck_div /= (fck_div + 15) / 16;
-+      if (fck_div < 1)
-+              fck_div = 1;
-+      clk_set_rate(dispc.dpll4_m4_ck, prate / fck_div);
-       fck = clk_get_rate(dispc.dss1_fck);
--      lck = fck;
--      *pck_div = (lck + pck - 1) / pck;
--      if (is_tft)
--              *pck_div = max(2, *pck_div);
--      else
--              *pck_div = max(3, *pck_div);
-+
-+      *lck_div = 1;
-+      *pck_div = (fck + pck - 1) / pck;
-       if (*pck_div > 255) {
-               *pck_div = 255;
-               lck = pck * *pck_div;
-@@ -909,11 +925,21 @@ static int get_dss_clocks(void)
-               return PTR_ERR(dispc.dss_54m_fck);
-       }
-+      if (IS_ERR((dispc.dpll4_m4_ck =
-+                              clk_get(dispc.fbdev->dev, "dpll4_m4_ck")))) {
-+              dev_err(dispc.fbdev->dev, "can't get dpll4_m4_ck");
-+              clk_put(dispc.dss_ick);
-+              clk_put(dispc.dss1_fck);
-+              clk_put(dispc.dss_54m_fck);
-+              return PTR_ERR(dispc.dss_54m_fck);
-+      }
-+
-       return 0;
- }
- static void put_dss_clocks(void)
- {
-+      clk_put(dispc.dpll4_m4_ck);
-       clk_put(dispc.dss_54m_fck);
-       clk_put(dispc.dss1_fck);
-       clk_put(dispc.dss_ick);
diff --git a/recipes/linux/omap3-pandora-kernel-wifi/mru-make-dpll4-m4-ck-programmable.diff b/recipes/linux/omap3-pandora-kernel-wifi/mru-make-dpll4-m4-ck-programmable.diff
deleted file mode 100755 (executable)
index 0a535c5..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-From: Mans Rullgard <mans@mansr.com>
-Date: Fri, 29 Aug 2008 01:52:42 +0000 (+0100)
-Subject: OMAP: Make dpll4_m4_ck programmable with clk_set_rate()
-X-Git-Url: http://git.mansr.com/?p=linux-omap;a=commitdiff_plain;h=feab5b628c06619196044c15d9d2a113df173eee
-
-OMAP: Make dpll4_m4_ck programmable with clk_set_rate()
-
-Filling the set_rate and round_rate fields of dpll4_m4_ck makes
-this clock programmable through clk_set_rate().  This is needed
-to give omapfb control over the dss1_alwon_fck rate.
-
-Signed-off-by: Mans Rullgard <mans@mansr.com>
----
-
-diff --git a/arch/arm/mach-omap2/clock34xx.h b/arch/arm/mach-omap2/clock34xx.h
-index 41f91f8..9c8e0c8 100644
---- a/arch/arm/mach-omap2/clock34xx.h
-+++ b/arch/arm/mach-omap2/clock34xx.h
-@@ -877,6 +877,8 @@ static struct clk dpll4_m4_ck = {
-                               PARENT_CONTROLS_CLOCK,
-       .clkdm          = { .name = "dpll4_clkdm" },
-       .recalc         = &omap2_clksel_recalc,
-+      .set_rate       = &omap2_clksel_set_rate,
-+      .round_rate     = &omap2_clksel_round_rate,
- };
- /* The PWRDN bit is apparently only available on 3430ES2 and above */
diff --git a/recipes/linux/omap3-pandora-kernel-wifi/mru-make-video-timings-selectable.diff b/recipes/linux/omap3-pandora-kernel-wifi/mru-make-video-timings-selectable.diff
deleted file mode 100755 (executable)
index bba3ef7..0000000
+++ /dev/null
@@ -1,312 +0,0 @@
-From: Mans Rullgard <mans@mansr.com>
-Date: Fri, 29 Aug 2008 01:42:12 +0000 (+0100)
-Subject: OMAP: Make video mode selectable from pre-defined list
-X-Git-Url: http://git.mansr.com/?p=linux-omap;a=commitdiff_plain;h=7a9e55d7156dae6bc930c77620a88a669d2ed1c9
-
-OMAP: Make video mode selectable from pre-defined list
-
-This adds a list of common video modes and allows one to be
-selected with video=omapfb:mode:name on the command line,
-overriding the defaults from lcd_*.c. A default named mode
-can also be specified in the kernel configuration.
-
-Signed-off-by: Mans Rullgard <mans@mansr.com>
----
-
-diff --git a/drivers/video/omap/Kconfig b/drivers/video/omap/Kconfig
-index 5ebd591..9977e80 100644
---- a/drivers/video/omap/Kconfig
-+++ b/drivers/video/omap/Kconfig
-@@ -7,26 +7,13 @@ config FB_OMAP
-       help
-           Frame buffer driver for OMAP based boards.
--choice
--      depends on FB_OMAP && MACH_OVERO
--      prompt "Screen resolution"
--      default FB_OMAP_079M3R
-+config FB_OMAP_VIDEO_MODE
-+      string "Default video mode"
-+      depends on FB_OMAP
-       help
--        Selected desired screen resolution
--
--config FB_OMAP_031M3R
--      boolean "640 x 480 @ 60 Hz Reduced blanking"
--
--config FB_OMAP_048M3R
--      boolean "800 x 600 @ 60 Hz Reduced blanking"
--
--config FB_OMAP_079M3R
--      boolean "1024 x 768 @ 60 Hz Reduced blanking"
--
--config FB_OMAP_092M9R
--      boolean "1280 x 720 @ 60 Hz Reduced blanking"
--
--endchoice
-+        Enter video mode name to use if none is specified on the kernel
-+        command line. If left blank, board-specific default timings
-+        will be used. See omapfb_main.c for a list of valid mode names.
- config FB_OMAP_LCDC_EXTERNAL
-       bool "External LCD controller support"
-diff --git a/drivers/video/omap/omapfb_main.c b/drivers/video/omap/omapfb_main.c
-index e9ffb92..c4c4049 100644
---- a/drivers/video/omap/omapfb_main.c
-+++ b/drivers/video/omap/omapfb_main.c
-@@ -36,6 +36,20 @@
- #define MODULE_NAME   "omapfb"
-+struct video_mode {
-+      const char      *name;
-+      int             x_res, y_res;
-+      int             pixel_clock;    /* In kHz */
-+      int             hsw;            /* Horizontal synchronization
-+                                         pulse width */
-+      int             hfp;            /* Horizontal front porch */
-+      int             hbp;            /* Horizontal back porch */
-+      int             vsw;            /* Vertical synchronization
-+                                         pulse width */
-+      int             vfp;            /* Vertical front porch */
-+      int             vbp;            /* Vertical back porch */
-+};
-+
- static unsigned int   def_accel;
- static unsigned long  def_vram[OMAPFB_PLANE_NUM];
- static unsigned int   def_vram_cnt;
-@@ -43,6 +57,7 @@ static unsigned long def_vxres;
- static unsigned long  def_vyres;
- static unsigned int   def_rotate;
- static unsigned int   def_mirror;
-+static char           def_mode[16] = CONFIG_FB_OMAP_VIDEO_MODE;
- #ifdef CONFIG_FB_OMAP_MANUAL_UPDATE
- static int            manual_update = 1;
-@@ -53,6 +68,7 @@ static int           manual_update;
- static struct platform_device *fbdev_pdev;
- static struct lcd_panel               *fbdev_panel;
- static struct omapfb_device   *omapfb_dev;
-+static struct video_mode      video_mode;
- struct caps_table_struct {
-       unsigned long flag;
-@@ -83,6 +99,152 @@ static struct caps_table_struct color_caps[] = {
-       { 1 << OMAPFB_COLOR_YUY422,     "YUY422", },
- };
-+static struct video_mode video_modes[] __initdata = {
-+      {
-+              /* 640 x 480 @ 60 Hz  Reduced blanking VESA CVT 0.31M3-R */
-+              .name           = "640x480@60",
-+              .x_res          = 640,
-+              .y_res          = 480,
-+              .hfp            = 48,
-+              .hsw            = 32,
-+              .hbp            = 80,
-+              .vfp            = 3,
-+              .vsw            = 4,
-+              .vbp            = 7,
-+              .pixel_clock    = 23500,
-+      },
-+      {
-+              /* 800 x 600 @ 60 Hz  Reduced blanking VESA CVT 0.48M3-R */
-+              .name           = "800x600@60",
-+              .x_res          = 800,
-+              .y_res          = 600,
-+              .hfp            = 48,
-+              .hsw            = 32,
-+              .hbp            = 80,
-+              .vfp            = 3,
-+              .vsw            = 4,
-+              .vbp            = 11,
-+              .pixel_clock    = 35500,
-+      },
-+      {
-+              /* 1024 x 768 @ 60 Hz  Reduced blanking VESA CVT 0.79M3-R */
-+              .name           = "1024x768@60",
-+              .x_res          = 1024,
-+              .y_res          = 768,
-+              .hfp            = 48,
-+              .hsw            = 32,
-+              .hbp            = 80,
-+              .vfp            = 3,
-+              .vsw            = 4,
-+              .vbp            = 15,
-+              .pixel_clock    = 56000,
-+      },
-+      {
-+              /* 1280 x 720 @ 60 Hz  Reduced blanking VESA CVT 0.92M9-R */
-+              .name           = "1280x720@60",
-+              .x_res          = 1280,
-+              .y_res          = 720,
-+              .hfp            = 48,
-+              .hsw            = 32,
-+              .hbp            = 80,
-+              .vfp            = 3,
-+              .vsw            = 5,
-+              .vbp            = 13,
-+              .pixel_clock    = 64000,
-+      },
-+      {
-+              /* 720 x 480 @ 60 Hz  CEA-861 Format 3 */
-+              .name           = "480p60",
-+              .x_res          = 720,
-+              .y_res          = 480,
-+              .hfp            = 16,
-+              .hsw            = 62,
-+              .hbp            = 60,
-+              .vfp            = 9,
-+              .vsw            = 6,
-+              .vbp            = 30,
-+              .pixel_clock    = 27027,
-+      },
-+      {
-+              /* 720 x 576 @ 60 Hz  CEA-861 Format 18 */
-+              .name           = "576p50",
-+              .x_res          = 720,
-+              .y_res          = 576,
-+              .hfp            = 12,
-+              .hsw            = 64,
-+              .hbp            = 68,
-+              .vfp            = 5,
-+              .vsw            = 5,
-+              .vbp            = 39,
-+              .pixel_clock    = 27000,
-+      },
-+      {
-+              /* 1280 x 720 @ 50 Hz  CEA-861B Format 19 */
-+              .name           = "720p50",
-+              .x_res          = 1280,
-+              .y_res          = 720,
-+              .hfp            = 440,
-+              .hsw            = 40,
-+              .hbp            = 220,
-+              .vfp            = 20,
-+              .vsw            = 5,
-+              .vbp            = 5,
-+              .pixel_clock    = 74250,
-+      },
-+      {
-+              /* 1280 x 720 @ 60 Hz  CEA-861B Format 4 */
-+              .name           = "720p60",
-+              .x_res          = 1280,
-+              .y_res          = 720,
-+              .hfp            = 110,
-+              .hsw            = 40,
-+              .hbp            = 220,
-+              .vfp            = 20,
-+              .vsw            = 5,
-+              .vbp            = 5,
-+              .pixel_clock    = 74250,
-+      },
-+      {
-+              /* 1920 x 1080 @ 24 Hz  CEA-861B Format 32 */
-+              .name           = "1080p24",
-+              .x_res          = 1920,
-+              .y_res          = 1080,
-+              .hfp            = 148,
-+              .hsw            = 44,
-+              .hbp            = 638,
-+              .vfp            = 36,
-+              .vsw            = 5,
-+              .vbp            = 4,
-+              .pixel_clock    = 74250,
-+      },
-+      {
-+              /* 1920 x 1080 @ 25 Hz  CEA-861B Format 33 */
-+              .name           = "1080p25",
-+              .x_res          = 1920,
-+              .y_res          = 1080,
-+              .hfp            = 148,
-+              .hsw            = 44,
-+              .hbp            = 528,
-+              .vfp            = 36,
-+              .vsw            = 5,
-+              .vbp            = 4,
-+              .pixel_clock    = 74250,
-+      },
-+      {
-+              /* 1920 x 1080 @ 30 Hz  CEA-861B Format 34 */
-+              .name           = "1080p30",
-+              .x_res          = 1920,
-+              .y_res          = 1080,
-+              .hfp            = 148,
-+              .hsw            = 44,
-+              .hbp            = 88,
-+              .vfp            = 36,
-+              .vsw            = 5,
-+              .vbp            = 4,
-+              .pixel_clock    = 74250,
-+      },
-+};
-+
- /*
-  * ---------------------------------------------------------------------------
-  * LCD panel
-@@ -1714,6 +1876,20 @@ static int omapfb_do_probe(struct platform_device *pdev,
-               goto cleanup;
-       }
-+      if (video_mode.name) {
-+              pr_info("omapfb: using mode %s\n", video_mode.name);
-+
-+              fbdev->panel->x_res     = video_mode.x_res;
-+              fbdev->panel->y_res     = video_mode.y_res;
-+              fbdev->panel->pixel_clock = video_mode.pixel_clock;
-+              fbdev->panel->hsw       = video_mode.hsw;
-+              fbdev->panel->hfp       = video_mode.hfp;
-+              fbdev->panel->hbp       = video_mode.hbp;
-+              fbdev->panel->vsw       = video_mode.vsw;
-+              fbdev->panel->vfp       = video_mode.vfp;
-+              fbdev->panel->vbp       = video_mode.vbp;
-+      }
-+
-       r = fbdev->panel->init(fbdev->panel, fbdev);
-       if (r)
-               goto cleanup;
-@@ -1870,6 +2046,17 @@ static struct platform_driver omapfb_driver = {
-       },
- };
-+static void __init omapfb_find_mode(char *name, struct video_mode *vmode)
-+{
-+      int i;
-+
-+      for (i = 0; i < sizeof(video_modes)/sizeof(video_modes[0]); i++)
-+              if (!strcmp(name, video_modes[i].name)) {
-+                      *vmode = video_modes[i];
-+                      break;
-+              }
-+}
-+
- #ifndef MODULE
- /* Process kernel command line parameters */
-@@ -1918,6 +2105,8 @@ static int __init omapfb_setup(char *options)
-                       def_mirror = (simple_strtoul(this_opt + 7, NULL, 0));
-               else if (!strncmp(this_opt, "manual_update", 13))
-                       manual_update = 1;
-+              else if (!strncmp(this_opt, "mode:", 5))
-+                      strncpy(def_mode, this_opt + 5, sizeof(def_mode));
-               else {
-                       pr_debug("omapfb: invalid option\n");
-                       r = -1;
-@@ -1939,6 +2128,9 @@ static int __init omapfb_init(void)
-               return -ENODEV;
-       omapfb_setup(option);
- #endif
-+
-+      omapfb_find_mode(def_mode, &video_mode);
-+
-       /* Register the driver with LDM */
-       if (platform_driver_register(&omapfb_driver)) {
-               pr_debug("failed to register omapfb driver\n");
-@@ -1960,6 +2152,7 @@ module_param_named(vyres, def_vyres, long, 0664);
- module_param_named(rotate, def_rotate, uint, 0664);
- module_param_named(mirror, def_mirror, uint, 0664);
- module_param_named(manual_update, manual_update, bool, 0664);
-+module_param_string(video_mode, def_mode, sizeof(def_mode), 0664);
- module_init(omapfb_init);
- module_exit(omapfb_cleanup);
diff --git a/recipes/linux/omap3-pandora-kernel-wifi/musb-dma-iso-in.eml b/recipes/linux/omap3-pandora-kernel-wifi/musb-dma-iso-in.eml
deleted file mode 100755 (executable)
index 56fc827..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-Fixes blurred capture images in dma mode. Isochronous error field in
-urb and source data buffer pointer were not updated properly in dma
-mode.
-
-Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
----
-diff --git a/drivers/usb/musb/musb_host.c b/drivers/usb/musb/musb_host.c
-index 08e421f..a481d54 100644
---- a/drivers/usb/musb/musb_host.c
-+++ b/drivers/usb/musb/musb_host.c
-@@ -1505,10 +1505,29 @@ void musb_host_rx(struct musb *musb, u8 epnum)
-               musb_writew(hw_ep->regs, MUSB_RXCSR, val);
- #ifdef CONFIG_USB_INVENTRA_DMA
-+              if (usb_pipeisoc(pipe)) {
-+                      struct usb_iso_packet_descriptor *d;
-+
-+                      d = urb->iso_frame_desc + qh->iso_idx;
-+                      d->actual_length = xfer_len;
-+
-+                      /* even if there was an error, we did the dma
-+                       * for iso_frame_desc->length
-+                       */
-+                      if (d->status != EILSEQ && d->status != -EOVERFLOW)
-+                              d->status = 0;
-+
-+                      if (++qh->iso_idx >= urb->number_of_packets)
-+                              done = true;
-+                      else
-+                              done = false;
-+
-+              } else  {
-               /* done if urb buffer is full or short packet is recd */
-               done = (urb->actual_length + xfer_len >=
-                               urb->transfer_buffer_length
-                       || dma->actual_len < qh->maxpacket);
-+              }
-               /* send IN token for next packet, without AUTOREQ */
-               if (!done) {
-@@ -1545,7 +1564,8 @@ void musb_host_rx(struct musb *musb, u8 epnum)
-               if (dma) {
-                       struct dma_controller   *c;
-                       u16                     rx_count;
--                      int                     ret;
-+                      int                     ret, length;
-+                      dma_addr_t              buf;
-                       rx_count = musb_readw(epio, MUSB_RXCOUNT);
-@@ -1558,6 +1578,35 @@ void musb_host_rx(struct musb *musb, u8 epnum)
-                       c = musb->dma_controller;
-+                      if (usb_pipeisoc(pipe)) {
-+                              int status = 0;
-+                              struct usb_iso_packet_descriptor *d;
-+
-+                              d = urb->iso_frame_desc + qh->iso_idx;
-+
-+                              if (iso_err) {
-+                                      status = -EILSEQ;
-+                                      urb->error_count++;
-+                              }
-+                              if (rx_count > d->length) {
-+                                      if (status == 0) {
-+                                              status = -EOVERFLOW;
-+                                              urb->error_count++;
-+                                      }
-+                                      DBG(2, "** OVERFLOW %d into %d\n",\
-+                                          rx_count, d->length);
-+
-+                                      length = d->length;
-+                              } else
-+                                      length = rx_count;
-+                              d->status = status;
-+                              buf = urb->transfer_dma + d->offset;
-+                      } else {
-+                              length = rx_count;
-+                              buf = urb->transfer_dma +
-+                                              urb->actual_length;
-+                      }
-+
-                       dma->desired_mode = 0;
- #ifdef USE_MODE1
-                       /* because of the issue below, mode 1 will
-@@ -1569,6 +1618,12 @@ void musb_host_rx(struct musb *musb, u8 epnum)
-                                               urb->actual_length)
-                                       > qh->maxpacket)
-                               dma->desired_mode = 1;
-+                      if (rx_count < hw_ep->max_packet_sz_rx) {
-+                              length = rx_count;
-+                              dma->bDesiredMode = 0;
-+                      } else {
-+                              length = urb->transfer_buffer_length;
-+                      }
- #endif
- /* Disadvantage of using mode 1:
-@@ -1606,12 +1661,7 @@ void musb_host_rx(struct musb *musb, u8 epnum)
-                        */
-                       ret = c->channel_program(
-                               dma, qh->maxpacket,
--                              dma->desired_mode,
--                              urb->transfer_dma
--                                      + urb->actual_length,
--                              (dma->desired_mode == 0)
--                                      ? rx_count
--                                      : urb->transfer_buffer_length);
-+                              dma->desired_mode, buf, length);
-                       if (!ret) {
-                               c->channel_release(dma);
-@@ -1628,19 +1678,6 @@ void musb_host_rx(struct musb *musb, u8 epnum)
-               }
-       }
--      if (dma && usb_pipeisoc(pipe)) {
--              struct usb_iso_packet_descriptor        *d;
--              int                                     iso_stat = status;
--
--              d = urb->iso_frame_desc + qh->iso_idx;
--              d->actual_length += xfer_len;
--              if (iso_err) {
--                      iso_stat = -EILSEQ;
--                      urb->error_count++;
--              }
--              d->status = iso_stat;
--      }
--
- finish:
-       urb->actual_length += xfer_len;
-       qh->offset += xfer_len;
---
-To unsubscribe from this list: send the line "unsubscribe linux-omap" in
-the body of a message to majordomo@vger.kernel.org
-More majordomo info at  http://vger.kernel.org/majordomo-info.html
-
diff --git a/recipes/linux/omap3-pandora-kernel-wifi/musb-fix-ISO-in-unlink.diff b/recipes/linux/omap3-pandora-kernel-wifi/musb-fix-ISO-in-unlink.diff
deleted file mode 100755 (executable)
index c93a5b0..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-From: Ajay Kumar Gupta <ajay.gupta@ti.com>
-To: linux-omap@vger.kernel.org
-Cc: linux-usb@vger.kernel.org, felipe.balbi@nokia.com,
-        stern@rowland.harvard.edu, Ajay Kumar Gupta <ajay.gupta@ti.com>
-Subject: [PATCH v3] OMAP:MUSB: Corrects urb unlink function path
-Date:  Mon, 25 Aug 2008 10:52:16 +0530
-
-Fixes kernel panic while ISO IN transfer is aborted.Replaced
-usb_hcd_unlink_urb_from_ep() from musb_giveback() to __musb_giveback()
-to make sure urb is unlinked before giveback when __musb_giveback() is
-called from musb_urb_dequeue().
-
-Acquired musb->lock() before usb_hcd_unlink_urb_from_ep() within in 
-enqueue path.
-
-Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
----
- drivers/usb/musb/musb_host.c |    7 +++++--
- 1 files changed, 5 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/usb/musb/musb_host.c b/drivers/usb/musb/musb_host.c
-index 08e421f..4279311 100644
---- a/drivers/usb/musb/musb_host.c
-+++ b/drivers/usb/musb/musb_host.c
-@@ -291,6 +291,7 @@ __acquires(musb->lock)
-                       urb->actual_length, urb->transfer_buffer_length
-                       );
-+      usb_hcd_unlink_urb_from_ep(musb_to_hcd(musb), urb);
-       spin_unlock(&musb->lock);
-       usb_hcd_giveback_urb(musb_to_hcd(musb), urb, status);
-       spin_lock(&musb->lock);
-@@ -353,8 +354,6 @@ musb_giveback(struct musb_qh *qh, struct urb *urb, int status)
-               break;
-       }
--      usb_hcd_unlink_urb_from_ep(musb_to_hcd(musb), urb);
--
-       qh->is_ready = 0;
-       __musb_giveback(musb, urb, status);
-       qh->is_ready = ready;
-@@ -1787,7 +1786,9 @@ static int musb_urb_enqueue(
-        */
-       qh = kzalloc(sizeof *qh, mem_flags);
-       if (!qh) {
-+              spin_lock_irqsave(&musb->lock, flags);
-               usb_hcd_unlink_urb_from_ep(hcd, urb);
-+              spin_unlock_irqrestore(&musb->lock, flags);
-               return -ENOMEM;
-       }
-@@ -1899,7 +1900,9 @@ static int musb_urb_enqueue(
- done:
-       if (ret != 0) {
-+              spin_lock_irqsave(&musb->lock, flags);
-               usb_hcd_unlink_urb_from_ep(hcd, urb);
-+              spin_unlock_irqrestore(&musb->lock, flags);
-               kfree(qh);
-       }
-       return ret;
--- 
-1.5.6
-
---
-To unsubscribe from this list: send the line "unsubscribe linux-omap" in
-the body of a message to majordomo@vger.kernel.org
-More majordomo info at  http://vger.kernel.org/majordomo-info.html
-
diff --git a/recipes/linux/omap3-pandora-kernel-wifi/musb-fix-dbrownell.patch b/recipes/linux/omap3-pandora-kernel-wifi/musb-fix-dbrownell.patch
deleted file mode 100755 (executable)
index 3526cd3..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-From: David Brownell <dbrownell@users.sourceforge.net>
-
-Minor cleanups to omap 2430/34xx/35x musb_hdrc init:
-
- - num_eps is 16; here, each one is bidirectional
- - use DMA_32BIT_MASK to prevent confusion/errors
- - initialize root port power to reflect 100 mA limit
-
-This still hard-wires some board-specific data, since there
-are no hooks through which different boards can provide the
-right data to the init code.
-
-Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
-
---- a/arch/arm/mach-omap2/usb-musb.c
-+++ b/arch/arm/mach-omap2/usb-musb.c
-@@ -21,12 +21,15 @@
- #include <linux/delay.h>
- #include <linux/platform_device.h>
- #include <linux/clk.h>
-+#include <linux/dma-mapping.h>
-+
- #include <asm/io.h>
--#include <mach/mux.h>
-+
- #include <linux/usb/musb.h>
- #include <mach/hardware.h>
- #include <mach/pm.h>
-+#include <mach/mux.h>
- #include <mach/usb.h>
- #ifdef CONFIG_USB_MUSB_SOC
-@@ -109,7 +112,7 @@ static struct musb_hdrc_config musb_config = {
-       .dyn_fifo       = 1,
-       .soft_con       = 1,
-       .dma            = 1,
--      .num_eps        = 32,
-+      .num_eps        = 16,
-       .dma_channels   = 7,
-       .dma_req_chan   = (1 << 0) | (1 << 1) | (1 << 2) | (1 << 3),
-       .ram_bits       = 12,
-@@ -129,16 +132,22 @@ static struct musb_hdrc_platform_data musb_plat = {
-                       : "usbhs_ick",
-       .set_clock      = musb_set_clock,
-       .config         = &musb_config,
-+
-+      /* REVISIT charge pump on TWL4030 can supply up to
-+       * 100 mA ... but this value is board-specific, like
-+       * "mode", and should be passed to usb_musb_init().
-+       */
-+      .power          = 50,                   /* up to 100 mA */
- };
--static u64 musb_dmamask = ~(u32)0;
-+static u64 musb_dmamask = DMA_32BIT_MASK;
- static struct platform_device musb_device = {
-       .name           = "musb_hdrc",
-       .id             = -1,
-       .dev = {
-               .dma_mask               = &musb_dmamask,
--              .coherent_dma_mask      = 0xffffffff,
-+              .coherent_dma_mask      = DMA_32BIT_MASK,
-               .platform_data          = &musb_plat,
-       },
-       .num_resources  = ARRAY_SIZE(musb_resources),
---
-To unsubscribe from this list: send the line "unsubscribe linux-omap" in
-the body of a message to majordomo@vger.kernel.org
-More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff --git a/recipes/linux/omap3-pandora-kernel-wifi/musb-fix-endpoints.diff b/recipes/linux/omap3-pandora-kernel-wifi/musb-fix-endpoints.diff
deleted file mode 100755 (executable)
index 5d1201f..0000000
+++ /dev/null
@@ -1,197 +0,0 @@
-From: Ajay Kumar Gupta <ajay.gupta@ti.com>
-To: linux-usb@vger.kernel.org
-Cc: linux-omap@vger.kernel.org, david-b@pacbell.net, me@felipebalbi.com,
-        Ajay Kumar Gupta <ajay.gupta@ti.com>
-Subject: [PATCH] MUSB: BULK request on different available endpoints
-Date:  Tue,  7 Oct 2008 11:12:24 +0530
-
-Fixes co-working issue of usb serial device with usb/net devices while
-oter endpoints are free and can be used.This patch implements the policy
-that if endpoint resources are available then different BULK request goes
-to different endpoint otherwise they are multiplexed to one reserved
-endpoint as currently done.
-
-NAK limit scheme has to be added for multiplexed BULK request scenario
-to avoid endpoint starvation due to usb/net devices.
-
-musb->periodic[] flag setting is also updated.It use to set this flag for
-an endpoint even when only rx or tx is used.Now flag setting is done on
-rx/tx basis of an endpoint.
-
-Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
----
- drivers/usb/musb/musb_host.c |   94 ++++++++++++++++++++++++------------------
- drivers/usb/musb/musb_host.h |    1 +
- 2 files changed, 55 insertions(+), 40 deletions(-)
---- /tmp/musb_host.c   2008-10-07 10:10:49.000000000 +0200
-+++ git/drivers/usb/musb/musb_host.c   2008-10-07 10:13:59.000000000 +0200
-@@ -378,27 +378,32 @@
-               switch (qh->type) {
-+              case USB_ENDPOINT_XFER_CONTROL:
-+              case USB_ENDPOINT_XFER_BULK:
-+                      /* fifo policy for these lists, except that NAKing
-+                       * should rotate a qh to the end (for fairness).
-+                       */
-+                      if (qh->mux == 1) {
-+                              head = qh->ring.prev;
-+                              list_del(&qh->ring);
-+                              kfree(qh);
-+                              qh = first_qh(head);
-+                              break;
-+                      }
-               case USB_ENDPOINT_XFER_ISOC:
-               case USB_ENDPOINT_XFER_INT:
-                       /* this is where periodic bandwidth should be
-                        * de-allocated if it's tracked and allocated;
-                        * and where we'd update the schedule tree...
-                        */
--                      musb->periodic[ep->epnum] = NULL;
-+                      if (is_in)
-+                              musb->periodic[2 * ep->epnum - 2] = NULL;
-+                      else
-+                              musb->periodic[2 * ep->epnum - 1] = NULL;
-                       kfree(qh);
-                       qh = NULL;
-                       break;
--              case USB_ENDPOINT_XFER_CONTROL:
--              case USB_ENDPOINT_XFER_BULK:
--                      /* fifo policy for these lists, except that NAKing
--                       * should rotate a qh to the end (for fairness).
--                       */
--                      head = qh->ring.prev;
--                      list_del(&qh->ring);
--                      kfree(qh);
--                      qh = first_qh(head);
--                      break;
-               }
-       }
-       return qh;
-@@ -1728,22 +1733,9 @@
-       u16                     maxpacket;
-       /* use fixed hardware for control and bulk */
--      switch (qh->type) {
--      case USB_ENDPOINT_XFER_CONTROL:
-+      if (qh->type == USB_ENDPOINT_XFER_CONTROL) {
-               head = &musb->control;
-               hw_ep = musb->control_ep;
--              break;
--      case USB_ENDPOINT_XFER_BULK:
--              hw_ep = musb->bulk_ep;
--              if (is_in)
--                      head = &musb->in_bulk;
--              else
--                      head = &musb->out_bulk;
--              break;
--      }
--      if (head) {
--              idle = list_empty(head);
--              list_add_tail(&qh->ring, head);
-               goto success;
-       }
-@@ -1778,7 +1770,8 @@
-       for (epnum = 1; epnum < musb->nr_endpoints; epnum++) {
-               int     diff;
--              if (musb->periodic[epnum])
-+              if ((is_in && musb->periodic[2 * epnum - 2]) ||
-+                      (!is_in && musb->periodic[2 * epnum - 1]))
-                       continue;
-               hw_ep = &musb->endpoints[epnum];
-               if (hw_ep == musb->bulk_ep)
-@@ -1789,19 +1782,36 @@
-               else
-                       diff = hw_ep->max_packet_sz_tx - maxpacket;
--              if (diff > 0 && best_diff > diff) {
-+              if (diff >= 0 && best_diff > diff) {
-                       best_diff = diff;
-                       best_end = epnum;
-               }
-       }
--      if (best_end < 0)
-+      /* use bulk reserved ep1 if no other ep is free*/
-+      if (best_end < 0 && qh->type == USB_ENDPOINT_XFER_BULK) {
-+              hw_ep = musb->bulk_ep;
-+              if (is_in)
-+                      head = &musb->in_bulk;
-+              else
-+                      head = &musb->out_bulk;
-+              goto success;
-+      } else if (best_end < 0)
-               return -ENOSPC;
-       idle = 1;
-+      qh->mux = 0;
-       hw_ep = musb->endpoints + best_end;
--      musb->periodic[best_end] = qh;
--      DBG(4, "qh %p periodic slot %d\n", qh, best_end);
-+      if (is_in)
-+              musb->periodic[2 * best_end - 2] = qh;
-+      else
-+              musb->periodic[2 * best_end - 1] = qh;
-+      DBG(4, "qh %p periodic slot %d%s\n", qh, best_end, is_in ? "Rx" : "Tx");
- success:
-+      if (head) {
-+              idle = list_empty(head);
-+              list_add_tail(&qh->ring, head);
-+              qh->mux = 1;
-+      }
-       qh->hw_ep = hw_ep;
-       qh->hep->hcpriv = qh;
-       if (idle)
-@@ -2065,11 +2075,13 @@
-                       sched = &musb->control;
-                       break;
-               case USB_ENDPOINT_XFER_BULK:
--                      if (usb_pipein(urb->pipe))
--                              sched = &musb->in_bulk;
--                      else
--                              sched = &musb->out_bulk;
--                      break;
-+                      if (qh->mux == 1) {
-+                              if (usb_pipein(urb->pipe))
-+                                      sched = &musb->in_bulk;
-+                              else
-+                                      sched = &musb->out_bulk;
-+                              break;
-+                      }
-               default:
-                       /* REVISIT when we get a schedule tree, periodic
-                        * transfers won't always be at the head of a
-@@ -2131,11 +2143,13 @@
-               sched = &musb->control;
-               break;
-       case USB_ENDPOINT_XFER_BULK:
--              if (is_in)
--                      sched = &musb->in_bulk;
--              else
--                      sched = &musb->out_bulk;
--              break;
-+              if (qh->mux == 1) {
-+                      if (is_in)
-+                              sched = &musb->in_bulk;
-+                      else
-+                              sched = &musb->out_bulk;
-+                      break;
-+              }
-       case USB_ENDPOINT_XFER_ISOC:
-       case USB_ENDPOINT_XFER_INT:
-               for (i = 0; i < musb->nr_endpoints; i++) {
---- /tmp/musb_host.h   2008-10-07 08:59:38.000000000 +0200
-+++ git/drivers/usb/musb/musb_host.h   2008-10-07 10:10:54.000000000 +0200
-@@ -53,7 +53,8 @@
-       struct list_head        ring;           /* of musb_qh */
-       /* struct musb_qh               *next; */       /* for periodic tree */
--
-+      u8          mux;        /* qh multiplexed to hw_ep */
-+      
-       unsigned                offset;         /* in urb->transfer_buffer */
-       unsigned                segsize;        /* current xfer fragment */
diff --git a/recipes/linux/omap3-pandora-kernel-wifi/musb-fix-multiple-bulk-transfers.diff b/recipes/linux/omap3-pandora-kernel-wifi/musb-fix-multiple-bulk-transfers.diff
deleted file mode 100755 (executable)
index 7435a2e..0000000
+++ /dev/null
@@ -1,194 +0,0 @@
-From: Ajay Kumar Gupta <ajay.gupta@ti.com>
-To: linux-usb@vger.kernel.org
-Cc: linux-omap@vger.kernel.org, felipe.balbi@nokia.com,
-Subject: [PATCH] MUSB: Fix for kernel panic with multiple bulk transfer
-Date:  Wed,  1 Oct 2008 13:08:56 +0530
-
-Fixes kernel panic when multiple copy is performed among more than two mass
-storage media and transfer is aborted.musb_advance_schedule(),
-musb_urb_dequeue(),musb_cleanup_urb() and musb_h_disable() functions have
-been modified to correct urb handling associated with bulk and control
-endpoints which are multiplexed on one hardware endpoint.
-
-musb_advance_schedule() has been removed from musb_cleanup_urb() and added
-to musb_urb_dequeue(). musb_h_disable() has been modified to take care of
-multiple qh on same hw_ep scenario.
-
-Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
-CC: Romit Dasgupta <romit@ti.com> 
----
-Suggestions welcome to move while loop doing kfree(qh) from 
-musb_advance_schedule() and musb_h_disable() to musb_giveback().
-
- drivers/usb/musb/musb_host.c |  105 ++++++++++++++++++++++++++++++-----------
- 1 files changed, 77 insertions(+), 28 deletions(-)
-
-diff --git a/drivers/usb/musb/musb_host.c b/drivers/usb/musb/musb_host.c
-index 8b4be01..c2474de 100644
---- a/drivers/usb/musb/musb_host.c
-+++ b/drivers/usb/musb/musb_host.c
-@@ -427,8 +427,17 @@ musb_advance_schedule(struct musb *musb, struct urb *urb,
-               qh = musb_giveback(qh, urb, 0);
-       else
-               qh = musb_giveback(qh, urb, urb->status);
-+      while (qh && qh->is_ready && list_empty(&qh->hep->urb_list)) {
-+              struct list_head *head;
-+              head = qh->ring.prev;
-+              list_del(&qh->ring);
-+              qh->hep->hcpriv = NULL;
-+              kfree(qh);
-+              qh = first_qh(head);
-+      }
--      if (qh && qh->is_ready && !list_empty(&qh->hep->urb_list)) {
-+
-+      if (qh && qh->is_ready) {
-               DBG(4, "... next ep%d %cX urb %p\n",
-                               hw_ep->epnum, is_in ? 'R' : 'T',
-                               next_urb(qh));
-@@ -1964,8 +1973,6 @@ static int musb_cleanup_urb(struct urb *urb, struct musb_qh *qh, int is_in)
-               /* flush cpu writebuffer */
-               csr = musb_readw(epio, MUSB_TXCSR);
-       }
--      if (status == 0)
--              musb_advance_schedule(ep->musb, urb, ep, is_in);
-       return status;
- }
-@@ -2026,13 +2033,24 @@ static int musb_urb_dequeue(struct usb_hcd *hcd, struct urb *urb, int status)
-       /* NOTE:  qh is invalid unless !list_empty(&hep->urb_list) */
-       if (ret < 0 || (sched && qh != first_qh(sched))) {
-               int     ready = qh->is_ready;
--
-+              int     type = urb->pipe;
-               ret = 0;
-               qh->is_ready = 0;
-               __musb_giveback(musb, urb, 0);
--              qh->is_ready = ready;
--      } else
-+
-+              if (list_empty(&qh->hep->urb_list) && list_empty(&qh->ring))
-+                      list_del(&qh->ring);
-+              else
-+                      qh->is_ready = ready;
-+              if (usb_pipeisoc(type))
-+                      musb->periodic[qh->hw_ep->epnum] = NULL;
-+      } else {
-               ret = musb_cleanup_urb(urb, qh, urb->pipe & USB_DIR_IN);
-+              if (!ret) {
-+                      musb_advance_schedule(qh->hw_ep->musb, urb, qh->hw_ep,
-+                                      urb->pipe & USB_DIR_IN);
-+              }
-+      }
- done:
-       spin_unlock_irqrestore(&musb->lock, flags);
-       return ret;
-@@ -2046,14 +2064,17 @@ musb_h_disable(struct usb_hcd *hcd, struct usb_host_endpoint *hep)
-       unsigned long           flags;
-       struct musb             *musb = hcd_to_musb(hcd);
-       u8                      is_in = epnum & USB_DIR_IN;
--      struct musb_qh          *qh = hep->hcpriv;
-+      struct musb_qh          *qh, *qh_for_curr_urb;
-       struct urb              *urb, *tmp;
-       struct list_head        *sched;
--
--      if (!qh)
--              return;
-+      int                     i;
-       spin_lock_irqsave(&musb->lock, flags);
-+      qh = hep->hcpriv;
-+      if (!qh) {
-+              spin_unlock_irqrestore(&musb->lock, flags);
-+              return;
-+      }
-       switch (qh->type) {
-       case USB_ENDPOINT_XFER_CONTROL:
-@@ -2065,6 +2086,13 @@ musb_h_disable(struct usb_hcd *hcd, struct usb_host_endpoint *hep)
-               else
-                       sched = &musb->out_bulk;
-               break;
-+      case USB_ENDPOINT_XFER_ISOC:
-+      case USB_ENDPOINT_XFER_INT:
-+              for (i = 0; i < musb->nr_endpoints; i++) {
-+                      if (musb->periodic[i] == qh)
-+                              sched = &qh->ring;
-+                      break;
-+              }
-       default:
-               /* REVISIT when we get a schedule tree, periodic transfers
-                * won't always be at the head of a singleton queue...
-@@ -2073,26 +2101,47 @@ musb_h_disable(struct usb_hcd *hcd, struct usb_host_endpoint *hep)
-               break;
-       }
--      /* NOTE:  qh is invalid unless !list_empty(&hep->urb_list) */
--
-       /* kick first urb off the hardware, if needed */
--      qh->is_ready = 0;
--      if (!sched || qh == first_qh(sched)) {
-+      if (sched) {
-+              qh_for_curr_urb = qh;
-               urb = next_urb(qh);
--
--              /* make software (then hardware) stop ASAP */
--              if (!urb->unlinked)
--                      urb->status = -ESHUTDOWN;
--
--              /* cleanup */
--              musb_cleanup_urb(urb, qh, urb->pipe & USB_DIR_IN);
--      } else
--              urb = NULL;
--
--      /* then just nuke all the others */
--      list_for_each_entry_safe_from(urb, tmp, &hep->urb_list, urb_list)
--              musb_giveback(qh, urb, -ESHUTDOWN);
--
-+              if (urb) {
-+                      /* make software (then hardware) stop ASAP */
-+                      if (!urb->unlinked)
-+                              urb->status = -ESHUTDOWN;
-+                      /* cleanup first urb of first qh; */
-+                      if (qh == first_qh(sched)) {
-+                              musb_cleanup_urb(urb, qh,
-+                                      urb->pipe & USB_DIR_IN);
-+                      }
-+                      qh = musb_giveback(qh, urb, -ESHUTDOWN);
-+                      if (qh == qh_for_curr_urb) {
-+                              list_for_each_entry_safe_from(urb, tmp,
-+                                      &hep->urb_list, urb_list) {
-+                                      qh = musb_giveback(qh, tmp, -ESHUTDOWN);
-+                                      if (qh != qh_for_curr_urb)
-+                                              break;
-+                              }
-+                      }
-+              }
-+              /* pick the next candidate and go */
-+              if (qh && qh->is_ready) {
-+                      while (qh && qh->is_ready &&
-+                              list_empty(&qh->hep->urb_list)) {
-+                                      struct list_head *head;
-+                                      head = qh->ring.prev;
-+                                      list_del(&qh->ring);
-+                                      qh->hep->hcpriv = NULL;
-+                                      kfree(qh);
-+                                      qh = first_qh(head);
-+                      }
-+                      if (qh && qh->is_ready) {
-+                              epnum = qh->hep->desc.bEndpointAddress;
-+                              is_in = epnum & USB_DIR_IN;
-+                              musb_start_urb(musb, is_in, qh);
-+                      }
-+              }
-+      }
-       spin_unlock_irqrestore(&musb->lock, flags);
- }
--- 
-1.5.6
-
---
-To unsubscribe from this list: send the line "unsubscribe linux-omap" in
-the body of a message to majordomo@vger.kernel.org
-More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff --git a/recipes/linux/omap3-pandora-kernel-wifi/musb-mru-otgfix.diff b/recipes/linux/omap3-pandora-kernel-wifi/musb-mru-otgfix.diff
deleted file mode 100755 (executable)
index 767858b..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-From: Mans Rullgard <mans@mansr.com>
-Date: Sat, 6 Sep 2008 15:11:00 +0000 (+0100)
-Subject: usb: musb: fix something
-X-Git-Url: http://git.mansr.com/?p=linux-omap;a=commitdiff_plain;h=1e5bc41773bb981b3a89bd762becf98c72be5e4c
-
-usb: musb: fix something
-
-This makes USB work on the Beagleboard.  I don't know why.
----
-
-diff --git a/drivers/usb/musb/musb_core.c b/drivers/usb/musb/musb_core.c
-index e07cad8..4d6ff26 100644
---- a/drivers/usb/musb/musb_core.c
-+++ b/drivers/usb/musb/musb_core.c
-@@ -1819,6 +1819,9 @@ allocate_instance(struct device *dev, void __iomem *mbase)
-               ep->epnum = epnum;
-       }
-+#ifdef CONFIG_USB_MUSB_OTG
-+      otg_set_transceiver(&musb->xceiv);
-+#endif
-       musb->controller = dev;
-       return musb;
- }
-diff --git a/drivers/usb/musb/omap2430.c b/drivers/usb/musb/omap2430.c
-index 9d2dcb1..51af80b 100644
---- a/drivers/usb/musb/omap2430.c
-+++ b/drivers/usb/musb/omap2430.c
-@@ -215,12 +215,14 @@ void musb_platform_set_mode(struct musb *musb, u8 musb_mode)
- int __init musb_platform_init(struct musb *musb)
- {
-+      struct otg_transceiver *xceiv = otg_get_transceiver();
-       u32 l;
- #if defined(CONFIG_ARCH_OMAP2430)
-       omap_cfg_reg(AE5_2430_USB0HS_STP);
- #endif
-+      musb->xceiv = *xceiv;
-       musb_platform_resume(musb);
-       l = omap_readl(OTG_SYSCONFIG);
diff --git a/recipes/linux/omap3-pandora-kernel-wifi/musb-support-high-bandwidth.patch.eml b/recipes/linux/omap3-pandora-kernel-wifi/musb-support-high-bandwidth.patch.eml
deleted file mode 100755 (executable)
index 0264a97..0000000
+++ /dev/null
@@ -1,134 +0,0 @@
-Enables support for camera (as creative) requiring high bandwidth
-isochronous transfer.
-
-Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
----
- drivers/usb/musb/musb_core.c |   18 +++++++++---------
- drivers/usb/musb/musb_host.c |   32 +++++++++++++++++++++-----------
- 2 files changed, 30 insertions(+), 20 deletions(-)
-
-diff --git a/drivers/usb/musb/musb_core.c b/drivers/usb/musb/musb_core.c
-index c939f81..9914f70 100644
---- a/drivers/usb/musb/musb_core.c
-+++ b/drivers/usb/musb/musb_core.c
-@@ -1063,17 +1063,17 @@ static struct fifo_cfg __initdata mode_4_cfg[] = {
- { .hw_ep_num =  7, .style = FIFO_TX,   .maxpacket = 512, },
- { .hw_ep_num =  7, .style = FIFO_RX,   .maxpacket = 512, },
- { .hw_ep_num =  8, .style = FIFO_TX,   .maxpacket = 512, },
--{ .hw_ep_num =  8, .style = FIFO_RX,   .maxpacket = 512, },
-+{ .hw_ep_num =  8, .style = FIFO_RX,   .maxpacket =  64, },
- { .hw_ep_num =  9, .style = FIFO_TX,   .maxpacket = 512, },
--{ .hw_ep_num =  9, .style = FIFO_RX,   .maxpacket = 512, },
-+{ .hw_ep_num =  9, .style = FIFO_RX,   .maxpacket =  64, },
- { .hw_ep_num = 10, .style = FIFO_TX,   .maxpacket = 512, },
--{ .hw_ep_num = 10, .style = FIFO_RX,   .maxpacket = 512, },
--{ .hw_ep_num = 11, .style = FIFO_TX,   .maxpacket = 512, },
--{ .hw_ep_num = 11, .style = FIFO_RX,   .maxpacket = 512, },
--{ .hw_ep_num = 12, .style = FIFO_TX,   .maxpacket = 512, },
--{ .hw_ep_num = 12, .style = FIFO_RX,   .maxpacket = 512, },
--{ .hw_ep_num = 13, .style = FIFO_TX,   .maxpacket = 512, },
--{ .hw_ep_num = 13, .style = FIFO_RX,   .maxpacket = 512, },
-+{ .hw_ep_num = 10, .style = FIFO_RX,   .maxpacket =  64, },
-+{ .hw_ep_num = 11, .style = FIFO_TX,   .maxpacket = 256, },
-+{ .hw_ep_num = 11, .style = FIFO_RX,   .maxpacket = 256, },
-+{ .hw_ep_num = 12, .style = FIFO_TX,   .maxpacket = 256, },
-+{ .hw_ep_num = 12, .style = FIFO_RX,   .maxpacket = 256, },
-+{ .hw_ep_num = 13, .style = FIFO_TX,   .maxpacket = 256, },
-+{ .hw_ep_num = 13, .style = FIFO_RX,   .maxpacket = 4096, },
- { .hw_ep_num = 14, .style = FIFO_RXTX, .maxpacket = 1024, },
- { .hw_ep_num = 15, .style = FIFO_RXTX, .maxpacket = 1024, },
- };
-diff --git a/drivers/usb/musb/musb_host.c b/drivers/usb/musb/musb_host.c
-index 08e421f..84173df 100644
---- a/drivers/usb/musb/musb_host.c
-+++ b/drivers/usb/musb/musb_host.c
-@@ -1443,6 +1443,10 @@ void musb_host_rx(struct musb *musb, u8 epnum)
-                       /* packet error reported later */
-                       iso_err = true;
-               }
-+      } else if (rx_csr & MUSB_RXCSR_INCOMPRX) {
-+              DBG(3, "end %d Highbandwidth  incomplete ISO packet received\n"
-+                                      , epnum);
-+              status = -EPROTO;
-       }
-       /* faults abort the transfer */
-@@ -1595,7 +1599,13 @@ void musb_host_rx(struct musb *musb, u8 epnum)
-                               val &= ~MUSB_RXCSR_H_AUTOREQ;
-                       else
-                               val |= MUSB_RXCSR_H_AUTOREQ;
--                      val |= MUSB_RXCSR_AUTOCLEAR | MUSB_RXCSR_DMAENAB;
-+
-+                      if (qh->maxpacket & ~0x7ff)
-+                              /* Autoclear doesn't work in high bandwidth iso */
-+                              val |= MUSB_RXCSR_DMAENAB;
-+                      else
-+                              val |= MUSB_RXCSR_AUTOCLEAR
-+                                      | MUSB_RXCSR_DMAENAB;
-                       musb_writew(epio, MUSB_RXCSR,
-                               MUSB_RXCSR_H_WZC_BITS | val);
-@@ -1666,6 +1676,7 @@ static int musb_schedule(
-       int                     best_end, epnum;
-       struct musb_hw_ep       *hw_ep = NULL;
-       struct list_head        *head = NULL;
-+      u16                     maxpacket;
-       /* use fixed hardware for control and bulk */
-       switch (qh->type) {
-@@ -1708,6 +1719,13 @@ static int musb_schedule(
-       best_diff = 4096;
-       best_end = -1;
-+      if (qh->maxpacket & (1<<11))
-+              maxpacket = 2 * (qh->maxpacket & 0x7ff);
-+      else if (qh->maxpacket & (1<<12))
-+              maxpacket = 3 * (qh->maxpacket & 0x7ff);
-+      else
-+              maxpacket = (qh->maxpacket & 0x7ff);
-+
-       for (epnum = 1; epnum < musb->nr_endpoints; epnum++) {
-               int     diff;
-@@ -1718,9 +1736,9 @@ static int musb_schedule(
-                       continue;
-               if (is_in)
--                      diff = hw_ep->max_packet_sz_rx - qh->maxpacket;
-+                      diff = hw_ep->max_packet_sz_rx - maxpacket;
-               else
--                      diff = hw_ep->max_packet_sz_tx - qh->maxpacket;
-+                      diff = hw_ep->max_packet_sz_tx - maxpacket;
-               if (diff > 0 && best_diff > diff) {
-                       best_diff = diff;
-@@ -1797,13 +1815,6 @@ static int musb_urb_enqueue(
-       qh->is_ready = 1;
-       qh->maxpacket = le16_to_cpu(epd->wMaxPacketSize);
--
--      /* no high bandwidth support yet */
--      if (qh->maxpacket & ~0x7ff) {
--              ret = -EMSGSIZE;
--              goto done;
--      }
--
-       qh->epnum = epd->bEndpointAddress & USB_ENDPOINT_NUMBER_MASK;
-       qh->type = epd->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK;
-@@ -1897,7 +1908,6 @@ static int musb_urb_enqueue(
-       }
-       spin_unlock_irqrestore(&musb->lock, flags);
--done:
-       if (ret != 0) {
-               usb_hcd_unlink_urb_from_ep(hcd, urb);
-               kfree(qh);
--- 
-1.5.6
-
---
-To unsubscribe from this list: send the line "unsubscribe linux-omap" in
-the body of a message to majordomo@vger.kernel.org
-More majordomo info at  http://vger.kernel.org/majordomo-info.html
-
diff --git a/recipes/linux/omap3-pandora-kernel-wifi/nand.patch b/recipes/linux/omap3-pandora-kernel-wifi/nand.patch
deleted file mode 100755 (executable)
index 4a6d8e6..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-diff --git a/drivers/mtd/nand/omap2.c b/drivers/mtd/nand/omap2.c index 2ede116..d18a8c9 100644
---- a/drivers/mtd/nand/omap2.c
-+++ b/drivers/mtd/nand/omap2.c
-@@ -196,7 +196,7 @@ static void omap_read_buf16(struct mtd_info *mtd, u_char *buf, int len)  {
-       struct nand_chip *nand = mtd->priv;
-
--      __raw_readsl(nand->IO_ADDR_R, buf, len / 2);
-+      readsw(nand->IO_ADDR_R, buf, len / 2);
- }
-
- /*
\ No newline at end of file
diff --git a/recipes/linux/omap3-pandora-kernel-wifi/no-cortex-deadlock.patch b/recipes/linux/omap3-pandora-kernel-wifi/no-cortex-deadlock.patch
deleted file mode 100755 (executable)
index 78547c8..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-From: Mans Rullgard <mans@mansr.com>
-Date: Sat, 16 Aug 2008 23:03:06 +0000 (+0100)
-Subject: ARM: Workaround for erratum 451034
-X-Git-Url: http://git.mansr.com/?p=linux-omap;a=commitdiff_plain;h=b84fa87873ffb68ad23930cf6cddeea8bec43ede
-
-ARM: Workaround for erratum 451034
-
-On Cortex-A8 r1p0 and r1p1, executing a NEON store with an integer
-store in the store buffer, can cause a processor deadlock under
-certain conditions.
-
-Executing a DMB instruction before saving NEON/VFP registers and before
-return to userspace makes it safe to run code which includes similar
-counter-measures.  Userspace code can still trigger the deadlock, so
-a different workaround is required to safely run untrusted code.
-
-See ARM Cortex-A8 Errata Notice (PR120-PRDC-008070) for full details.
-
-Signed-off-by: Mans Rullgard <mans@mansr.com>
----
-
-diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
-index aa475d9..41d536e 100644
---- a/arch/arm/Kconfig
-+++ b/arch/arm/Kconfig
-@@ -1117,6 +1117,22 @@ config NEON
-         Say Y to include support code for NEON, the ARMv7 Advanced SIMD
-         Extension.
-+config ARM_ERRATUM_451034
-+      bool "Enable workaround for ARM erratum 451034"
-+      depends on VFPv3
-+      help
-+        On Cortex-A8 r1p0 and r1p1, executing a NEON store with an integer
-+        store in the store buffer, can cause a processor deadlock under
-+        certain conditions.
-+
-+        See ARM Cortex-A8 Errata Notice (PR120-PRDC-008070) for full details.
-+
-+        Say Y to include a partial workaround.
-+
-+        WARNING: Even with this option enabled, userspace code can trigger
-+        the deadlock.  To safely run untrusted code, a different fix is
-+        required.
-+
- endmenu
- menu "Userspace binary formats"
-diff --git a/arch/arm/include/asm/vfpmacros.h b/arch/arm/include/asm/vfpmacros.h
-index 422f3cc..934798b 100644
---- a/arch/arm/include/asm/vfpmacros.h
-+++ b/arch/arm/include/asm/vfpmacros.h
-@@ -32,6 +32,9 @@
-       @ write all the working registers out of the VFP
-       .macro  VFPFSTMIA, base, tmp
-+#ifdef CONFIG_ARM_ERRATUM_451034
-+      dmb
-+#endif
- #if __LINUX_ARM_ARCH__ < 6
-       STC     p11, cr0, [\base],#33*4             @ FSTMIAX \base!, {d0-d15}
- #else
-diff --git a/arch/arm/kernel/entry-common.S b/arch/arm/kernel/entry-common.S
-index 060d7e2..9799a35 100644
---- a/arch/arm/kernel/entry-common.S
-+++ b/arch/arm/kernel/entry-common.S
-@@ -69,6 +69,10 @@ no_work_pending:
-       /* perform architecture specific actions before user return */
-       arch_ret_to_user r1, lr
-+#ifdef CONFIG_ARM_ERRATUM_451034
-+      dmb
-+#endif
-+
-       @ slow_restore_user_regs
-       ldr     r1, [sp, #S_PSR]                @ get calling cpsr
-       ldr     lr, [sp, #S_PC]!                @ get pc
diff --git a/recipes/linux/omap3-pandora-kernel-wifi/no-empty-flash-warnings.patch b/recipes/linux/omap3-pandora-kernel-wifi/no-empty-flash-warnings.patch
deleted file mode 100755 (executable)
index ab344b0..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-diff --git a/fs/jffs2/scan.c b/fs/jffs2/scan.c
-index 1d437de..33b3feb 100644
---- a/fs/jffs2/scan.c
-+++ b/fs/jffs2/scan.c
-@@ -647,8 +647,8 @@ scan_more:
-                       inbuf_ofs = ofs - buf_ofs;
-                       while (inbuf_ofs < scan_end) {
-                               if (unlikely(*(uint32_t *)(&buf[inbuf_ofs]) != 0xffffffff)) {
--                                      printk(KERN_WARNING "Empty flash at 0x%08x ends at 0x%08x\n",
--                                             empty_start, ofs);
-+//                                    printk(KERN_WARNING "Empty flash at 0x%08x ends at 0x%08x\n",
-+//                                           empty_start, ofs);
-                                       if ((err = jffs2_scan_dirty_space(c, jeb, ofs-empty_start)))
-                                               return err;
-                                       goto scan_more;
diff --git a/recipes/linux/omap3-pandora-kernel-wifi/no-harry-potter.diff b/recipes/linux/omap3-pandora-kernel-wifi/no-harry-potter.diff
deleted file mode 100755 (executable)
index 2bb20ab..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- /tmp/Makefile      2008-04-24 14:36:20.509598016 +0200
-+++ git/arch/arm/Makefile      2008-04-24 14:36:31.949546584 +0200
-@@ -47,7 +47,7 @@
- # Note that GCC does not numerically define an architecture version
- # macro, but instead defines a whole series of macros which makes
- # testing for a specific architecture or later rather impossible.
--arch-$(CONFIG_CPU_32v7)               :=-D__LINUX_ARM_ARCH__=7 $(call cc-option,-march=armv7a,-march=armv5t -Wa$(comma)-march=armv7a)
-+arch-$(CONFIG_CPU_32v7)               :=-D__LINUX_ARM_ARCH__=7 $(call cc-option,-march=armv7-a,-march=armv5t -Wa$(comma)-march=armv7-a)
- arch-$(CONFIG_CPU_32v6)               :=-D__LINUX_ARM_ARCH__=6 $(call cc-option,-march=armv6,-march=armv5t -Wa$(comma)-march=armv6)
- # Only override the compiler option if ARMv6. The ARMv6K extensions are
- # always available in ARMv7
diff --git a/recipes/linux/omap3-pandora-kernel-wifi/omap-2430-lcd.patch b/recipes/linux/omap3-pandora-kernel-wifi/omap-2430-lcd.patch
deleted file mode 100755 (executable)
index 8f8a687..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- git/drivers/video/omap/lcd_2430sdp.c.orig  2007-08-13 14:35:17.000000000 -0700
-+++ git/drivers/video/omap/lcd_2430sdp.c       2007-08-13 14:35:55.000000000 -0700
-@@ -32,7 +32,7 @@
- #define LCD_PANEL_BACKLIGHT_GPIO      91
- #define LCD_PANEL_ENABLE_GPIO         154
- #define LCD_PIXCLOCK_MAX              5400 /* freq 5.4 MHz */
--#define PM_RECEIVER             TWL4030_MODULE_PM_RECIEVER
-+#define PM_RECEIVER             TWL4030_MODULE_PM_RECEIVER
- #define ENABLE_VAUX2_DEDICATED  0x09
- #define ENABLE_VAUX2_DEV_GRP    0x20
diff --git a/recipes/linux/omap3-pandora-kernel-wifi/oprofile-0.9.3.armv7.diff b/recipes/linux/omap3-pandora-kernel-wifi/oprofile-0.9.3.armv7.diff
deleted file mode 100755 (executable)
index 1eedbb5..0000000
+++ /dev/null
@@ -1,599 +0,0 @@
-Hi,
-
-This patch adds Oprofile support on ARMv7, using the PMNC unit.
-Tested on OMAP3430 SDP.
-
-Feedback and comments are welcome.
-
-The patch to user space components is attached for reference. It i applies 
-against version 0.9.3 of oprofile source 
-(http://prdownloads.sourceforge.net/oprofile/oprofile-0.9.3.tar.gz).
-
-Regards,
-Jean.
-
----
-
-From: Jean Pihet <jpihet@mvista.com>
-Date: Tue, 6 May 2008 17:21:44 +0200
-Subject: [PATCH] ARM: Add ARMv7 oprofile support
-
-Add ARMv7 Oprofile support to kernel
-
-Signed-off-by: Jean Pihet <jpihet@mvista.com>
----
-
-diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
-index c60a27d..60b50a0 100644
---- a/arch/arm/Kconfig
-+++ b/arch/arm/Kconfig
-@@ -161,6 +161,11 @@ config OPROFILE_MPCORE
- config OPROFILE_ARM11_CORE
-       bool
-+config OPROFILE_ARMV7
-+      def_bool y
-+      depends on CPU_V7 && !SMP
-+      bool
-+
- endif
- config VECTORS_BASE
-diff --git a/arch/arm/oprofile/Makefile b/arch/arm/oprofile/Makefile
-index e61d0cc..88e31f5 100644
---- a/arch/arm/oprofile/Makefile
-+++ b/arch/arm/oprofile/Makefile
-@@ -11,3 +11,4 @@ oprofile-$(CONFIG_CPU_XSCALE)                += op_model_xscale.o
- oprofile-$(CONFIG_OPROFILE_ARM11_CORE)        += op_model_arm11_core.o
- oprofile-$(CONFIG_OPROFILE_ARMV6)     += op_model_v6.o
- oprofile-$(CONFIG_OPROFILE_MPCORE)    += op_model_mpcore.o
-+oprofile-$(CONFIG_OPROFILE_ARMV7)     += op_model_v7.o
-diff --git a/arch/arm/oprofile/common.c b/arch/arm/oprofile/common.c
-index 0a5cf3a..3fcd752 100644
---- a/arch/arm/oprofile/common.c
-+++ b/arch/arm/oprofile/common.c
-@@ -145,6 +145,10 @@ int __init oprofile_arch_init(struct oprofile_operations *ops) 
-       spec = &op_mpcore_spec;
- #endif
-+#ifdef CONFIG_OPROFILE_ARMV7
-+      spec = &op_armv7_spec;
-+#endif
-+
-       if (spec) {
-               ret = spec->init();
-               if (ret < 0)
-diff --git a/arch/arm/oprofile/op_arm_model.h 
-b/arch/arm/oprofile/op_arm_model.h
-index 4899c62..8c4e4f6 100644
---- a/arch/arm/oprofile/op_arm_model.h
-+++ b/arch/arm/oprofile/op_arm_model.h
-@@ -26,6 +26,7 @@ extern struct op_arm_model_spec op_xscale_spec;
- extern struct op_arm_model_spec op_armv6_spec;
- extern struct op_arm_model_spec op_mpcore_spec;
-+extern struct op_arm_model_spec op_armv7_spec;
- extern void arm_backtrace(struct pt_regs * const regs, unsigned int depth);
-diff --git a/arch/arm/oprofile/op_model_v7.c b/arch/arm/oprofile/op_model_v7.c
-new file mode 100644
-index 0000000..a159bc1
---- /dev/null
-+++ b/arch/arm/oprofile/op_model_v7.c
-@@ -0,0 +1,407 @@
-+/**
-+ * @file op_model_v7.c
-+ * ARM V7 (Cortex A8) Event Monitor Driver
-+ *
-+ * @remark Copyright 2008 Jean Pihet <jpihet@mvista.com>
-+ * @remark Copyright 2004 ARM SMP Development Team
-+ */
-+#include <linux/types.h>
-+#include <linux/errno.h>
-+#include <linux/oprofile.h>
-+#include <linux/interrupt.h>
-+#include <linux/irq.h>
-+#include <linux/smp.h>
-+
-+#include "op_counter.h"
-+#include "op_arm_model.h"
-+#include "op_model_v7.h"
-+
-+/* #define DEBUG */
-+
-+
-+/*
-+ * ARM V7 PMNC support
-+ */
-+
-+static u32 cnt_en[CNTMAX];
-+
-+static inline void armv7_pmnc_write(u32 val)
-+{
-+      val &= PMNC_MASK;
-+      asm volatile("mcr p15, 0, %0, c9, c12, 0" : : "r" (val));
-+}
-+
-+static inline u32 armv7_pmnc_read(void)
-+{
-+      u32 val;
-+
-+      asm volatile("mrc p15, 0, %0, c9, c12, 0" : "=r" (val));
-+      return val;
-+}
-+
-+static inline u32 armv7_pmnc_enable_counter(unsigned int cnt)
-+{
-+      u32 val;
-+
-+      if (cnt >= CNTMAX) {
-+              printk(KERN_ERR "oprofile: CPU%u enabling wrong PMNC counter"
-+                      " %d\n", smp_processor_id(), cnt);
-+              return -1;
-+      }
-+
-+      if (cnt == CCNT)
-+              val = CNTENS_C;
-+      else
-+              val = (1 << (cnt - CNT0));
-+
-+      val &= CNTENS_MASK;
-+      asm volatile("mcr p15, 0, %0, c9, c12, 1" : : "r" (val));
-+
-+      return cnt;
-+}
-+
-+static inline u32 armv7_pmnc_disable_counter(unsigned int cnt)
-+{
-+      u32 val;
-+
-+      if (cnt >= CNTMAX) {
-+              printk(KERN_ERR "oprofile: CPU%u disabling wrong PMNC counter"
-+                      " %d\n", smp_processor_id(), cnt);
-+              return -1;
-+      }
-+
-+      if (cnt == CCNT)
-+              val = CNTENC_C;
-+      else
-+              val = (1 << (cnt - CNT0));
-+
-+      val &= CNTENC_MASK;
-+      asm volatile("mcr p15, 0, %0, c9, c12, 2" : : "r" (val));
-+
-+      return cnt;
-+}
-+
-+static inline u32 armv7_pmnc_enable_intens(unsigned int cnt)
-+{
-+      u32 val;
-+
-+      if (cnt >= CNTMAX) {
-+              printk(KERN_ERR "oprofile: CPU%u enabling wrong PMNC counter"
-+                      " interrupt enable %d\n", smp_processor_id(), cnt);
-+              return -1;
-+      }
-+
-+      if (cnt == CCNT)
-+              val = INTENS_C;
-+      else
-+              val = (1 << (cnt - CNT0));
-+
-+      val &= INTENS_MASK;
-+      asm volatile("mcr p15, 0, %0, c9, c14, 1" : : "r" (val));
-+
-+      return cnt;
-+}
-+
-+static inline u32 armv7_pmnc_getreset_flags(void)
-+{
-+      u32 val;
-+
-+      /* Read */
-+      asm volatile("mrc p15, 0, %0, c9, c12, 3" : "=r" (val));
-+
-+      /* Write to clear flags */
-+      val &= FLAG_MASK;
-+      asm volatile("mcr p15, 0, %0, c9, c12, 3" : : "r" (val));
-+
-+      return val;
-+}
-+
-+static inline int armv7_pmnc_select_counter(unsigned int cnt)
-+{
-+      u32 val;
-+
-+      if ((cnt == CCNT) || (cnt >= CNTMAX)) {
-+              printk(KERN_ERR "oprofile: CPU%u selecting wrong PMNC counteri"
-+                      " %d\n", smp_processor_id(), cnt);
-+              return -1;
-+      }
-+
-+      val = (cnt - CNT0) & SELECT_MASK;
-+      asm volatile("mcr p15, 0, %0, c9, c12, 5" : : "r" (val));
-+
-+      return cnt;
-+}
-+
-+static inline void armv7_pmnc_write_evtsel(unsigned int cnt, u32 val)
-+{
-+      if (armv7_pmnc_select_counter(cnt) == cnt) {
-+              val &= EVTSEL_MASK;
-+              asm volatile("mcr p15, 0, %0, c9, c13, 1" : : "r" (val));
-+      }
-+}
-+
-+static void armv7_pmnc_reset_counter(unsigned int cnt)
-+{
-+      u32 cpu_cnt = CPU_COUNTER(smp_processor_id(), cnt);
-+      u32 val = -(u32)counter_config[cpu_cnt].count;
-+
-+      switch (cnt) {
-+      case CCNT:
-+              armv7_pmnc_disable_counter(cnt);
-+
-+              asm volatile("mcr p15, 0, %0, c9, c13, 0" : : "r" (val));
-+
-+              if (cnt_en[cnt] != 0)
-+                  armv7_pmnc_enable_counter(cnt);
-+
-+              break;
-+
-+      case CNT0:
-+      case CNT1:
-+      case CNT2:
-+      case CNT3:
-+              armv7_pmnc_disable_counter(cnt);
-+
-+              if (armv7_pmnc_select_counter(cnt) == cnt)
-+                  asm volatile("mcr p15, 0, %0, c9, c13, 2" : : "r" (val));
-+
-+              if (cnt_en[cnt] != 0)
-+                  armv7_pmnc_enable_counter(cnt);
-+
-+              break;
-+
-+      default:
-+              printk(KERN_ERR "oprofile: CPU%u resetting wrong PMNC counter"
-+                      " %d\n", smp_processor_id(), cnt);
-+              break;
-+      }
-+}
-+
-+int armv7_setup_pmnc(void)
-+{
-+      unsigned int cnt;
-+
-+      if (armv7_pmnc_read() & PMNC_E) {
-+              printk(KERN_ERR "oprofile: CPU%u PMNC still enabled when setup"
-+                      " new event counter.\n", smp_processor_id());
-+              return -EBUSY;
-+      }
-+
-+      /*
-+       * Initialize & Reset PMNC: C bit, D bit and P bit.
-+       *  Note: Using a slower count for CCNT (D bit: divide by 64) results
-+       *   in a more stable system
-+       */
-+      armv7_pmnc_write(PMNC_P | PMNC_C | PMNC_D);
-+
-+
-+      for (cnt = CCNT; cnt < CNTMAX; cnt++) {
-+              unsigned long event;
-+              u32 cpu_cnt = CPU_COUNTER(smp_processor_id(), cnt);
-+
-+              /*
-+               * Disable counter
-+               */
-+              armv7_pmnc_disable_counter(cnt);
-+              cnt_en[cnt] = 0;
-+
-+              if (!counter_config[cpu_cnt].enabled)
-+                      continue;
-+
-+              event = counter_config[cpu_cnt].event & 255;
-+
-+              /*
-+               * Set event (if destined for PMNx counters)
-+               * We don't need to set the event if it's a cycle count
-+               */
-+              if (cnt != CCNT)
-+                      armv7_pmnc_write_evtsel(cnt, event);
-+
-+              /*
-+               * Enable interrupt for this counter
-+               */
-+              armv7_pmnc_enable_intens(cnt);
-+
-+              /*
-+               * Reset counter
-+               */
-+              armv7_pmnc_reset_counter(cnt);
-+
-+              /*
-+               * Enable counter
-+               */
-+              armv7_pmnc_enable_counter(cnt);
-+              cnt_en[cnt] = 1;
-+      }
-+
-+      return 0;
-+}
-+
-+static inline void armv7_start_pmnc(void)
-+{
-+      armv7_pmnc_write(armv7_pmnc_read() | PMNC_E);
-+}
-+
-+static inline void armv7_stop_pmnc(void)
-+{
-+      armv7_pmnc_write(armv7_pmnc_read() & ~PMNC_E);
-+}
-+
-+/*
-+ * CPU counters' IRQ handler (one IRQ per CPU)
-+ */
-+static irqreturn_t armv7_pmnc_interrupt(int irq, void *arg)
-+{
-+      struct pt_regs *regs = get_irq_regs();
-+      unsigned int cnt;
-+      u32 flags;
-+
-+
-+      /*
-+       * Stop IRQ generation
-+       */
-+      armv7_stop_pmnc();
-+
-+      /*
-+       * Get and reset overflow status flags
-+       */
-+      flags = armv7_pmnc_getreset_flags();
-+
-+      /*
-+       * Cycle counter
-+       */
-+      if (flags & FLAG_C) {
-+              u32 cpu_cnt = CPU_COUNTER(smp_processor_id(), CCNT);
-+              armv7_pmnc_reset_counter(CCNT);
-+              oprofile_add_sample(regs, cpu_cnt);
-+      }
-+
-+      /*
-+       * PMNC counters 0:3
-+       */
-+      for (cnt = CNT0; cnt < CNTMAX; cnt++) {
-+              if (flags & (1 << (cnt - CNT0))) {
-+                      u32 cpu_cnt = CPU_COUNTER(smp_processor_id(), cnt);
-+                      armv7_pmnc_reset_counter(cnt);
-+                      oprofile_add_sample(regs, cpu_cnt);
-+              }
-+      }
-+
-+      /*
-+       * Allow IRQ generation
-+       */
-+      armv7_start_pmnc();
-+
-+      return IRQ_HANDLED;
-+}
-+
-+int armv7_request_interrupts(int *irqs, int nr)
-+{
-+      unsigned int i;
-+      int ret = 0;
-+
-+      for (i = 0; i < nr; i++) {
-+              ret = request_irq(irqs[i], armv7_pmnc_interrupt,
-+                              IRQF_DISABLED, "CP15 PMNC", NULL);
-+              if (ret != 0) {
-+                      printk(KERN_ERR "oprofile: unable to request IRQ%u"
-+                              " for ARMv7\n",
-+                             irqs[i]);
-+                      break;
-+              }
-+      }
-+
-+      if (i != nr)
-+              while (i-- != 0)
-+                      free_irq(irqs[i], NULL);
-+
-+      return ret;
-+}
-+
-+void armv7_release_interrupts(int *irqs, int nr)
-+{
-+      unsigned int i;
-+
-+      for (i = 0; i < nr; i++)
-+              free_irq(irqs[i], NULL);
-+}
-+
-+#ifdef DEBUG
-+static void armv7_pmnc_dump_regs(void)
-+{
-+      u32 val;
-+      unsigned int cnt;
-+
-+      printk(KERN_INFO "PMNC registers dump:\n");
-+
-+      asm volatile("mrc p15, 0, %0, c9, c12, 0" : "=r" (val));
-+      printk(KERN_INFO "PMNC  =0x%08x\n", val);
-+
-+      asm volatile("mrc p15, 0, %0, c9, c12, 1" : "=r" (val));
-+      printk(KERN_INFO "CNTENS=0x%08x\n", val);
-+
-+      asm volatile("mrc p15, 0, %0, c9, c14, 1" : "=r" (val));
-+      printk(KERN_INFO "INTENS=0x%08x\n", val);
-+
-+      asm volatile("mrc p15, 0, %0, c9, c12, 3" : "=r" (val));
-+      printk(KERN_INFO "FLAGS =0x%08x\n", val);
-+
-+      asm volatile("mrc p15, 0, %0, c9, c12, 5" : "=r" (val));
-+      printk(KERN_INFO "SELECT=0x%08x\n", val);
-+
-+      asm volatile("mrc p15, 0, %0, c9, c13, 0" : "=r" (val));
-+      printk(KERN_INFO "CCNT  =0x%08x\n", val);
-+
-+      for (cnt = CNT0; cnt < CNTMAX; cnt++) {
-+              armv7_pmnc_select_counter(cnt);
-+              asm volatile("mrc p15, 0, %0, c9, c13, 2" : "=r" (val));
-+              printk(KERN_INFO "CNT[%d] count =0x%08x\n", cnt-CNT0, val);
-+              asm volatile("mrc p15, 0, %0, c9, c13, 1" : "=r" (val));
-+              printk(KERN_INFO "CNT[%d] evtsel=0x%08x\n", cnt-CNT0, val);
-+      }
-+}
-+#endif
-+
-+
-+static int irqs[] = {
-+#ifdef CONFIG_ARCH_OMAP3
-+      INT_34XX_BENCH_MPU_EMUL,
-+#endif
-+};
-+
-+static void armv7_pmnc_stop(void)
-+{
-+#ifdef DEBUG
-+      armv7_pmnc_dump_regs();
-+#endif
-+      armv7_stop_pmnc();
-+      armv7_release_interrupts(irqs, ARRAY_SIZE(irqs));
-+}
-+
-+static int armv7_pmnc_start(void)
-+{
-+      int ret;
-+
-+#ifdef DEBUG
-+      armv7_pmnc_dump_regs();
-+#endif
-+      ret = armv7_request_interrupts(irqs, ARRAY_SIZE(irqs));
-+      if (ret >= 0)
-+              armv7_start_pmnc();
-+
-+      return ret;
-+}
-+
-+static int armv7_detect_pmnc(void)
-+{
-+      return 0;
-+}
-+
-+struct op_arm_model_spec op_armv7_spec = {
-+      .init           = armv7_detect_pmnc,
-+      .num_counters   = 5,
-+      .setup_ctrs     = armv7_setup_pmnc,
-+      .start          = armv7_pmnc_start,
-+      .stop           = armv7_pmnc_stop,
-+      .name           = "arm/armv7",
-+};
-diff --git a/arch/arm/oprofile/op_model_v7.h b/arch/arm/oprofile/op_model_v7.h
-new file mode 100644
-index 0000000..08f40ea
---- /dev/null
-+++ b/arch/arm/oprofile/op_model_v7.h
-@@ -0,0 +1,101 @@
-+/**
-+ * @file op_model_v7.h
-+ * ARM v7 (Cortex A8) Event Monitor Driver
-+ *
-+ * @remark Copyright 2008 Jean Pihet <jpihet@mvista.com>
-+ * @remark Copyright 2004 ARM SMP Development Team
-+ * @remark Copyright 2000-2004 Deepak Saxena <dsaxena@mvista.com>
-+ * @remark Copyright 2000-2004 MontaVista Software Inc
-+ * @remark Copyright 2004 Dave Jiang <dave.jiang@intel.com>
-+ * @remark Copyright 2004 Intel Corporation
-+ * @remark Copyright 2004 Zwane Mwaikambo <zwane@arm.linux.org.uk>
-+ * @remark Copyright 2004 Oprofile Authors
-+ *
-+ * @remark Read the file COPYING
-+ *
-+ * @author Zwane Mwaikambo
-+ */
-+#ifndef OP_MODEL_V7_H
-+#define OP_MODEL_V7_H
-+
-+/*
-+ * Per-CPU PMNC: config reg
-+ */
-+#define PMNC_E                (1 << 0)        /* Enable all counters */
-+#define PMNC_P                (1 << 1)        /* Reset all counters */
-+#define PMNC_C                (1 << 2)        /* Cycle counter reset */
-+#define PMNC_D                (1 << 3)        /* CCNT counts every 64th cpu cycle */
-+#define PMNC_X                (1 << 4)        /* Export to ETM */
-+#define PMNC_DP               (1 << 5)        /* Disable CCNT if non-invasive debug*/
-+#define       PMNC_MASK       0x3f            /* Mask for writable bits */
-+
-+/*
-+ * Available counters
-+ */
-+#define CCNT          0
-+#define CNT0          1
-+#define CNT1          2
-+#define CNT2          3
-+#define CNT3          4
-+#define CNTMAX                5
-+
-+#define CPU_COUNTER(cpu, counter)     ((cpu) * CNTMAX + (counter))
-+
-+/*
-+ * CNTENS: counters enable reg
-+ */
-+#define CNTENS_P0     (1 << 0)
-+#define CNTENS_P1     (1 << 1)
-+#define CNTENS_P2     (1 << 2)
-+#define CNTENS_P3     (1 << 3)
-+#define CNTENS_C      (1 << 31)
-+#define       CNTENS_MASK     0x8000000f      /* Mask for writable bits */
-+
-+/*
-+ * CNTENC: counters disable reg
-+ */
-+#define CNTENC_P0     (1 << 0)
-+#define CNTENC_P1     (1 << 1)
-+#define CNTENC_P2     (1 << 2)
-+#define CNTENC_P3     (1 << 3)
-+#define CNTENC_C      (1 << 31)
-+#define       CNTENC_MASK     0x8000000f      /* Mask for writable bits */
-+
-+/*
-+ * INTENS: counters overflow interrupt enable reg
-+ */
-+#define INTENS_P0     (1 << 0)
-+#define INTENS_P1     (1 << 1)
-+#define INTENS_P2     (1 << 2)
-+#define INTENS_P3     (1 << 3)
-+#define INTENS_C      (1 << 31)
-+#define       INTENS_MASK     0x8000000f      /* Mask for writable bits */
-+
-+/*
-+ * EVTSEL: Event selection reg
-+ */
-+#define       EVTSEL_MASK     0x7f            /* Mask for writable bits */
-+
-+/*
-+ * SELECT: Counter selection reg
-+ */
-+#define       SELECT_MASK     0x1f            /* Mask for writable bits */
-+
-+/*
-+ * FLAG: counters overflow flag status reg
-+ */
-+#define FLAG_P0               (1 << 0)
-+#define FLAG_P1               (1 << 1)
-+#define FLAG_P2               (1 << 2)
-+#define FLAG_P3               (1 << 3)
-+#define FLAG_C                (1 << 31)
-+#define       FLAG_MASK       0x8000000f      /* Mask for writable bits */
-+
-+
-+int armv7_setup_pmu(void);
-+int armv7_start_pmu(void);
-+int armv7_stop_pmu(void);
-+int armv7_request_interrupts(int *, int);
-+void armv7_release_interrupts(int *, int);
-+
-+#endif
-
diff --git a/recipes/linux/omap3-pandora-kernel-wifi/pvr/dispc.patch b/recipes/linux/omap3-pandora-kernel-wifi/pvr/dispc.patch
deleted file mode 100755 (executable)
index 1697448..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
---- kernel-2.6.27.orig/drivers/video/omap/dispc.c
-+++ kernel-2.6.27/drivers/video/omap/dispc.c
-@@ -314,6 +319,32 @@
- }
- EXPORT_SYMBOL(omap_dispc_enable_digit_out);
-+extern void omap_dispc_set_plane_base(int plane, u32 paddr)
-+{
-+      u32 reg;
-+      u32 val;
-+
-+      switch (plane) {
-+      case 0:
-+              reg = DISPC_GFX_BA0;
-+              break;
-+      case 1:
-+              reg = DISPC_VID1_BASE + DISPC_VID_BA0;
-+              break;
-+      case 2:
-+              reg = DISPC_VID2_BASE + DISPC_VID_BA0;
-+              break;
-+      default:
-+              BUG();
-+              return;
-+      }
-+
-+      dispc_write_reg(reg, paddr);
-+      val = dispc_read_reg(DISPC_CONTROL) | (1 << 5); /* GOLCD */
-+      dispc_write_reg(DISPC_CONTROL, val);
-+}
-+EXPORT_SYMBOL(omap_dispc_set_plane_base);
-+
- static inline int _setup_plane(int plane, int channel_out,
-                                 u32 paddr, int screen_width,
-                                 int pos_x, int pos_y, int width, int height,
---- /tmp/dispc.h       2008-12-09 15:13:12.000000000 +0100
-+++ git/drivers/video/omap/dispc.h     2008-12-09 15:13:36.000000000 +0100
-@@ -32,6 +32,8 @@
- #define DISPC_TFT_DATA_LINES_18               2
- #define DISPC_TFT_DATA_LINES_24               3
-+extern void omap_dispc_set_plane_base(int plane, u32 paddr);
-+
- extern void omap_dispc_set_lcd_size(int width, int height);
- extern void omap_dispc_enable_lcd_out(int enable);
diff --git a/recipes/linux/omap3-pandora-kernel-wifi/pvr/nokia-TI.diff b/recipes/linux/omap3-pandora-kernel-wifi/pvr/nokia-TI.diff
deleted file mode 100755 (executable)
index a4aca1e..0000000
+++ /dev/null
@@ -1,8798 +0,0 @@
- include4/img_types.h                                                 |    5 
- include4/pdumpdefs.h                                                 |    1 
- include4/pvrmodule.h                                                 |   31 
- include4/pvrversion.h                                                |    8 
- include4/services.h                                                  |   46 
- include4/servicesext.h                                               |    6 
- include4/sgxapi_km.h                                                 |   65 
- services4/3rdparty/bufferclass_example/bufferclass_example.c         |   32 
- services4/3rdparty/bufferclass_example/bufferclass_example.h         |   25 
- services4/3rdparty/bufferclass_example/bufferclass_example_linux.c   |   20 
- services4/3rdparty/bufferclass_example/bufferclass_example_private.c |   76 -
- services4/3rdparty/bufferclass_example/kbuild/Makefile               |   40 
- services4/3rdparty/dc_omap3430_linux/kbuild/Makefile                 |   39 
- services4/3rdparty/dc_omap3430_linux/omaplfb.h                       |    7 
- services4/3rdparty/dc_omap3430_linux/omaplfb_displayclass.c          |   60 
- services4/3rdparty/dc_omap3430_linux/omaplfb_linux.c                 |   52 
- services4/include/pvr_bridge.h                                       |   26 
- services4/include/servicesint.h                                      |   17 
- services4/include/sgx_bridge.h                                       |   95 +
- services4/include/sgx_bridge_km.h                                    |  139 -
- services4/include/sgxinfo.h                                          |  347 ++--
- services4/srvkm/Makefile                                             |   68 
- services4/srvkm/bridged/bridged_pvr_bridge.c                         |  732 ++++++++-
- services4/srvkm/common/deviceclass.c                                 |    6 
- services4/srvkm/common/devicemem.c                                   |    3 
- services4/srvkm/common/handle.c                                      |   58 
- services4/srvkm/common/power.c                                       |   15 
- services4/srvkm/common/pvrsrv.c                                      |  151 +-
- services4/srvkm/common/queue.c                                       |    4 
- services4/srvkm/common/resman.c                                      |   13 
- services4/srvkm/devices/sgx/mmu.c                                    |    2 
- services4/srvkm/devices/sgx/mmu.h                                    |    2 
- services4/srvkm/devices/sgx/pb.c                                     |   37 
- services4/srvkm/devices/sgx/sgx2dcore.c                              |   21 
- services4/srvkm/devices/sgx/sgx_bridge_km.h                          |  158 ++
- services4/srvkm/devices/sgx/sgxinfokm.h                              |  146 +
- services4/srvkm/devices/sgx/sgxinit.c                                |  734 ++--------
- services4/srvkm/devices/sgx/sgxkick.c                                |  327 +++-
- services4/srvkm/devices/sgx/sgxreset.c                               |  330 ++++
- services4/srvkm/devices/sgx/sgxtransfer.c                            |  312 ++++
- services4/srvkm/devices/sgx/sgxutils.c                               |  459 +++---
- services4/srvkm/devices/sgx/sgxutils.h                               |   28 
- services4/srvkm/env/linux/env_data.h                                 |    8 
- services4/srvkm/env/linux/event.c                                    |  221 +++
- services4/srvkm/env/linux/event.h                                    |   32 
- services4/srvkm/env/linux/kbuild/Makefile                            |   81 +
- services4/srvkm/env/linux/mm.c                                       |    8 
- services4/srvkm/env/linux/module.c                                   |  342 +++-
- services4/srvkm/env/linux/osfunc.c                                   |  347 +++-
- services4/srvkm/env/linux/pdump.c                                    |   13 
- services4/srvkm/env/linux/proc.c                                     |   17 
- services4/srvkm/env/linux/pvr_debug.c                                |    2 
- services4/srvkm/hwdefs/sgxdefs.h                                     |    4 
- services4/srvkm/hwdefs/sgxerrata.h                                   |    9 
- services4/srvkm/hwdefs/sgxfeaturedefs.h                              |   11 
- services4/srvkm/include/device.h                                     |   35 
- services4/srvkm/include/handle.h                                     |   10 
- services4/srvkm/include/osfunc.h                                     |   32 
- services4/srvkm/include/pdump_km.h                                   |    2 
- services4/srvkm/include/resman.h                                     |    5 
- services4/srvkm/include/srvkm.h                                      |    4 
- services4/system/include/syscommon.h                                 |    2 
- services4/system/omap3430/sysconfig.c                                |   24 
- services4/system/omap3430/sysconfig.h                                |    7 
- services4/system/omap3430/sysutils.c                                 |    2 
- 65 files changed, 4286 insertions(+), 1675 deletions(-)
-
-
-diff -Nurd git/drivers/gpu/pvr/include4/img_types.h git/drivers/gpu/pvr/include4/img_types.h
---- git/drivers/gpu/pvr/include4/img_types.h   2009-01-05 20:00:44.000000000 +0100
-+++ git/drivers/gpu/pvr/include4/img_types.h   2008-12-18 15:47:29.000000000 +0100
-@@ -43,7 +43,10 @@
- typedef signed long           IMG_INT32,      *IMG_PINT32;
-       #if defined(LINUX)
--
-+#if !defined(USE_CODE)
-+              typedef unsigned long long              IMG_UINT64,     *IMG_PUINT64;
-+              typedef long long                               IMG_INT64,      *IMG_PINT64;
-+#endif
-       #else
-               #error("define an OS")
-diff -Nurd git/drivers/gpu/pvr/include4/pdumpdefs.h git/drivers/gpu/pvr/include4/pdumpdefs.h
---- git/drivers/gpu/pvr/include4/pdumpdefs.h   2009-01-05 20:00:44.000000000 +0100
-+++ git/drivers/gpu/pvr/include4/pdumpdefs.h   2008-12-18 15:47:29.000000000 +0100
-@@ -73,6 +73,7 @@
-       PVRSRV_PDUMP_MEM_FORMAT_RESERVED = 1,
-       PVRSRV_PDUMP_MEM_FORMAT_TILED = 8,
-       PVRSRV_PDUMP_MEM_FORMAT_TWIDDLED = 9,
-+      PVRSRV_PDUMP_MEM_FORMAT_HYBRID = 10,
-       
-       PVRSRV_PDUMP_MEM_FORMAT_FORCE_I32 = 0x7fffffff
- } PDUMP_MEM_FORMAT;
-diff -Nurd git/drivers/gpu/pvr/include4/pvrmodule.h git/drivers/gpu/pvr/include4/pvrmodule.h
---- git/drivers/gpu/pvr/include4/pvrmodule.h   1970-01-01 01:00:00.000000000 +0100
-+++ git/drivers/gpu/pvr/include4/pvrmodule.h   2008-12-18 15:47:29.000000000 +0100
-@@ -0,0 +1,31 @@
-+/**********************************************************************
-+ *
-+ * Copyright(c) 2008 Imagination Technologies Ltd. All rights reserved.
-+ * 
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms and conditions of the GNU General Public License,
-+ * version 2, as published by the Free Software Foundation.
-+ * 
-+ * This program is distributed in the hope it will be useful but, except 
-+ * as otherwise stated in writing, without any warranty; without even the 
-+ * implied warranty of merchantability or fitness for a particular purpose. 
-+ * See the GNU General Public License for more details.
-+ * 
-+ * You should have received a copy of the GNU General Public License along with
-+ * this program; if not, write to the Free Software Foundation, Inc.,
-+ * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
-+ * 
-+ * The full GNU General Public License is included in this distribution in
-+ * the file called "COPYING".
-+ *
-+ * Contact Information:
-+ * Imagination Technologies Ltd. <gpl-support@imgtec.com>
-+ * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
-+ *
-+ ******************************************************************************/
-+
-+#ifndef       _PVRMODULE_H_
-+#define       _PVRMODULE_H_
-+MODULE_AUTHOR("Imagination Technologies Ltd. <gpl-support@imgtec.com>");
-+MODULE_LICENSE("GPL");
-+#endif        
-diff -Nurd git/drivers/gpu/pvr/include4/pvrversion.h git/drivers/gpu/pvr/include4/pvrversion.h
---- git/drivers/gpu/pvr/include4/pvrversion.h  2009-01-05 20:00:44.000000000 +0100
-+++ git/drivers/gpu/pvr/include4/pvrversion.h  2008-12-18 15:47:29.000000000 +0100
-@@ -28,10 +28,10 @@
- #define _PVRVERSION_H_
- #define PVRVERSION_MAJ 1
--#define PVRVERSION_MIN 1
--#define PVRVERSION_BRANCH 11
--#define PVRVERSION_BUILD 970
--#define PVRVERSION_STRING "1.1.11.970"
-+#define PVRVERSION_MIN 2
-+#define PVRVERSION_BRANCH 12
-+#define PVRVERSION_BUILD 838
-+#define PVRVERSION_STRING "1.2.12.838"
- #endif 
-diff -Nurd git/drivers/gpu/pvr/include4/servicesext.h git/drivers/gpu/pvr/include4/servicesext.h
---- git/drivers/gpu/pvr/include4/servicesext.h 2009-01-05 20:00:44.000000000 +0100
-+++ git/drivers/gpu/pvr/include4/servicesext.h 2008-12-18 15:47:29.000000000 +0100
-@@ -150,6 +150,8 @@
-       PVRSRV_PIXEL_FORMAT_V8U8,
-       PVRSRV_PIXEL_FORMAT_V16U16,
-       PVRSRV_PIXEL_FORMAT_QWVU8888,
-+      PVRSRV_PIXEL_FORMAT_XLVU8888,
-+      PVRSRV_PIXEL_FORMAT_QWVU16,
-       PVRSRV_PIXEL_FORMAT_D16,
-       PVRSRV_PIXEL_FORMAT_D24S8,
-       PVRSRV_PIXEL_FORMAT_D24X8,
-@@ -159,7 +161,9 @@
-       PVRSRV_PIXEL_FORMAT_YUY2,
-       PVRSRV_PIXEL_FORMAT_DXT23,
-       PVRSRV_PIXEL_FORMAT_DXT45,      
--      PVRSRV_PIXEL_FORMAT_G32R32F,    
-+      PVRSRV_PIXEL_FORMAT_G32R32F,
-+      PVRSRV_PIXEL_FORMAT_NV11,
-+      PVRSRV_PIXEL_FORMAT_NV12,
-       PVRSRV_PIXEL_FORMAT_FORCE_I32 = 0x7fffffff,
- } PVRSRV_PIXEL_FORMAT;
-diff -Nurd git/drivers/gpu/pvr/include4/services.h git/drivers/gpu/pvr/include4/services.h
---- git/drivers/gpu/pvr/include4/services.h    2009-01-05 20:00:44.000000000 +0100
-+++ git/drivers/gpu/pvr/include4/services.h    2008-12-18 15:47:29.000000000 +0100
-@@ -36,16 +36,14 @@
- #include "pdumpdefs.h"
--#if defined(SERVICES4)
- #define IMG_CONST const
--#else
--#define IMG_CONST
--#endif
- #define PVRSRV_MAX_CMD_SIZE           1024
- #define PVRSRV_MAX_DEVICES            16      
-+#define EVENTOBJNAME_MAXLENGTH (50)
-+
- #define PVRSRV_MEM_READ                                               (1<<0)
- #define PVRSRV_MEM_WRITE                                      (1<<1)
- #define PVRSRV_MEM_CACHE_CONSISTENT                   (1<<2)
-@@ -90,6 +88,7 @@
- #define PVRSRV_MISC_INFO_TIMER_PRESENT                        (1<<0)
- #define PVRSRV_MISC_INFO_CLOCKGATE_PRESENT            (1<<1)
- #define PVRSRV_MISC_INFO_MEMSTATS_PRESENT             (1<<2)
-+#define PVRSRV_MISC_INFO_GLOBALEVENTOBJECT_PRESENT    (1<<3)
- #define PVRSRV_PDUMP_MAX_FILENAME_SIZE                        20
- #define PVRSRV_PDUMP_MAX_COMMENT_SIZE                 200
-@@ -133,7 +132,8 @@
-       IMG_OPENGLES2  = 0x00000003,
-       IMG_D3DM           = 0x00000004,
-       IMG_SRV_UM         = 0x00000005,
--      IMG_OPENVG         = 0x00000006
-+      IMG_OPENVG         = 0x00000006,
-+      IMG_SRVCLIENT  = 0x00000007,
- } IMG_MODULE_ID;
-@@ -202,10 +202,8 @@
-       
-       IMG_PVOID                               pvLinAddr;      
--#if defined(SERVICES4)
-     
-       IMG_PVOID                               pvLinAddrKM;
--#endif
-       
-       
-       IMG_DEV_VIRTADDR                sDevVAddr;
-@@ -294,6 +292,14 @@
- } PVRSRV_DEVICE_IDENTIFIER;
-+typedef struct _PVRSRV_EVENTOBJECT_
-+{
-+      
-+      IMG_CHAR        szName[EVENTOBJNAME_MAXLENGTH];
-+      
-+      IMG_HANDLE      hOSEventKM;
-+
-+} PVRSRV_EVENTOBJECT;
- typedef struct _PVRSRV_MISC_INFO_
- {
-@@ -313,9 +319,14 @@
-       IMG_UINT32      ui32MemoryStrLen;
-       
-       
-+      PVRSRV_EVENTOBJECT      sGlobalEventObject;
-+      IMG_HANDLE                      hOSGlobalEvent;
-+      
-+      
-       
- } PVRSRV_MISC_INFO;
-+
- IMG_IMPORT
- PVRSRV_ERROR IMG_CALLCONV PVRSRVConnect(PVRSRV_CONNECTION *psConnection);
-@@ -335,7 +346,7 @@
- PVRSRV_ERROR IMG_CALLCONV PVRSRVGetMiscInfo (IMG_CONST PVRSRV_CONNECTION *psConnection, PVRSRV_MISC_INFO *psMiscInfo);
- IMG_IMPORT
--PVRSRV_ERROR IMG_CALLCONV PVRSRVReleaseMiscInfo (PVRSRV_MISC_INFO *psMiscInfo);
-+PVRSRV_ERROR IMG_CALLCONV PVRSRVReleaseMiscInfo (IMG_CONST PVRSRV_CONNECTION *psConnection, PVRSRV_MISC_INFO *psMiscInfo);
- #if 1
- IMG_IMPORT
-@@ -348,7 +359,9 @@
- #endif
- IMG_IMPORT
--PVRSRV_ERROR PollForValue (volatile IMG_UINT32 *pui32LinMemAddr,
-+PVRSRV_ERROR PollForValue ( PVRSRV_CONNECTION *psConnection,
-+                                                      IMG_HANDLE hOSEvent,
-+                                                      volatile IMG_UINT32 *pui32LinMemAddr,
-                                                                       IMG_UINT32 ui32Value,
-                                                                       IMG_UINT32 ui32Mask,
-                                                                       IMG_UINT32 ui32Waitus,
-@@ -631,21 +644,18 @@
-                                                                                       IMG_UINT32 ui32RegValue,
-                                                                                       IMG_UINT32 ui32Flags);
--#ifdef SERVICES4
- IMG_IMPORT
- PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpRegPolWithFlags(IMG_CONST PVRSRV_CONNECTION *psConnection,
-                                                                                                        IMG_UINT32 ui32RegAddr,
-                                                                                                        IMG_UINT32 ui32RegValue,
-                                                                                                        IMG_UINT32 ui32Mask,
-                                                                                                        IMG_UINT32 ui32Flags);
--#endif
- IMG_IMPORT
- PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpRegPol(IMG_CONST PVRSRV_CONNECTION *psConnection,
-                                                                                       IMG_UINT32 ui32RegAddr,
-                                                                                       IMG_UINT32 ui32RegValue,
-                                                                                       IMG_UINT32 ui32Mask);
--#ifdef SERVICES4
- IMG_IMPORT
- PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpPDReg(IMG_CONST PVRSRV_CONNECTION *psConnection,
-                                                                                       IMG_UINT32 ui32RegAddr,
-@@ -655,7 +665,6 @@
-                                                                                               PVRSRV_CLIENT_MEM_INFO *psMemInfo,
-                                                                                               IMG_UINT32 ui32Offset,
-                                                                                               IMG_DEV_PHYADDR sPDDevPAddr);
--#endif
- IMG_IMPORT
- PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpMemPages(IMG_CONST PVRSRV_CONNECTION *psConnection,
-@@ -676,7 +685,6 @@
-                                                                                        IMG_CONST IMG_CHAR *pszComment,
-                                                                                        IMG_BOOL bContinuous);
--#if defined(SERVICES4)
- IMG_IMPORT
- PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpCommentf(IMG_CONST PVRSRV_CONNECTION *psConnection,
-                                                                                         IMG_BOOL bContinuous,
-@@ -686,7 +694,6 @@
- PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpCommentWithFlagsf(IMG_CONST PVRSRV_CONNECTION *psConnection,
-                                                                                                          IMG_UINT32 ui32Flags,
-                                                                                                          IMG_CONST IMG_CHAR *pszFormat, ...);
--#endif
- IMG_IMPORT
- PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpDriverInfo(IMG_CONST PVRSRV_CONNECTION *psConnection,
-@@ -718,7 +725,7 @@
-                                                                                       IMG_UINT32 ui32Size,
-                                                                                       IMG_UINT32 ui32PDumpFlags);
--#ifdef SERVICES4
-+
- IMG_IMPORT
- IMG_BOOL IMG_CALLCONV PVRSRVPDumpIsCapturingTest(IMG_CONST PVRSRV_CONNECTION *psConnection);
-@@ -726,7 +733,6 @@
- PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpCycleCountRegRead(IMG_CONST PVRSRV_CONNECTION *psConnection,
-                                                                                               IMG_UINT32 ui32RegOffset,
-                                                                                               IMG_BOOL bLastFrame);
--#endif
- IMG_IMPORT IMG_HANDLE PVRSRVLoadLibrary(IMG_CHAR *pszLibraryName);
- IMG_IMPORT PVRSRV_ERROR       PVRSRVUnloadLibrary(IMG_HANDLE hExtDrv);
-@@ -777,9 +783,9 @@
- IMG_PVOID PVRSRVReallocUserModeMemTracking(IMG_VOID *pvMem, IMG_UINT32 ui32NewSize, IMG_CHAR *pszFileName, IMG_UINT32 ui32LineNumber);
- #endif 
--PVRSRV_ERROR PVRSRVEventObjectWait(PVRSRV_CONNECTION *psConnection, 
--                                                                      IMG_HANDLE hOSEvent, 
--                                                                      IMG_UINT32 ui32MSTimeout);
-+IMG_IMPORT 
-+PVRSRV_ERROR PVRSRVEventObjectWait(PVRSRV_CONNECTION * psConnection, 
-+                                                                      IMG_HANDLE hOSEvent);
- #define TIME_NOT_PASSED_UINT32(a,b,c)         ((a - b) < c)
-diff -Nurd git/drivers/gpu/pvr/include4/sgxapi_km.h git/drivers/gpu/pvr/include4/sgxapi_km.h
---- git/drivers/gpu/pvr/include4/sgxapi_km.h   2009-01-05 20:00:44.000000000 +0100
-+++ git/drivers/gpu/pvr/include4/sgxapi_km.h   2008-12-18 15:47:29.000000000 +0100
-@@ -32,6 +32,7 @@
- #endif
- #include "sgxdefs.h"
-+
- #if defined(__linux__) && !defined(USE_CODE)
-       #if defined(__KERNEL__)
-               #include <asm/unistd.h>
-@@ -64,6 +65,8 @@
- #define SGX_MAX_TA_STATUS_VALS        32
- #define SGX_MAX_3D_STATUS_VALS        2
-+#define SGX_MAX_SRC_SYNCS                     4
-+
- #define PFLAGS_POWERDOWN                      0x00000001
- #define PFLAGS_POWERUP                                0x00000002
-  
-@@ -75,11 +78,60 @@
-       IMG_SYS_PHYADDR                 sPhysBase;                              
- }SGX_SLAVE_PORT;
-+#ifdef SUPPORT_SGX_HWPERF
-+
-+#define PVRSRV_SGX_HWPERF_CBSIZE                                      0x100   
-+
-+#define PVRSRV_SGX_HWPERF_INVALID                                     1
-+#define PVRSRV_SGX_HWPERF_TRANSFER                                    2
-+#define PVRSRV_SGX_HWPERF_TA                                          3
-+#define PVRSRV_SGX_HWPERF_3D                                          4
-+
-+#define PVRSRV_SGX_HWPERF_ON                                          0x40
-+
-+
-+typedef struct _PVRSRV_SGX_HWPERF_CBDATA_
-+{
-+      IMG_UINT32      ui32FrameNo;
-+      IMG_UINT32      ui32Type;
-+      IMG_UINT32      ui32StartTimeWraps;
-+      IMG_UINT32      ui32StartTime;
-+      IMG_UINT32      ui32EndTimeWraps;
-+      IMG_UINT32      ui32EndTime;
-+      IMG_UINT32      ui32ClockSpeed;
-+      IMG_UINT32      ui32TimeMax;
-+} PVRSRV_SGX_HWPERF_CBDATA;
-+
-+typedef struct _PVRSRV_SGX_HWPERF_CB_
-+{
-+      IMG_UINT32      ui32Woff;
-+      IMG_UINT32      ui32Roff;
-+      PVRSRV_SGX_HWPERF_CBDATA psHWPerfCBData[PVRSRV_SGX_HWPERF_CBSIZE];
-+} PVRSRV_SGX_HWPERF_CB;
-+
-+
-+typedef struct _SGX_MISC_INFO_HWPERF_RETRIEVE_CB
-+{
-+      PVRSRV_SGX_HWPERF_CBDATA*       psHWPerfData;   
-+      IMG_UINT32                                      ui32ArraySize;  
-+      IMG_UINT32                                      ui32DataCount;  
-+      IMG_UINT32                                      ui32Time;               
-+} SGX_MISC_INFO_HWPERF_RETRIEVE_CB;
-+#endif 
-+
-+
- typedef enum _SGX_MISC_INFO_REQUEST_
- {
-+      SGX_MISC_INFO_REQUEST_CLOCKSPEED = 0,
-+#ifdef SUPPORT_SGX_HWPERF
-+      SGX_MISC_INFO_REQUEST_HWPERF_CB_ON,
-+      SGX_MISC_INFO_REQUEST_HWPERF_CB_OFF,
-+      SGX_MISC_INFO_REQUEST_HWPERF_RETRIEVE_CB,
-+#endif 
-       SGX_MISC_INFO_REQUEST_FORCE_I16                                 =  0x7fff
- } SGX_MISC_INFO_REQUEST;
-+
- typedef struct _SGX_MISC_INFO_
- {
-       SGX_MISC_INFO_REQUEST   eRequest;       
-@@ -87,6 +139,10 @@
-       union
-       {
-               IMG_UINT32      reserved;       
-+              IMG_UINT32                                                                                      ui32SGXClockSpeed;
-+#ifdef SUPPORT_SGX_HWPERF
-+              SGX_MISC_INFO_HWPERF_RETRIEVE_CB                                        sRetrieveCB;
-+#endif 
-       } uData;
- } SGX_MISC_INFO;
-@@ -162,6 +218,15 @@
- } PVR3DIF4_KICKTA_PDUMP, *PPVR3DIF4_KICKTA_PDUMP;
- #endif        
-+#if defined(TRANSFER_QUEUE)
-+#if defined(SGX_FEATURE_2D_HARDWARE)
-+#define SGX_MAX_2D_BLIT_CMD_SIZE              26
-+#define SGX_MAX_2D_SRC_SYNC_OPS                       3
-+#endif
-+#define SGX_MAX_TRANSFER_STATUS_VALS  64
-+#define SGX_MAX_TRANSFER_SYNC_OPS     5
-+#endif
-+
- #if defined (__cplusplus)
- }
- #endif
-diff -Nurd git/drivers/gpu/pvr/services4/3rdparty/bufferclass_example/bufferclass_example.c git/drivers/gpu/pvr/services4/3rdparty/bufferclass_example/bufferclass_example.c
---- git/drivers/gpu/pvr/services4/3rdparty/bufferclass_example/bufferclass_example.c   2009-01-05 20:00:44.000000000 +0100
-+++ git/drivers/gpu/pvr/services4/3rdparty/bufferclass_example/bufferclass_example.c   2008-12-18 15:47:29.000000000 +0100
-@@ -197,11 +197,27 @@
-                       return PVRSRV_ERROR_OUT_OF_MEMORY;
-               }
-+              
-+
-+              psDevInfo->sBufferInfo.pixelformat = BC_EXAMPLE_PIXELFORMAT;
-+              psDevInfo->sBufferInfo.ui32Width = BC_EXAMPLE_WIDTH;
-+              psDevInfo->sBufferInfo.ui32Height = BC_EXAMPLE_HEIGHT;
-+              psDevInfo->sBufferInfo.ui32ByteStride = BC_EXAMPLE_STRIDE;              
-+              psDevInfo->sBufferInfo.ui32BufferDeviceID = BC_EXAMPLE_DEVICEID;
-+              psDevInfo->sBufferInfo.ui32Flags = PVRSRV_BC_FLAGS_YUVCSC_FULL_RANGE | PVRSRV_BC_FLAGS_YUVCSC_BT601;
-+
-               for(i=0; i < BC_EXAMPLE_NUM_BUFFERS; i++)
-               {
-+                      IMG_UINT32 ui32Size = BC_EXAMPLE_HEIGHT * BC_EXAMPLE_STRIDE;
-+
-+                      if(psDevInfo->sBufferInfo.pixelformat == PVRSRV_PIXEL_FORMAT_YUV420)
-+                      {
-+                              
-+                              ui32Size += ((BC_EXAMPLE_STRIDE >> 1) * (BC_EXAMPLE_HEIGHT >> 1) << 1);
-+                      }
-                       
--                      if (AllocContigMemory(BC_EXAMPLE_HEIGHT * BC_EXAMPLE_STRIDE,
-+                      if (AllocContigMemory(ui32Size,
-                                                                 &psDevInfo->psSystemBuffer[i].hMemHandle,
-                                                                 &psDevInfo->psSystemBuffer[i].sCPUVAddr,
-                                                                 &sSystemBufferCPUPAddr) != PVRSRV_OK)
-@@ -211,12 +227,14 @@
-                       psDevInfo->ui32NumBuffers++;
--                      psDevInfo->psSystemBuffer[i].ui32Size = BC_EXAMPLE_HEIGHT * BC_EXAMPLE_STRIDE;
-+                      psDevInfo->psSystemBuffer[i].ui32Size = ui32Size;
-                       psDevInfo->psSystemBuffer[i].sSysAddr = CpuPAddrToSysPAddr(sSystemBufferCPUPAddr);
-                       psDevInfo->psSystemBuffer[i].sPageAlignSysAddr.uiAddr = (psDevInfo->psSystemBuffer[i].sSysAddr.uiAddr & 0xFFFFF000);
-                       psDevInfo->psSystemBuffer[i].psSyncData = IMG_NULL;
-               }
-+              psDevInfo->sBufferInfo.ui32BufferCount = psDevInfo->ui32NumBuffers;
-+
-               
-               psDevInfo->sBCJTable.ui32TableSize = sizeof(PVRSRV_BC_SRV2BUFFER_KMJTABLE);
-@@ -234,16 +252,6 @@
-               {
-                       return PVRSRV_ERROR_DEVICE_REGISTER_FAILED;
-               }
--
--              
--
--              psDevInfo->sBufferInfo.pixelformat = BC_EXAMPLE_PIXELFORMAT;
--              psDevInfo->sBufferInfo.ui32Width = BC_EXAMPLE_WIDTH;
--              psDevInfo->sBufferInfo.ui32Height = BC_EXAMPLE_HEIGHT;
--              psDevInfo->sBufferInfo.ui32ByteStride = BC_EXAMPLE_STRIDE;              
--              psDevInfo->sBufferInfo.ui32BufferDeviceID = BC_EXAMPLE_DEVICEID;
--              psDevInfo->sBufferInfo.ui32Flags = PVRSRV_BC_FLAGS_YUVCSC_FULL_RANGE | PVRSRV_BC_FLAGS_YUVCSC_BT601;
--              psDevInfo->sBufferInfo.ui32BufferCount = psDevInfo->ui32NumBuffers;
-       }
-       
-diff -Nurd git/drivers/gpu/pvr/services4/3rdparty/bufferclass_example/bufferclass_example.h git/drivers/gpu/pvr/services4/3rdparty/bufferclass_example/bufferclass_example.h
---- git/drivers/gpu/pvr/services4/3rdparty/bufferclass_example/bufferclass_example.h   2009-01-05 20:00:44.000000000 +0100
-+++ git/drivers/gpu/pvr/services4/3rdparty/bufferclass_example/bufferclass_example.h   2008-12-18 15:47:29.000000000 +0100
-@@ -39,11 +39,32 @@
- #define BC_EXAMPLE_NUM_BUFFERS        3
--#define BC_EXAMPLE_WIDTH              (160)
-+#define YUV420 1
-+#ifdef YUV420
-+
-+#define BC_EXAMPLE_WIDTH              (320)
- #define BC_EXAMPLE_HEIGHT             (160)
--#define BC_EXAMPLE_STRIDE             (160*2)
-+#define BC_EXAMPLE_STRIDE             (320)
-+#define BC_EXAMPLE_PIXELFORMAT        (PVRSRV_PIXEL_FORMAT_YUV420)
-+
-+#else
-+#ifdef YUV422
-+
-+#define BC_EXAMPLE_WIDTH              (320)
-+#define BC_EXAMPLE_HEIGHT             (160)
-+#define BC_EXAMPLE_STRIDE             (320*2)
- #define BC_EXAMPLE_PIXELFORMAT        (PVRSRV_PIXEL_FORMAT_YVYU)
-+#else
-+
-+#define BC_EXAMPLE_WIDTH              (320)
-+#define BC_EXAMPLE_HEIGHT             (160)
-+#define BC_EXAMPLE_STRIDE             (320*2)
-+#define BC_EXAMPLE_PIXELFORMAT        (PVRSRV_PIXEL_FORMAT_RGB565)
-+
-+#endif
-+#endif
-+
- #define BC_EXAMPLE_DEVICEID            0
-diff -Nurd git/drivers/gpu/pvr/services4/3rdparty/bufferclass_example/bufferclass_example_linux.c git/drivers/gpu/pvr/services4/3rdparty/bufferclass_example/bufferclass_example_linux.c
---- git/drivers/gpu/pvr/services4/3rdparty/bufferclass_example/bufferclass_example_linux.c     2009-01-05 20:00:44.000000000 +0100
-+++ git/drivers/gpu/pvr/services4/3rdparty/bufferclass_example/bufferclass_example_linux.c     2008-12-18 15:47:29.000000000 +0100
-@@ -38,11 +38,10 @@
- #include "bufferclass_example.h"
- #include "bufferclass_example_linux.h"
-+#include "pvrmodule.h"
- #define DEVNAME       "bc_example"
--MODULE_AUTHOR("Imagination Technologies Ltd. <gpl-support@imgtec.com>");
--MODULE_LICENSE("GPL");
- MODULE_SUPPORTED_DEVICE(DEVNAME);
- int BC_Example_Bridge(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg);
-@@ -259,22 +258,11 @@
-       {
-               return PVRSRV_ERROR_OUT_OF_MEMORY;
-       }
--      else
--      {
--              IMG_VOID *pvPage;
--              IMG_VOID *pvEnd = pvLinAddr + ui32Size;
--
--              for(pvPage = pvLinAddr; pvPage < pvEnd;  pvPage += PAGE_SIZE)
--              {
--                      SetPageReserved(virt_to_page(pvPage));
--              }
--              pPhysAddr->uiAddr = dma;
--              *pLinAddr = pvLinAddr;
-+      pPhysAddr->uiAddr = dma;
-+      *pLinAddr = pvLinAddr;
--              return PVRSRV_OK;
--      }
--      return PVRSRV_ERROR_OUT_OF_MEMORY;
-+      return PVRSRV_OK;
- #endif
- }
-diff -Nurd git/drivers/gpu/pvr/services4/3rdparty/bufferclass_example/bufferclass_example_private.c git/drivers/gpu/pvr/services4/3rdparty/bufferclass_example/bufferclass_example_private.c
---- git/drivers/gpu/pvr/services4/3rdparty/bufferclass_example/bufferclass_example_private.c   2009-01-05 20:00:44.000000000 +0100
-+++ git/drivers/gpu/pvr/services4/3rdparty/bufferclass_example/bufferclass_example_private.c   2008-12-18 15:47:29.000000000 +0100
-@@ -26,6 +26,43 @@
- #include "bufferclass_example.h"
-+void FillYUV420Image(void *pvDest, int width, int height, int bytestride)
-+{
-+      static int iPhase = 0;
-+      int i, j;
-+      unsigned char u,v,y;
-+      unsigned char *pui8y = (unsigned char *)pvDest;
-+      unsigned short *pui16uv;
-+      unsigned int count = 0;
-+
-+      for(j=0;j<height;j++)
-+      {
-+              for(i=0;i<width;i++)
-+              {
-+                      y = (((i+iPhase)>>6)%(2)==0)? 0x7f:0x00;
-+
-+                      pui8y[count++] = y;
-+              }
-+      }
-+
-+      pui16uv = (unsigned short *)((unsigned char *)pvDest + (width * height));
-+      count = 0;
-+
-+      for(j=0;j<height;j+=2)
-+      {
-+              for(i=0;i<width;i+=2)
-+              {
-+                      u = (j<(height/2))? ((i<(width/2))? 0xFF:0x33) : ((i<(width/2))? 0x33:0xAA);
-+                      v = (j<(height/2))? ((i<(width/2))? 0xAC:0x0) : ((i<(width/2))? 0x03:0xEE);
-+
-+                      
-+                      pui16uv[count++] = (v << 8) | u;
-+
-+              }
-+      }
-+
-+      iPhase++;
-+}
- void FillYUV422Image(void *pvDest, int width, int height, int bytestride)
- {
-@@ -37,12 +74,12 @@
-       for(y=0;y<height;y++)
-       {
--              for(x=0;x<width >> 1;x++)
-+              for(x=0;x<width;x+=2)
-               {
--                      u = (y<(height/2))? ((x<(width/4))? 0xFF:0x33) : ((x<(width/4))? 0x33:0xAA);
--                      v = (y<(height/2))? ((x<(width/4))? 0xAA:0x0) : ((x<(width/4))? 0x03:0xEE);
-+                      u = (y<(height/2))? ((x<(width/2))? 0xFF:0x33) : ((x<(width/2))? 0x33:0xAA);
-+                      v = (y<(height/2))? ((x<(width/2))? 0xAA:0x0) : ((x<(width/2))? 0x03:0xEE);
--                      y0 = y1 = (((x+iPhase)>>4)%(2)==0)? 0x7f:0x00;
-+                      y0 = y1 = (((x+iPhase)>>6)%(2)==0)? 0x7f:0x00;
-                       
-                       pui32yuv[count++] = (y1 << 24) | (v << 16) | (y0 << 8) | u;
-@@ -115,19 +152,36 @@
-       
-       psSyncData = psBuffer->psSyncData;
--      
-       if(psSyncData)
-       {
-+              
-+              if(psSyncData->ui32ReadOpsPending != psSyncData->ui32ReadOpsComplete)
-+              {
-+                      return -1;
-+              }
-+
-+              
-               psSyncData->ui32WriteOpsPending++;
-       }
--      if(psBufferInfo->pixelformat == PVRSRV_PIXEL_FORMAT_RGB565)
--      {
--              FillRGB565Image(psBuffer->sCPUVAddr, BC_EXAMPLE_WIDTH, BC_EXAMPLE_HEIGHT, BC_EXAMPLE_STRIDE);
--      }
--      else
-+      switch(psBufferInfo->pixelformat)
-       {
--              FillYUV422Image(psBuffer->sCPUVAddr, BC_EXAMPLE_WIDTH, BC_EXAMPLE_HEIGHT, BC_EXAMPLE_STRIDE);
-+              case PVRSRV_PIXEL_FORMAT_RGB565:
-+              default:
-+              {
-+                      FillRGB565Image(psBuffer->sCPUVAddr, BC_EXAMPLE_WIDTH, BC_EXAMPLE_HEIGHT, BC_EXAMPLE_STRIDE);
-+                      break;
-+              }
-+              case PVRSRV_PIXEL_FORMAT_YVYU:
-+              {
-+                      FillYUV422Image(psBuffer->sCPUVAddr, BC_EXAMPLE_WIDTH, BC_EXAMPLE_HEIGHT, BC_EXAMPLE_STRIDE);
-+                      break;
-+              }
-+              case PVRSRV_PIXEL_FORMAT_YUV420:
-+              {
-+                      FillYUV420Image(psBuffer->sCPUVAddr, BC_EXAMPLE_WIDTH, BC_EXAMPLE_HEIGHT, BC_EXAMPLE_STRIDE);
-+                      break;
-+              }
-       }
-       
-diff -Nurd git/drivers/gpu/pvr/services4/3rdparty/bufferclass_example/kbuild/Makefile git/drivers/gpu/pvr/services4/3rdparty/bufferclass_example/kbuild/Makefile
---- git/drivers/gpu/pvr/services4/3rdparty/bufferclass_example/kbuild/Makefile 1970-01-01 01:00:00.000000000 +0100
-+++ git/drivers/gpu/pvr/services4/3rdparty/bufferclass_example/kbuild/Makefile 2008-12-18 15:47:29.000000000 +0100
-@@ -0,0 +1,40 @@
-+#
-+# Copyright(c) 2008 Imagination Technologies Ltd. All rights reserved.
-+# 
-+# This program is free software; you can redistribute it and/or modify it
-+# under the terms and conditions of the GNU General Public License,
-+# version 2, as published by the Free Software Foundation.
-+# 
-+# This program is distributed in the hope it will be useful but, except 
-+# as otherwise stated in writing, without any warranty; without even the 
-+# implied warranty of merchantability or fitness for a particular purpose. 
-+# See the GNU General Public License for more details.
-+# 
-+# You should have received a copy of the GNU General Public License along with
-+# this program; if not, write to the Free Software Foundation, Inc.,
-+# 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
-+# 
-+# The full GNU General Public License is included in this distribution in
-+# the file called "COPYING".
-+#
-+# Contact Information:
-+# Imagination Technologies Ltd. <gpl-support@imgtec.com>
-+# Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
-+# 
-+#
-+#
-+
-+MODULE                = bc_example
-+
-+INCLUDES =    -I$(EURASIAROOT)/include4 \
-+              -I$(EURASIAROOT)/services4/include \
-+              -I$(EURASIAROOT)/services4/system/$(PVR_SYSTEM) \
-+              -I$(EURASIAROOT)/services4/system/include \
-+
-+SOURCES =     ../bufferclass_example.c \
-+                      ../bufferclass_example_linux.c \
-+                      ../bufferclass_example_private.c
-+
-+
-+
-+
-diff -Nurd git/drivers/gpu/pvr/services4/3rdparty/dc_omap3430_linux/kbuild/Makefile git/drivers/gpu/pvr/services4/3rdparty/dc_omap3430_linux/kbuild/Makefile
---- git/drivers/gpu/pvr/services4/3rdparty/dc_omap3430_linux/kbuild/Makefile   1970-01-01 01:00:00.000000000 +0100
-+++ git/drivers/gpu/pvr/services4/3rdparty/dc_omap3430_linux/kbuild/Makefile   2008-12-18 15:47:29.000000000 +0100
-@@ -0,0 +1,39 @@
-+#
-+# Copyright(c) 2008 Imagination Technologies Ltd. All rights reserved.
-+# 
-+# This program is free software; you can redistribute it and/or modify it
-+# under the terms and conditions of the GNU General Public License,
-+# version 2, as published by the Free Software Foundation.
-+# 
-+# This program is distributed in the hope it will be useful but, except 
-+# as otherwise stated in writing, without any warranty; without even the 
-+# implied warranty of merchantability or fitness for a particular purpose. 
-+# See the GNU General Public License for more details.
-+# 
-+# You should have received a copy of the GNU General Public License along with
-+# this program; if not, write to the Free Software Foundation, Inc.,
-+# 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
-+# 
-+# The full GNU General Public License is included in this distribution in
-+# the file called "COPYING".
-+#
-+# Contact Information:
-+# Imagination Technologies Ltd. <gpl-support@imgtec.com>
-+# Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
-+# 
-+#
-+#
-+
-+MODULE                = omaplfb
-+
-+INCLUDES =    -I$(EURASIAROOT)/include4 \
-+              -I$(EURASIAROOT)/services4/include \
-+              -I$(EURASIAROOT)/services4/system/$(PVR_SYSTEM) \
-+              -I$(EURASIAROOT)/services4/system/include \
-+
-+SOURCES       =       ../omaplfb_displayclass.c \
-+                      ../omaplfb_linux.c
-+
-+
-+
-+
-diff -Nurd git/drivers/gpu/pvr/services4/3rdparty/dc_omap3430_linux/omaplfb_displayclass.c git/drivers/gpu/pvr/services4/3rdparty/dc_omap3430_linux/omaplfb_displayclass.c
---- git/drivers/gpu/pvr/services4/3rdparty/dc_omap3430_linux/omaplfb_displayclass.c    2009-01-05 20:00:44.000000000 +0100
-+++ git/drivers/gpu/pvr/services4/3rdparty/dc_omap3430_linux/omaplfb_displayclass.c    2008-12-18 15:47:29.000000000 +0100
-@@ -41,6 +41,7 @@
- #define DISPLAY_DEVICE_NAME "PowerVR OMAP Linux Display Driver"
- #define       DRIVER_PREFIX   "omaplfb"
-+//extern int omap2_disp_get_output_dev(int);
- static IMG_VOID *gpvAnchor;
-@@ -57,8 +58,6 @@
-                                                  PVR_POWER_STATE      eCurrentPowerState);
- #endif
--extern void omap_dispc_set_plane_base(int plane, IMG_UINT32 phys_addr);
--
- static PFN_DC_GET_PVRJTABLE pfnGetPVRJTable = IMG_NULL;
- static OMAPLFB_DEVINFO * GetAnchorPtr(IMG_VOID)
-@@ -124,28 +123,53 @@
- static PVRSRV_ERROR Flip(OMAPLFB_SWAPCHAIN *psSwapChain,
-                                                 IMG_UINT32 aPhyAddr)
- {
--      if (1 /* omap2_disp_get_output_dev(OMAP2_GRAPHICS) == OMAP2_OUTPUT_LCD */)
-+      IMG_UINT32 control;
-+      OMAPLFB_DEVINFO *psDevInfo;
-+
-+      psDevInfo = GetAnchorPtr();     
-+
-+      if (1) //omap2_disp_get_output_dev(OMAP2_GRAPHICS) == OMAP2_OUTPUT_LCD)
-       {
--                omap_dispc_set_plane_base(0, aPhyAddr);
-+              OMAPLFBVSyncWriteReg(psSwapChain, OMAPLCD_GFX_BA0, aPhyAddr);
-+
-+              OMAPLFBVSyncWriteReg(psSwapChain, OMAPLCD_GFX_BA1, aPhyAddr);
-+      
-+              control = OMAPLFBVSyncReadReg(psSwapChain, OMAPLCD_CONTROL);
-+              control |= OMAP_CONTROL_GOLCD;
-+              OMAPLFBVSyncWriteReg(psSwapChain, OMAPLCD_CONTROL, control);
-+              
-               return PVRSRV_OK;
-       }
-       else
--      if (0 /*omap2_disp_get_output_dev(OMAP2_GRAPHICS) == OMAP2_OUTPUT_TV*/)
-+      if (0) //omap2_disp_get_output_dev(OMAP2_GRAPHICS) == OMAP2_OUTPUT_TV)
-       {
--                omap_dispc_set_plane_base(0, aPhyAddr);
-+              OMAPLFBVSyncWriteReg(psSwapChain, OMAPLCD_GFX_BA0, aPhyAddr);
-+              OMAPLFBVSyncWriteReg(psSwapChain, OMAPLCD_GFX_BA1, aPhyAddr + psDevInfo->sFBInfo.ui32ByteStride);
-+      
-+              control = OMAPLFBVSyncReadReg(psSwapChain, OMAPLCD_CONTROL);
-+              control |= OMAP_CONTROL_GODIGITAL;
-+              OMAPLFBVSyncWriteReg(psSwapChain, OMAPLCD_CONTROL, control);
-+              
-               return PVRSRV_OK;
-       }
--
-+      
-       return PVRSRV_ERROR_INVALID_PARAMS;
- }
- static IMG_VOID EnableVSyncInterrupt(OMAPLFB_SWAPCHAIN *psSwapChain)
- {
--
-+      
-+      IMG_UINT32 ui32InterruptEnable  = OMAPLFBVSyncReadReg(psSwapChain, OMAPLCD_IRQENABLE);
-+      ui32InterruptEnable |= OMAPLCD_INTMASK_VSYNC;
-+      OMAPLFBVSyncWriteReg(psSwapChain, OMAPLCD_IRQENABLE, ui32InterruptEnable );
- }
- static IMG_VOID DisableVSyncInterrupt(OMAPLFB_SWAPCHAIN *psSwapChain)
- {
-+      
-+      IMG_UINT32 ui32InterruptEnable = OMAPLFBVSyncReadReg(psSwapChain, OMAPLCD_IRQENABLE);
-+      ui32InterruptEnable &= ~(OMAPLCD_INTMASK_VSYNC);
-+      OMAPLFBVSyncWriteReg(psSwapChain, OMAPLCD_IRQENABLE, ui32InterruptEnable);
- }
- static PVRSRV_ERROR OpenDCDevice(IMG_UINT32 ui32DeviceID,
-@@ -169,6 +193,7 @@
- #endif
-       );
-+      
-       memset(&psDevInfo->sLINNotifBlock, 0, sizeof(psDevInfo->sLINNotifBlock));
-       psDevInfo->sLINNotifBlock.notifier_call = FrameBufferEvents;
-@@ -363,6 +388,7 @@
-       PVR_UNREFERENCED_PARAMETER(ui32OEMFlags);       
-       PVR_UNREFERENCED_PARAMETER(pui32SwapChainID);
-       
-+      
-       if(!hDevice 
-       || !psDstSurfAttrib 
-       || !psSrcSurfAttrib 
-@@ -399,6 +425,7 @@
-       || psDstSurfAttrib->sDims.ui32Width != psDevInfo->sDisplayDim.ui32Width
-       || psDstSurfAttrib->sDims.ui32Height != psDevInfo->sDisplayDim.ui32Height)
-       {
-+              
-               return PVRSRV_ERROR_INVALID_PARAMS;
-       }               
-@@ -407,6 +434,7 @@
-       || psDstSurfAttrib->sDims.ui32Width != psSrcSurfAttrib->sDims.ui32Width
-       || psDstSurfAttrib->sDims.ui32Height != psSrcSurfAttrib->sDims.ui32Height)
-       {
-+              
-               return PVRSRV_ERROR_INVALID_PARAMS;
-       }               
-@@ -467,12 +495,21 @@
-       }
-       
-+      psSwapChain->pvRegs = ioremap(psDevInfo->psLINFBInfo->fix.mmio_start, psDevInfo->psLINFBInfo->fix.mmio_len);
-+
-+      if (psSwapChain->pvRegs == IMG_NULL)
-+      {
-+              printk(KERN_WARNING DRIVER_PREFIX ": Couldn't map registers needed for flipping\n");
-+              goto ErrorFreeVSyncItems;
-+      }
-+
-+      
-       unblank_display(psDevInfo);
-       if (OMAPLFBInstallVSyncISR(psSwapChain) != PVRSRV_OK)
-       {
-               printk(KERN_WARNING DRIVER_PREFIX ": ISR handler failed to register\n");
--              goto ErrorFreeVSyncItems;
-+              goto ErrorUnmapRegisters;
-       }
-               
-       EnableVSyncInterrupt(psSwapChain);
-@@ -485,6 +522,8 @@
-       return PVRSRV_OK;
-+ErrorUnmapRegisters:
-+      iounmap(psSwapChain->pvRegs);
- ErrorFreeVSyncItems:
-       OMAPLFBFreeKernelMem(psVSyncFlips);
- ErrorFreeBuffers:
-@@ -590,6 +629,9 @@
-       }
-       
-+      iounmap(psSwapChain->pvRegs);
-+
-+      
-       OMAPLFBFreeKernelMem(psSwapChain->psVSyncFlips);
-       OMAPLFBFreeKernelMem(psSwapChain->psBuffer);
-       OMAPLFBFreeKernelMem(psSwapChain);
-diff -Nurd git/drivers/gpu/pvr/services4/3rdparty/dc_omap3430_linux/omaplfb.h git/drivers/gpu/pvr/services4/3rdparty/dc_omap3430_linux/omaplfb.h
---- git/drivers/gpu/pvr/services4/3rdparty/dc_omap3430_linux/omaplfb.h 2009-01-05 20:00:44.000000000 +0100
-+++ git/drivers/gpu/pvr/services4/3rdparty/dc_omap3430_linux/omaplfb.h 2008-12-18 15:47:29.000000000 +0100
-@@ -121,6 +121,9 @@
-       IMG_UINT32 ui32RemoveIndex;
-       
-+      IMG_VOID *pvRegs;
-+
-+      
-       PVRSRV_DC_DISP2SRV_KMJTABLE     *psPVRJTable;
- } OMAPLFB_SWAPCHAIN;
-@@ -194,8 +197,8 @@
- IMG_VOID *OMAPLFBAllocKernelMem(IMG_UINT32 ui32Size);
- IMG_VOID OMAPLFBFreeKernelMem(IMG_VOID *pvMem);
--IMG_VOID OMAPLFBWriteReg(OMAPLFB_SWAPCHAIN *psSwapChain, IMG_UINT32 ui32Offset, IMG_UINT32 ui32Value);
--IMG_UINT32 OMAPLFBReadReg(OMAPLFB_SWAPCHAIN *psSwapChain, IMG_UINT32 ui32Offset);
-+IMG_VOID OMAPLFBVSyncWriteReg(OMAPLFB_SWAPCHAIN *psSwapChain, IMG_UINT32 ui32Offset, IMG_UINT32 ui32Value);
-+IMG_UINT32 OMAPLFBVSyncReadReg(OMAPLFB_SWAPCHAIN *psSwapChain, IMG_UINT32 ui32Offset);
- PVRSRV_ERROR OMAPLFBGetLibFuncAddr(IMG_CHAR *szFunctionName, PFN_DC_GET_PVRJTABLE *ppfnFuncTable);
- PVRSRV_ERROR OMAPLFBInstallVSyncISR (OMAPLFB_SWAPCHAIN *psSwapChain);
- PVRSRV_ERROR OMAPLFBUninstallVSyncISR(OMAPLFB_SWAPCHAIN *psSwapChain);
-diff -Nurd git/drivers/gpu/pvr/services4/3rdparty/dc_omap3430_linux/omaplfb_linux.c git/drivers/gpu/pvr/services4/3rdparty/dc_omap3430_linux/omaplfb_linux.c
---- git/drivers/gpu/pvr/services4/3rdparty/dc_omap3430_linux/omaplfb_linux.c   2009-01-05 20:00:44.000000000 +0100
-+++ git/drivers/gpu/pvr/services4/3rdparty/dc_omap3430_linux/omaplfb_linux.c   2008-12-18 15:47:29.000000000 +0100
-@@ -101,28 +100,57 @@
- }
- static void
--OMAPLFBVSyncISR(void *arg)
-+OMAPLFBVSyncISR(void *arg, struct pt_regs *regs)
- {
--      (void) OMAPLFBVSyncIHandler((OMAPLFB_SWAPCHAIN *)arg);
-+      OMAPLFB_SWAPCHAIN *psSwapChain= (OMAPLFB_SWAPCHAIN *)arg;
-+      
-+      (void) OMAPLFBVSyncIHandler(psSwapChain);
- }
--#define DISPC_IRQ_VSYNC 0x0002
--
- PVRSRV_ERROR OMAPLFBInstallVSyncISR(OMAPLFB_SWAPCHAIN *psSwapChain)
- {
--        if (omap_dispc_request_irq(DISPC_IRQ_VSYNC, OMAPLFBVSyncISR, psSwapChain) != 0)
--            return PVRSRV_ERROR_OUT_OF_MEMORY; /* not worth a proper mapping */
--
-+      if (1) //omap2_disp_get_output_dev(OMAP2_GRAPHICS) == OMAP2_OUTPUT_LCD)
-+       {
-+              if (omap_dispc_request_irq(DISPC_IRQ_VSYNC, OMAPLFBVSyncISR,
-+                                      psSwapChain) != 0)
-+              {
-+                      printk("request OMAPLCD IRQ failed");
-+                      return PVRSRV_ERROR_INIT_FAILURE;
-+              }
-+      }
-+      else
-+      if (0) //omap2_disp_get_output_dev(OMAP2_GRAPHICS) == OMAP2_OUTPUT_TV)
-+      {
-+              if (omap_dispc_request_irq(DISPC_IRQSTATUS_EVSYNC_EVEN|DISPC_IRQSTATUS_EVSYNC_ODD, OMAPLFBVSyncISR, psSwapChain) != 0)
-+              {
-+                      printk("request OMAPLCD IRQ failed");
-+                      return PVRSRV_ERROR_INIT_FAILURE;
-+              }
-+      }
-+              
-       return PVRSRV_OK;
- }
- PVRSRV_ERROR OMAPLFBUninstallVSyncISR (OMAPLFB_SWAPCHAIN *psSwapChain)
- {
--        omap_dispc_free_irq(DISPC_IRQ_VSYNC, OMAPLFBVSyncISR, psSwapChain);
-+      omap_dispc_free_irq(DISPC_IRQ_VSYNC, OMAPLFBVSyncISR, psSwapChain);
-+              
-+      return PVRSRV_OK;               
-+}
--      return PVRSRV_OK;
-+IMG_VOID OMAPLFBVSyncWriteReg(OMAPLFB_SWAPCHAIN *psSwapChain, IMG_UINT32 ui32Offset, IMG_UINT32 ui32Value)
-+{
-+      IMG_VOID *pvRegAddr = (IMG_VOID *)((IMG_UINT8 *)psSwapChain->pvRegs + ui32Offset);
-+
-+      
-+      writel(ui32Value, pvRegAddr);
-+}
-+
-+IMG_UINT32 OMAPLFBVSyncReadReg(OMAPLFB_SWAPCHAIN *psSwapChain, IMG_UINT32 ui32Offset)
-+{
-+      return readl((IMG_UINT8 *)psSwapChain->pvRegs + ui32Offset);
- }
- module_init(OMAPLFB_Init);
-diff -Nurd git/drivers/gpu/pvr/services4/include/pvr_bridge.h git/drivers/gpu/pvr/services4/include/pvr_bridge.h
---- git/drivers/gpu/pvr/services4/include/pvr_bridge.h 2009-01-05 20:00:44.000000000 +0100
-+++ git/drivers/gpu/pvr/services4/include/pvr_bridge.h 2008-12-18 15:47:29.000000000 +0100
-@@ -202,14 +202,14 @@
- #define PVRSRV_BRIDGE_EVENT_OBJECT_CMD_FIRST  (PVRSRV_BRIDGE_INITSRV_CMD_LAST+1)      
- #define PVRSRV_BRIDGE_EVENT_OBJECT_WAIT                       PVRSRV_IOWR(PVRSRV_BRIDGE_EVENT_OBJECT_CMD_FIRST+0)
--#define PVRSRV_BRIDGE_EVENT_OBJECT_CONNECT            PVRSRV_IOWR(PVRSRV_BRIDGE_EVENT_OBJECT_CMD_FIRST+1)
--#define PVRSRV_BRIDGE_EVENT_OBJECT_DISCONNECT PVRSRV_IOWR(PVRSRV_BRIDGE_EVENT_OBJECT_CMD_FIRST+2)
-+#define PVRSRV_BRIDGE_EVENT_OBJECT_OPEN                       PVRSRV_IOWR(PVRSRV_BRIDGE_EVENT_OBJECT_CMD_FIRST+1)
-+#define PVRSRV_BRIDGE_EVENT_OBJECT_CLOSE              PVRSRV_IOWR(PVRSRV_BRIDGE_EVENT_OBJECT_CMD_FIRST+2)
- #define PVRSRV_BRIDGE_EVENT_OBJECT_CMD_LAST           (PVRSRV_BRIDGE_EVENT_OBJECT_CMD_FIRST+2)
-       
- #define PVRSRV_BRIDGE_LAST_NON_DEVICE_CMD             (PVRSRV_BRIDGE_EVENT_OBJECT_CMD_LAST+1)
--#define PVRSRV_KERNAL_MODE_CLIENT                             1
-+#define PVRSRV_KERNEL_MODE_CLIENT                             1
- typedef struct PVRSRV_BRIDGE_RETURN_TAG
- {
-@@ -716,7 +716,7 @@
- typedef struct PVRSRV_BRIDGE_IN_PDUMP_DUMPPDDEVPADDR_TAG
- {
-       IMG_UINT32 ui32BridgeFlags; 
--      IMG_HANDLE *hKernelMemInfo;
-+      IMG_HANDLE hKernelMemInfo;
-       IMG_UINT32 ui32Offset;
-       IMG_DEV_PHYADDR sPDDevPAddr;
- }PVRSRV_BRIDGE_IN_PDUMP_DUMPPDDEVPADDR;
-@@ -1302,9 +1302,25 @@
- {
-       IMG_UINT32 ui32BridgeFlags; 
-       IMG_HANDLE      hOSEventKM;
--      IMG_UINT32  ui32MSTimeout;
- } PVRSRV_BRIDGE_IN_EVENT_OBJECT_WAIT;
-+typedef struct PVRSRV_BRIDGE_IN_EVENT_OBJECT_OPEN_TAG
-+{
-+      PVRSRV_EVENTOBJECT sEventObject;
-+} PVRSRV_BRIDGE_IN_EVENT_OBJECT_OPEN;
-+
-+typedef struct        PVRSRV_BRIDGE_OUT_EVENT_OBJECT_OPEN_TAG
-+{
-+      IMG_HANDLE hOSEvent;
-+      PVRSRV_ERROR eError;
-+} PVRSRV_BRIDGE_OUT_EVENT_OBJECT_OPEN;
-+
-+typedef struct PVRSRV_BRIDGE_IN_EVENT_OBJECT_CLOSE_TAG
-+{
-+      PVRSRV_EVENTOBJECT sEventObject;
-+      IMG_HANDLE hOSEventKM;
-+} PVRSRV_BRIDGE_IN_EVENT_OBJECT_CLOSE;
-+
- #if defined (__cplusplus)
- }
- #endif
-diff -Nurd git/drivers/gpu/pvr/services4/include/servicesint.h git/drivers/gpu/pvr/services4/include/servicesint.h
---- git/drivers/gpu/pvr/services4/include/servicesint.h        2009-01-05 20:00:44.000000000 +0100
-+++ git/drivers/gpu/pvr/services4/include/servicesint.h        2008-12-18 15:47:29.000000000 +0100
-@@ -38,16 +38,6 @@
- #define DRIVERNAME_MAXLENGTH  (100)
--#define EVENTOBJNAME_MAXLENGTH (50)
--
--
--typedef struct _PVRSRV_EVENTOBJECT_
--{
--      
--      IMG_CHAR        szName[EVENTOBJNAME_MAXLENGTH];
--      
--      IMG_HANDLE      hOSEventKM;
--} PVRSRV_EVENTOBJECT;
- typedef struct _PVRSRV_KERNEL_MEM_INFO_
-@@ -93,6 +83,13 @@
- } PVRSRV_KERNEL_SYNC_INFO;
-+typedef struct _PVRSRV_DEVICE_SYNC_OBJECT_
-+{
-+      IMG_UINT32                      ui32ReadOpPendingVal;
-+      IMG_DEV_VIRTADDR        sReadOpsCompleteDevVAddr;
-+      IMG_UINT32                      ui32WriteOpPendingVal;
-+      IMG_DEV_VIRTADDR        sWriteOpsCompleteDevVAddr;
-+} PVRSRV_DEVICE_SYNC_OBJECT;
- typedef struct _PVRSRV_SYNC_OBJECT
- {
-diff -Nurd git/drivers/gpu/pvr/services4/include/sgx_bridge.h git/drivers/gpu/pvr/services4/include/sgx_bridge.h
---- git/drivers/gpu/pvr/services4/include/sgx_bridge.h 2009-01-05 20:00:44.000000000 +0100
-+++ git/drivers/gpu/pvr/services4/include/sgx_bridge.h 2008-12-18 15:47:29.000000000 +0100
-@@ -70,8 +70,16 @@
- #define PVRSRV_BRIDGE_SGX_REGISTER_HW_RENDER_CONTEXT  PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+20)
- #define PVRSRV_BRIDGE_SGX_FLUSH_HW_RENDER_TARGET      PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+21)
- #define PVRSRV_BRIDGE_SGX_UNREGISTER_HW_RENDER_CONTEXT        PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+22)
-+#if defined(SGX_FEATURE_2D_HARDWARE)
-+#define PVRSRV_BRIDGE_SGX_SUBMIT2D                                    PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+23)
-+#define PVRSRV_BRIDGE_SGX_REGISTER_HW_2D_CONTEXT      PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+24)
-+#define PVRSRV_BRIDGE_SGX_UNREGISTER_HW_2D_CONTEXT    PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+25)
-+#endif
-+#define PVRSRV_BRIDGE_SGX_REGISTER_HW_TRANSFER_CONTEXT        PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+26)
-+#define PVRSRV_BRIDGE_SGX_UNREGISTER_HW_TRANSFER_CONTEXT      PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+27)
-+#define PVRSRV_BRIDGE_SGX_READ_HWPERF_COUNTERS                PVRSRV_IOWR(PVRSRV_BRIDGE_SGX_CMD_BASE+28)
--#define PVRSRV_BRIDGE_LAST_SGX_CMD (PVRSRV_BRIDGE_SGX_CMD_BASE+22)
-+#define PVRSRV_BRIDGE_LAST_SGX_CMD (PVRSRV_BRIDGE_SGX_CMD_BASE+28)
-  
- typedef struct PVRSRV_BRIDGE_IN_GETPHYSPAGEADDR
-@@ -161,8 +169,18 @@
- {
-       IMG_UINT32                              ui32BridgeFlags; 
-       IMG_HANDLE                              hDevCookie;
--      IMG_DEV_VIRTADDR                sHWRenderContextDevVAddr;
-+      PVRSRV_TRANSFER_SGX_KICK                        sKick;
- }PVRSRV_BRIDGE_IN_SUBMITTRANSFER;
-+
-+#if defined(SGX_FEATURE_2D_HARDWARE)
-+ 
-+typedef struct PVRSRV_BRIDGE_IN_SUBMIT2D_TAG
-+{
-+      IMG_UINT32                              ui32BridgeFlags; 
-+      IMG_HANDLE                              hDevCookie;
-+      PVRSRV_2D_SGX_KICK                              sKick;
-+} PVRSRV_BRIDGE_IN_SUBMIT2D;
-+#endif
- #endif
-  
-@@ -330,6 +348,33 @@
-       IMG_HANDLE hHWRenderContext;
- }PVRSRV_BRIDGE_OUT_SGX_REGISTER_HW_RENDER_CONTEXT;
-+typedef struct PVRSRV_BRIDGE_IN_SGX_UNREGISTER_HW_RENDER_CONTEXT_TAG
-+{
-+      IMG_UINT32 ui32BridgeFlags; 
-+      IMG_HANDLE hDevCookie;
-+      IMG_HANDLE hHWRenderContext;
-+}PVRSRV_BRIDGE_IN_SGX_UNREGISTER_HW_RENDER_CONTEXT;
-+
-+typedef struct PVRSRV_BRIDGE_IN_SGX_REGISTER_HW_TRANSFER_CONTEXT_TAG
-+{
-+      IMG_UINT32 ui32BridgeFlags; 
-+      IMG_HANDLE hDevCookie;
-+      IMG_DEV_VIRTADDR sHWTransferContextDevVAddr;
-+}PVRSRV_BRIDGE_IN_SGX_REGISTER_HW_TRANSFER_CONTEXT;
-+
-+typedef struct PVRSRV_BRIDGE_OUT_SGX_REGISTER_HW_TRANSFER_CONTEXT_TAG
-+{
-+      PVRSRV_ERROR eError;
-+      IMG_HANDLE hHWTransferContext;
-+}PVRSRV_BRIDGE_OUT_SGX_REGISTER_HW_TRANSFER_CONTEXT;
-+
-+typedef struct PVRSRV_BRIDGE_IN_SGX_UNREGISTER_HW_TRANSFER_CONTEXT_TAG
-+{
-+      IMG_UINT32 ui32BridgeFlags; 
-+      IMG_HANDLE hDevCookie;
-+      IMG_HANDLE hHWTransferContext;
-+}PVRSRV_BRIDGE_IN_SGX_UNREGISTER_HW_TRANSFER_CONTEXT;
-+
- typedef struct PVRSRV_BRIDGE_IN_SGX_FLUSH_HW_RENDER_TARGET_TAG
- {
-       IMG_UINT32 ui32BridgeFlags; 
-@@ -337,18 +382,54 @@
-       IMG_DEV_VIRTADDR sHWRTDataSetDevVAddr;
- }PVRSRV_BRIDGE_IN_SGX_FLUSH_HW_RENDER_TARGET;
--typedef struct PVRSRV_BRIDGE_IN_SGX_UNREGISTER_HW_RENDER_CONTEXT_TAG
-+ 
-+#if defined(SGX_FEATURE_2D_HARDWARE)
-+typedef struct PVRSRV_BRIDGE_IN_SGX_REGISTER_HW_2D_CONTEXT_TAG
- {
-       IMG_UINT32 ui32BridgeFlags; 
-       IMG_HANDLE hDevCookie;
--      IMG_HANDLE hHWRenderContext;
--}PVRSRV_BRIDGE_IN_SGX_UNREGISTER_HW_RENDER_CONTEXT;
-+      IMG_DEV_VIRTADDR sHW2DContextDevVAddr;
-+}PVRSRV_BRIDGE_IN_SGX_REGISTER_HW_2D_CONTEXT;
-+
-+typedef struct PVRSRV_BRIDGE_OUT_SGX_REGISTER_HW_2D_CONTEXT_TAG
-+{
-+      PVRSRV_ERROR eError;
-+      IMG_HANDLE hHW2DContext;
-+}PVRSRV_BRIDGE_OUT_SGX_REGISTER_HW_2D_CONTEXT;
-+
-+typedef struct PVRSRV_BRIDGE_IN_SGX_UNREGISTER_HW_2D_CONTEXT_TAG
-+{
-+      IMG_UINT32 ui32BridgeFlags; 
-+      IMG_HANDLE hDevCookie;
-+      IMG_HANDLE hHW2DContext;
-+}PVRSRV_BRIDGE_IN_SGX_UNREGISTER_HW_2D_CONTEXT;
-- 
--#if defined(SGX_FEATURE_2D_HARDWARE)
- #define       SGX2D_MAX_BLT_CMD_SIZ           256     
- #endif 
-+
-+typedef struct PVRSRV_BRIDGE_IN_SGX_READ_HWPERF_COUNTERS_TAG
-+{
-+      IMG_UINT32              ui32BridgeFlags; 
-+      IMG_HANDLE              hDevCookie;
-+      IMG_UINT32              ui32PerfReg;
-+      IMG_BOOL                bNewPerf;
-+      IMG_UINT32              ui32NewPerf;
-+      IMG_UINT32              ui32NewPerfReset;
-+      IMG_UINT32              ui32PerfCountersReg;
-+} PVRSRV_BRIDGE_IN_SGX_READ_HWPERF_COUNTERS;
-+
-+typedef struct PVRSRV_BRIDGE_OUT_SGX_READ_HWPERF_COUNTERS_TAG
-+{
-+      PVRSRV_ERROR    eError;
-+      IMG_UINT32              ui32OldPerf;
-+      IMG_UINT32              aui32Counters[PVRSRV_SGX_HWPERF_NUM_COUNTERS];
-+      IMG_UINT32              ui32KickTACounter;
-+      IMG_UINT32              ui32KickTARenderCounter;
-+      IMG_UINT32              ui32CPUTime;
-+      IMG_UINT32              ui32SGXTime;
-+} PVRSRV_BRIDGE_OUT_SGX_READ_HWPERF_COUNTERS;
-+
- #if defined (__cplusplus)
- }
- #endif
-diff -Nurd git/drivers/gpu/pvr/services4/include/sgx_bridge_km.h git/drivers/gpu/pvr/services4/include/sgx_bridge_km.h
---- git/drivers/gpu/pvr/services4/include/sgx_bridge_km.h      2009-01-05 20:00:44.000000000 +0100
-+++ git/drivers/gpu/pvr/services4/include/sgx_bridge_km.h      1970-01-01 01:00:00.000000000 +0100
-@@ -1,139 +0,0 @@
--/**********************************************************************
-- *
-- * Copyright(c) 2008 Imagination Technologies Ltd. All rights reserved.
-- * 
-- * This program is free software; you can redistribute it and/or modify it
-- * under the terms and conditions of the GNU General Public License,
-- * version 2, as published by the Free Software Foundation.
-- * 
-- * This program is distributed in the hope it will be useful but, except 
-- * as otherwise stated in writing, without any warranty; without even the 
-- * implied warranty of merchantability or fitness for a particular purpose. 
-- * See the GNU General Public License for more details.
-- * 
-- * You should have received a copy of the GNU General Public License along with
-- * this program; if not, write to the Free Software Foundation, Inc.,
-- * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
-- * 
-- * The full GNU General Public License is included in this distribution in
-- * the file called "COPYING".
-- *
-- * Contact Information:
-- * Imagination Technologies Ltd. <gpl-support@imgtec.com>
-- * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
-- *
-- ******************************************************************************/
--
--#if !defined(__SGX_BRIDGE_KM_H__)
--#define __SGX_BRIDGE_KM_H__
--
--#include "sgxapi_km.h"
--#include "sgxinfo.h"
--#include "sgxinfokm.h"
--#include "sgx_bridge.h"
--#include "pvr_bridge.h"
--#include "perproc.h"
--
--#if defined (__cplusplus)
--extern "C" {
--#endif
--
--IMG_IMPORT
--PVRSRV_ERROR SGXSubmitTransferKM(IMG_HANDLE hDevHandle,
--                                                               IMG_DEV_VIRTADDR sHWRenderContextDevVAddr);
--
--IMG_IMPORT
--PVRSRV_ERROR SGXDoKickKM(IMG_HANDLE hDevHandle,
--                                               PVR3DIF4_CCB_KICK *psCCBKick);
--
--IMG_IMPORT
--PVRSRV_ERROR SGXGetPhysPageAddrKM(IMG_HANDLE hDevMemHeap,
--                                                                IMG_DEV_VIRTADDR sDevVAddr,
--                                                                IMG_DEV_PHYADDR *pDevPAddr,
--                                                                IMG_CPU_PHYADDR *pCpuPAddr);
--
--IMG_IMPORT
--PVRSRV_ERROR IMG_CALLCONV SGXGetMMUPDAddrKM(IMG_HANDLE                hDevCookie,
--                                                                                      IMG_HANDLE              hDevMemContext,
--                                                                                      IMG_DEV_PHYADDR *psPDDevPAddr);
--
--IMG_IMPORT
--PVRSRV_ERROR SGXGetClientInfoKM(IMG_HANDLE                            hDevCookie,
--                                                              PVR3DIF4_CLIENT_INFO*   psClientInfo);
--
--IMG_IMPORT
--PVRSRV_ERROR SGXGetMiscInfoKM(PVRSRV_SGXDEV_INFO      *psDevInfo,
--                                                        SGX_MISC_INFO                 *psMiscInfo);
--
--#if defined(SGX_FEATURE_2D_HARDWARE)
--IMG_IMPORT
--PVRSRV_ERROR SGX2DQueueBlitKM(PVRSRV_SGXDEV_INFO              *psDevInfo,
--                                                        PVRSRV_KERNEL_SYNC_INFO       *psDstSync,
--                                                        IMG_UINT32            ui32NumSrcSyncs,
--                                                        PVRSRV_KERNEL_SYNC_INFO *apsSrcSync[],
--                                                        IMG_UINT32            ui32DataByteSize,
--                                                        IMG_UINT32            *pui32BltData);
--
--#if defined(SGX2D_DIRECT_BLITS)
--IMG_IMPORT
--PVRSRV_ERROR SGX2DDirectBlitKM(PVRSRV_SGXDEV_INFO     *psDevInfo,
--                                                         IMG_UINT32                   ui32DataByteSize,
--                                                         IMG_UINT32                   *pui32BltData);
--#endif 
--#endif 
--
--#if defined(SGX_FEATURE_2D_HARDWARE) || defined(PVR2D_ALT_2DHW)
--IMG_IMPORT
--PVRSRV_ERROR SGX2DQueryBlitsCompleteKM(PVRSRV_SGXDEV_INFO             *psDevInfo,
--                                                                         PVRSRV_KERNEL_SYNC_INFO      *psSyncInfo,
--                                                                         IMG_BOOL bWaitForComplete);
--#endif 
--
--IMG_IMPORT
--PVRSRV_ERROR SGXGetInfoForSrvinitKM(IMG_HANDLE hDevHandle,
--                                                                      SGX_BRIDGE_INFO_FOR_SRVINIT *psInitInfo);
--
--IMG_IMPORT
--PVRSRV_ERROR DevInitSGXPart2KM(PVRSRV_PER_PROCESS_DATA *psPerProc,
--                                                         IMG_HANDLE hDevHandle,
--                                                         SGX_BRIDGE_INIT_INFO *psInitInfo);
--
--IMG_IMPORT PVRSRV_ERROR
--SGXFindSharedPBDescKM(IMG_HANDLE hDevCookie,
--                                        IMG_UINT32 ui32TotalPBSize,
--                                        IMG_HANDLE *phSharedPBDesc,
--                                        PVRSRV_KERNEL_MEM_INFO **ppsSharedPBDescKernelMemInfo,
--                                        PVRSRV_KERNEL_MEM_INFO **ppsHWPBDescKernelMemInfo,
--                                        PVRSRV_KERNEL_MEM_INFO **ppsBlockKernelMemInfo,
--                                        PVRSRV_KERNEL_MEM_INFO ***pppsSharedPBDescSubKernelMemInfos,
--                                        IMG_UINT32 *ui32SharedPBDescSubKernelMemInfosCount);
--
--IMG_IMPORT PVRSRV_ERROR
--SGXUnrefSharedPBDescKM(IMG_HANDLE hSharedPBDesc);
--
--IMG_IMPORT PVRSRV_ERROR
--SGXAddSharedPBDescKM(IMG_HANDLE hDevCookie,
--                                       PVRSRV_KERNEL_MEM_INFO *psSharedPBDescKernelMemInfo,
--                                       PVRSRV_KERNEL_MEM_INFO *psHWPBDescKernelMemInfo,
--                                       PVRSRV_KERNEL_MEM_INFO *psBlockKernelMemInfo,
--                                       IMG_UINT32 ui32TotalPBSize,
--                                       IMG_HANDLE *phSharedPBDesc,
--                                       PVRSRV_KERNEL_MEM_INFO **psSharedPBDescSubKernelMemInfos,
--                                       IMG_UINT32 ui32SharedPBDescSubKernelMemInfosCount);
--
--
--IMG_IMPORT PVRSRV_ERROR
--SGXGetInternalDevInfoKM(IMG_HANDLE hDevCookie,
--                                              PVR3DIF4_INTERNAL_DEVINFO *psSGXInternalDevInfo);
--
-- 
--#if defined(SGX_FEATURE_2D_HARDWARE)
--#define       SGX2D_MAX_BLT_CMD_SIZ           256     
--#endif 
--
--#if defined (__cplusplus)
--}
--#endif
--
--#endif 
--
-diff -Nurd git/drivers/gpu/pvr/services4/include/sgxinfo.h git/drivers/gpu/pvr/services4/include/sgxinfo.h
---- git/drivers/gpu/pvr/services4/include/sgxinfo.h    2009-01-05 20:00:44.000000000 +0100
-+++ git/drivers/gpu/pvr/services4/include/sgxinfo.h    2008-12-18 15:47:29.000000000 +0100
-@@ -59,11 +59,16 @@
- #if defined(SGX_SUPPORT_HWPROFILING)
-       IMG_HANDLE      hKernelHWProfilingMemInfo;
- #endif
-+#if defined(SUPPORT_SGX_HWPERF)
-+      IMG_HANDLE      hKernelHWPerfCBMemInfo;
-+#endif
-       IMG_UINT32 ui32EDMTaskReg0;
-       IMG_UINT32 ui32EDMTaskReg1;
--      IMG_UINT32 ui32ClockGateMask;
-+      IMG_UINT32 ui32ClkGateCtl;
-+      IMG_UINT32 ui32ClkGateCtl2;
-+      IMG_UINT32 ui32ClkGateStatusMask;
-       IMG_UINT32 ui32CacheControl;
-@@ -111,11 +116,13 @@
- #define PVRSRV_CCBFLAGS_RASTERCMD                     0x1
- #define PVRSRV_CCBFLAGS_TRANSFERCMD                   0x2
- #define PVRSRV_CCBFLAGS_PROCESS_QUEUESCMD     0x3
-+#if defined(SGX_FEATURE_2D_HARDWARE) 
-+#define PVRSRV_CCBFLAGS_2DCMD                         0x4 
-+#endif
- #define PVRSRV_KICKFLAG_RENDER                                0x1
- #define PVRSRV_KICKFLAG_PIXEL                         0x2
--
- #define       SGX_BIF_INVALIDATE_PTCACHE      0x1
- #define       SGX_BIF_INVALIDATE_PDCACHE      0x2
-@@ -125,25 +132,40 @@
-       PVRSRV_SGX_COMMAND_TYPE         eCommand;
-       PVRSRV_SGX_COMMAND              sCommand;
-       IMG_HANDLE                      hCCBKernelMemInfo;
--      IMG_HANDLE                      hDstKernelSyncInfo;
--      IMG_UINT32                      ui32DstReadOpsPendingOffset;
--      IMG_UINT32                      ui32DstWriteOpsPendingOffset;
-+      IMG_HANDLE      hRenderSurfSyncInfo;
-+
-       IMG_UINT32      ui32NumTAStatusVals;
--      IMG_UINT32      aui32TAStatusValueOffset[SGX_MAX_TA_STATUS_VALS];
-       IMG_HANDLE      ahTAStatusSyncInfo[SGX_MAX_TA_STATUS_VALS];
-       IMG_UINT32      ui32Num3DStatusVals;
--      IMG_UINT32      aui323DStatusValueOffset[SGX_MAX_3D_STATUS_VALS];
-       IMG_HANDLE      ah3DStatusSyncInfo[SGX_MAX_3D_STATUS_VALS];
--#ifdef        NO_HARDWARE
--      IMG_BOOL        bTerminate;
--      IMG_HANDLE      hUpdateDstKernelSyncInfo;
-+
-+      IMG_BOOL        bFirstKickOrResume;
-+#if (defined(NO_HARDWARE) || defined(PDUMP))
-+      IMG_BOOL        bTerminateOrAbort;
-+#endif
-+      IMG_UINT32      ui32KickFlags;
-+
-+      
-+      IMG_UINT32      ui32CCBOffset;
-+
-+      
-+      IMG_UINT32      ui32NumSrcSyncs;
-+      IMG_HANDLE      ahSrcKernelSyncInfo[SGX_MAX_SRC_SYNCS];
-+
-+      
-+      IMG_BOOL        bTADependency;
-+      IMG_HANDLE      hTA3DSyncInfo;
-+
-+      IMG_HANDLE      hTASyncInfo;
-+      IMG_HANDLE      h3DSyncInfo;
-+#if defined(NO_HARDWARE)
-       IMG_UINT32      ui32WriteOpsPendingVal;
- #endif
--      IMG_UINT32                                      ui32KickFlags;
- } PVR3DIF4_CCB_KICK;
-+
- typedef struct _PVRSRV_SGX_HOST_CTL_
- {     
-@@ -158,163 +180,25 @@
-       IMG_UINT32                              ui32ResManFlags;                
-       IMG_DEV_VIRTADDR                sResManCleanupData;             
-+      
-       IMG_DEV_VIRTADDR                sTAHWPBDesc;            
-       IMG_DEV_VIRTADDR                s3DHWPBDesc;
-+      IMG_DEV_VIRTADDR                sHostHWPBDesc;          
--} PVRSRV_SGX_HOST_CTL;
--
--
--#if defined(SUPPORT_HW_RECOVERY)
--typedef struct _SGX_INIT_SCRIPT_DATA
--{
--      IMG_UINT32 asHWRecoveryData[SGX_MAX_DEV_DATA];
--} SGX_INIT_SCRIPT_DATA;
--#endif
--
--typedef struct _PVRSRV_SGXDEV_INFO_
--{
--      PVRSRV_DEVICE_TYPE              eDeviceType;
--      PVRSRV_DEVICE_CLASS             eDeviceClass;
--
--      IMG_UINT8                               ui8VersionMajor;
--      IMG_UINT8                               ui8VersionMinor;
--      IMG_UINT32                              ui32CoreConfig;
--      IMG_UINT32                              ui32CoreFlags;
--
--      
--      IMG_PVOID                               pvRegsBaseKM;
--      
--
--      
--      IMG_HANDLE                              hRegMapping;
--
--      
--      IMG_SYS_PHYADDR                 sRegsPhysBase;
--      
--      IMG_UINT32                              ui32RegSize;
--
--      
--      IMG_UINT32                              ui32CoreClockSpeed;
--
--#if defined(SGX_FEATURE_2D_HARDWARE)
--      
--      SGX_SLAVE_PORT                  s2DSlavePortKM;
--
--      
--      PVRSRV_RESOURCE                 s2DSlaveportResource;
--
--      
--      IMG_UINT32                      ui322DFifoSize;
--      IMG_UINT32                      ui322DFifoOffset;
--      
--      IMG_HANDLE                      h2DCmdCookie;
--      
--      IMG_HANDLE                      h2DQueue;
--      IMG_BOOL                        b2DHWRecoveryInProgress;
--      IMG_BOOL                        b2DHWRecoveryEndPending;
--      IMG_UINT32                      ui322DCompletedBlits;
--      IMG_BOOL                        b2DLockupSuspected;
--#endif
--      
--    
--      IMG_VOID                        *psStubPBDescListKM;
--
--
--      
--      IMG_DEV_PHYADDR                 sKernelPDDevPAddr;
--
--      IMG_VOID                                *pvDeviceMemoryHeap;
--      PPVRSRV_KERNEL_MEM_INFO psKernelCCBMemInfo;                     
--      PVRSRV_SGX_KERNEL_CCB   *psKernelCCB;                   
--      PPVRSRV_SGX_CCB_INFO    psKernelCCBInfo;                
--      PPVRSRV_KERNEL_MEM_INFO psKernelCCBCtlMemInfo;  
--      PVRSRV_SGX_CCB_CTL              *psKernelCCBCtl;                
--      PPVRSRV_KERNEL_MEM_INFO psKernelCCBEventKickerMemInfo; 
--      IMG_UINT32                              *pui32KernelCCBEventKicker; 
--      IMG_UINT32                              ui32TAKickAddress;              
--      IMG_UINT32                              ui32TexLoadKickAddress; 
--      IMG_UINT32                              ui32VideoHandlerAddress;
--#if defined(SGX_SUPPORT_HWPROFILING)
--      PPVRSRV_KERNEL_MEM_INFO psKernelHWProfilingMemInfo;
--#endif
--
--      
--      IMG_UINT32                              ui32ClientRefCount;
--
--      
--      IMG_UINT32                              ui32CacheControl;
--
--      
--
--
--      IMG_VOID                                *pvMMUContextList;
--
--      
--      IMG_BOOL                                bForcePTOff;
--
--      IMG_UINT32                              ui32EDMTaskReg0;
--      IMG_UINT32                              ui32EDMTaskReg1;
--
--      IMG_UINT32                              ui32ClockGateMask;
--      SGX_INIT_SCRIPTS                sScripts;
--#if defined(SUPPORT_HW_RECOVERY)
--      SGX_INIT_SCRIPT_DATA    sScriptData;
--#endif
--              
--      IMG_HANDLE                              hBIFResetPDOSMemHandle;
--      IMG_DEV_PHYADDR                 sBIFResetPDDevPAddr;
--      IMG_DEV_PHYADDR                 sBIFResetPTDevPAddr;
--      IMG_DEV_PHYADDR                 sBIFResetPageDevPAddr;
--      IMG_UINT32                              *pui32BIFResetPD;
--      IMG_UINT32                              *pui32BIFResetPT;
--
--
--
--#if defined(SUPPORT_HW_RECOVERY)
--      
--      IMG_HANDLE                              hTimer;
--      
--      IMG_UINT32                              ui32TimeStamp;
--#endif
--
--      
--      IMG_UINT32                              ui32NumResets;
--
--      PVRSRV_KERNEL_MEM_INFO                  *psKernelSGXHostCtlMemInfo;
--      PVRSRV_SGX_HOST_CTL                             *psSGXHostCtl; 
--
--      IMG_UINT32                              ui32Flags;
--
--      
--      IMG_UINT32                              ui32RegFlags;
--
--      #if defined(PDUMP)
--      PVRSRV_SGX_PDUMP_CONTEXT        sPDContext;
--      #endif
-+      IMG_UINT32                              ui32NumActivePowerEvents;        
--#if defined(SUPPORT_SGX_MMU_DUMMY_PAGE)
--      
--      IMG_VOID                                *pvDummyPTPageCpuVAddr;
--      IMG_DEV_PHYADDR                 sDummyPTDevPAddr;
--      IMG_HANDLE                              hDummyPTPageOSMemHandle;
--      IMG_VOID                                *pvDummyDataPageCpuVAddr;
--      IMG_DEV_PHYADDR                 sDummyDataDevPAddr;
--      IMG_HANDLE                              hDummyDataPageOSMemHandle;
-+#if defined(SUPPORT_SGX_HWPERF)
-+      IMG_UINT32                      ui32HWPerfFlags;                
- #endif
--      IMG_UINT32                              asSGXDevData[SGX_MAX_DEV_DATA]; 
--#if defined(SUPPORT_SGX_EVENT_OBJECT)
--      PVRSRV_EVENTOBJECT      *psSGXEventObject;
--#endif
-+       
-+      IMG_UINT32                      ui32TimeWraps;
-+} PVRSRV_SGX_HOST_CTL;
--} PVRSRV_SGXDEV_INFO;
- typedef struct _PVR3DIF4_CLIENT_INFO_
- {
--      IMG_VOID                                        *pvRegsBase;                    
--      IMG_HANDLE                                      hBlockMapping;                  
--      SGX_SLAVE_PORT                          s2DSlavePort;                   
-       IMG_UINT32                                      ui32ProcessID;                  
-       IMG_VOID                                        *pvProcess;                             
-       PVRSRV_MISC_INFO                        sMiscInfo;                              
-@@ -330,13 +214,9 @@
- typedef struct _PVR3DIF4_INTERNAL_DEVINFO_
- {
-       IMG_UINT32                      ui32Flags;
--      IMG_BOOL                        bTimerEnable;
-       IMG_HANDLE                      hCtlKernelMemInfoHandle;
-       IMG_BOOL                        bForcePTOff;
-       IMG_UINT32                      ui32RegFlags;
--#if defined(SUPPORT_SGX_EVENT_OBJECT)
--      IMG_HANDLE                      hOSEvent;               
--#endif
- } PVR3DIF4_INTERNAL_DEVINFO;
- typedef struct _PVRSRV_SGX_SHARED_CCB_
-@@ -371,5 +251,150 @@
-       #endif
- }PVRSRV_SGX_CCB;
-+typedef struct _CTL_STATUS_
-+{
-+      IMG_DEV_VIRTADDR        sStatusDevAddr;
-+      IMG_UINT32              ui32StatusValue;
-+} CTL_STATUS, *PCTL_STATUS;
-+
-+#if defined(TRANSFER_QUEUE)
-+#define SGXTQ_MAX_STATUS 5
-+typedef struct _PVR3DIF4_CMDTA_SHARED_
-+{
-+      IMG_UINT32                      ui32NumTAStatusVals;
-+      IMG_UINT32                      ui32Num3DStatusVals;
-+      
-+      
-+      IMG_UINT32                      ui32WriteOpsPendingVal;
-+      IMG_DEV_VIRTADDR                sWriteOpsCompleteDevVAddr;
-+      IMG_UINT32                      ui32ReadOpsPendingVal;
-+      IMG_DEV_VIRTADDR                sReadOpsCompleteDevVAddr;
-+
-+      
-+      IMG_UINT32                      ui32TQSyncWriteOpsPendingVal;
-+      IMG_DEV_VIRTADDR                sTQSyncWriteOpsCompleteDevVAddr;
-+      IMG_UINT32                      ui32TQSyncReadOpsPendingVal;
-+      IMG_DEV_VIRTADDR                sTQSyncReadOpsCompleteDevVAddr;
-+
-+      
-+      IMG_UINT32                      ui323DTQSyncWriteOpsPendingVal;
-+      IMG_DEV_VIRTADDR                s3DTQSyncWriteOpsCompleteDevVAddr;
-+      IMG_UINT32                      ui323DTQSyncReadOpsPendingVal;
-+      IMG_DEV_VIRTADDR                s3DTQSyncReadOpsCompleteDevVAddr;
-+      
-+      
-+      IMG_UINT32                      ui32NumSrcSyncs;
-+      PVRSRV_DEVICE_SYNC_OBJECT       asSrcSyncs[SGX_MAX_SRC_SYNCS];
-+
-+      CTL_STATUS                      sCtlTAStatusInfo[SGX_MAX_TA_STATUS_VALS];
-+      CTL_STATUS                      sCtl3DStatusInfo[SGX_MAX_3D_STATUS_VALS];
-+      
-+      PVRSRV_DEVICE_SYNC_OBJECT       sTA3DDependancy;        
-+      
-+} PVR3DIF4_CMDTA_SHARED;
-+
-+typedef struct _PVR3DIF4_TRANSFERCMD_SHARED_
-+{
-+      
-+      
-+      IMG_UINT32              ui32SrcReadOpPendingVal;
-+      IMG_DEV_VIRTADDR        sSrcReadOpsCompleteDevAddr;
-+      
-+      IMG_UINT32              ui32SrcWriteOpPendingVal;
-+      IMG_DEV_VIRTADDR        sSrcWriteOpsCompleteDevAddr;
-+
-+      
-+      
-+      IMG_UINT32              ui32DstReadOpPendingVal;
-+      IMG_DEV_VIRTADDR        sDstReadOpsCompleteDevAddr;
-+      
-+      IMG_UINT32              ui32DstWriteOpPendingVal;
-+      IMG_DEV_VIRTADDR        sDstWriteOpsCompleteDevAddr;
-+
-+      
-+      IMG_UINT32              ui32TASyncWriteOpsPendingVal;
-+      IMG_DEV_VIRTADDR        sTASyncWriteOpsCompleteDevVAddr;
-+      IMG_UINT32              ui32TASyncReadOpsPendingVal;
-+      IMG_DEV_VIRTADDR        sTASyncReadOpsCompleteDevVAddr;
-+
-+      
-+      IMG_UINT32              ui323DSyncWriteOpsPendingVal;
-+      IMG_DEV_VIRTADDR        s3DSyncWriteOpsCompleteDevVAddr;
-+      IMG_UINT32              ui323DSyncReadOpsPendingVal;
-+      IMG_DEV_VIRTADDR        s3DSyncReadOpsCompleteDevVAddr;
-+
-+      IMG_UINT32              ui32NumStatusVals;
-+      CTL_STATUS              sCtlStatusInfo[SGXTQ_MAX_STATUS];
-+
-+      IMG_UINT32              ui32NumSrcSync;
-+      IMG_UINT32              ui32NumDstSync;
-+
-+      IMG_DEV_VIRTADDR        sSrcWriteOpsDevVAddr[SGX_MAX_TRANSFER_SYNC_OPS];
-+      IMG_DEV_VIRTADDR        sSrcReadOpsDevVAddr[SGX_MAX_TRANSFER_SYNC_OPS];
-+
-+      IMG_DEV_VIRTADDR        sDstWriteOpsDevVAddr[SGX_MAX_TRANSFER_SYNC_OPS];
-+      IMG_DEV_VIRTADDR        sDstReadOpsDevVAddr[SGX_MAX_TRANSFER_SYNC_OPS];
-+} PVR3DIF4_TRANSFERCMD_SHARED, *PPVR3DIF4_TRANSFERCMD_SHARED;
-+
-+typedef struct _PVRSRV_TRANSFER_SGX_KICK_
-+{
-+      IMG_HANDLE              hCCBMemInfo;
-+      IMG_UINT32              ui32SharedCmdCCBOffset;
-+
-+      IMG_DEV_VIRTADDR        sHWTransferContextDevVAddr;
-+
-+      IMG_HANDLE              hTASyncInfo;
-+      IMG_HANDLE              h3DSyncInfo;
-+
-+      IMG_UINT32              ui32NumSrcSync;
-+      IMG_HANDLE              ahSrcSyncInfo[SGX_MAX_TRANSFER_SYNC_OPS];
-+
-+      IMG_UINT32              ui32NumDstSync;
-+      IMG_HANDLE              ahDstSyncInfo[SGX_MAX_TRANSFER_SYNC_OPS];
-+
-+      IMG_UINT32              ui32StatusFirstSync;
-+} PVRSRV_TRANSFER_SGX_KICK, *PPVRSRV_TRANSFER_SGX_KICK;
-+
-+#if defined(SGX_FEATURE_2D_HARDWARE)
-+typedef struct _PVR3DIF4_2DCMD_SHARED_ {
-+      
-+      IMG_UINT32                      ui32NumSrcSync;
-+      PVRSRV_DEVICE_SYNC_OBJECT       sSrcSyncData[SGX_MAX_2D_SRC_SYNC_OPS];
-+      
-+      
-+      PVRSRV_DEVICE_SYNC_OBJECT       sDstSyncData;
-+      
-+      
-+      PVRSRV_DEVICE_SYNC_OBJECT       sTASyncData;
-+      
-+      
-+      PVRSRV_DEVICE_SYNC_OBJECT       s3DSyncData;
-+} PVR3DIF4_2DCMD_SHARED, *PPVR3DIF4_2DCMD_SHARED;
-+
-+typedef struct _PVRSRV_2D_SGX_KICK_
-+{
-+      IMG_HANDLE              hCCBMemInfo;
-+      IMG_UINT32              ui32SharedCmdCCBOffset;
-+
-+      IMG_DEV_VIRTADDR        sHW2DContextDevVAddr;
-+
-+      IMG_UINT32              ui32NumSrcSync;
-+      IMG_HANDLE              ahSrcSyncInfo[SGX_MAX_2D_SRC_SYNC_OPS];
-+      
-+      
-+      IMG_HANDLE              hDstSyncInfo;
-+      
-+      
-+      IMG_HANDLE              hTASyncInfo;
-+      
-+      
-+      IMG_HANDLE              h3DSyncInfo;
-+      
-+} PVRSRV_2D_SGX_KICK, *PPVRSRV_2D_SGX_KICK;
-+#endif        
-+#endif        
-+
-+#define PVRSRV_SGX_HWPERF_NUM_COUNTERS        9
-+
- #endif 
-diff -Nurd git/drivers/gpu/pvr/services4/srvkm/bridged/bridged_pvr_bridge.c git/drivers/gpu/pvr/services4/srvkm/bridged/bridged_pvr_bridge.c
---- git/drivers/gpu/pvr/services4/srvkm/bridged/bridged_pvr_bridge.c   2009-01-05 20:00:44.000000000 +0100
-+++ git/drivers/gpu/pvr/services4/srvkm/bridged/bridged_pvr_bridge.c   2008-12-18 15:47:29.000000000 +0100
-@@ -44,7 +44,6 @@
- #include "bridged_pvr_bridge.h"
- #include "env_data.h"
--
- #if defined (__linux__)
- #include "mmap.h"
- #else
-@@ -66,7 +65,7 @@
- static IMG_BOOL gbInitServerRunning = IMG_FALSE;
- static IMG_BOOL gbInitServerRan = IMG_FALSE;
--static IMG_BOOL gbInitServerSuccessful = IMG_FALSE;
-+static IMG_BOOL gbInitSuccessful = IMG_FALSE;
- PVRSRV_BRIDGE_DISPATCH_TABLE_ENTRY g_BridgeDispatchTable[BRIDGE_DISPATCH_TABLE_ENTRY_COUNT];
-@@ -446,7 +445,13 @@
- }
--
-+#if defined(OS_PVRSRV_ALLOC_DEVICE_MEM_BW)
-+int
-+PVRSRVAllocDeviceMemBW(IMG_UINT32 ui32BridgeID,
-+                                         PVRSRV_BRIDGE_IN_ALLOCDEVICEMEM *psAllocDeviceMemIN,
-+                                         PVRSRV_BRIDGE_OUT_ALLOCDEVICEMEM *psAllocDeviceMemOUT,
-+                                         PVRSRV_PER_PROCESS_DATA *psPerProc);
-+#else
- static int
- PVRSRVAllocDeviceMemBW(IMG_UINT32 ui32BridgeID,
-                                          PVRSRV_BRIDGE_IN_ALLOCDEVICEMEM *psAllocDeviceMemIN,
-@@ -512,7 +517,7 @@
-               psAllocDeviceMemOUT->sClientMemInfo.sDevVAddr = psMemInfo->sDevVAddr;
-               psAllocDeviceMemOUT->sClientMemInfo.ui32Flags = psMemInfo->ui32Flags;
-               psAllocDeviceMemOUT->sClientMemInfo.ui32AllocSize = psMemInfo->ui32AllocSize;
--              psAllocDeviceMemOUT->sClientMemInfo.hMappingInfo = IMG_NULL;
-+              psAllocDeviceMemOUT->sClientMemInfo.hMappingInfo = psMemInfo->sMemBlk.hOSMemHandle;
-               psAllocDeviceMemOUT->eError =
-                       PVRSRVAllocHandle(psPerProc->psHandleBase,
-@@ -568,6 +573,7 @@
-       return 0;
- }
-+#endif 
- static int
- PVRSRVFreeDeviceMemBW(IMG_UINT32 ui32BridgeID,
-@@ -1547,12 +1553,12 @@
-               return 0;
-       }
--      if(psDoKickIN->sCCBKick.hDstKernelSyncInfo != IMG_NULL)
-+      if(psDoKickIN->sCCBKick.hTA3DSyncInfo != IMG_NULL)
-       {
-               psRetOUT->eError =
-                       PVRSRVLookupHandle(psPerProc->psHandleBase,
--                                                         &psDoKickIN->sCCBKick.hDstKernelSyncInfo,
--                                                         psDoKickIN->sCCBKick.hDstKernelSyncInfo,
-+                                                         &psDoKickIN->sCCBKick.hTA3DSyncInfo,
-+                                                         psDoKickIN->sCCBKick.hTA3DSyncInfo,
-                                                          PVRSRV_HANDLE_TYPE_SYNC_INFO); 
-               if(psRetOUT->eError != PVRSRV_OK)
-@@ -1561,13 +1567,12 @@
-               }
-       }
--#if defined (NO_HARDWARE)
--      if(psDoKickIN->sCCBKick.hUpdateDstKernelSyncInfo != IMG_NULL)
-+      if(psDoKickIN->sCCBKick.hTASyncInfo != IMG_NULL)
-       {
-               psRetOUT->eError =
-                       PVRSRVLookupHandle(psPerProc->psHandleBase,
--                                                         &psDoKickIN->sCCBKick.hUpdateDstKernelSyncInfo,
--                                                         psDoKickIN->sCCBKick.hUpdateDstKernelSyncInfo,
-+                                                         &psDoKickIN->sCCBKick.hTASyncInfo,
-+                                                         psDoKickIN->sCCBKick.hTASyncInfo,
-                                                          PVRSRV_HANDLE_TYPE_SYNC_INFO); 
-               if(psRetOUT->eError != PVRSRV_OK)
-@@ -1575,7 +1580,46 @@
-                       return 0;
-               }
-       }
--#endif
-+
-+      if(psDoKickIN->sCCBKick.h3DSyncInfo != IMG_NULL)
-+      {
-+              psRetOUT->eError =
-+                      PVRSRVLookupHandle(psPerProc->psHandleBase,
-+                                                         &psDoKickIN->sCCBKick.h3DSyncInfo,
-+                                                         psDoKickIN->sCCBKick.h3DSyncInfo,
-+                                                         PVRSRV_HANDLE_TYPE_SYNC_INFO); 
-+
-+              if(psRetOUT->eError != PVRSRV_OK)
-+              {
-+                      return 0;
-+              }
-+      }
-+
-+      
-+      if (psDoKickIN->sCCBKick.ui32NumSrcSyncs > SGX_MAX_SRC_SYNCS)
-+      {
-+              psRetOUT->eError = PVRSRV_ERROR_INVALID_PARAMS;
-+              return 0;
-+      }
-+      for(i=0; i<psDoKickIN->sCCBKick.ui32NumSrcSyncs; i++)
-+      {
-+              psRetOUT->eError =
-+                      PVRSRVLookupHandle(psPerProc->psHandleBase,
-+                                                         &psDoKickIN->sCCBKick.ahSrcKernelSyncInfo[i],
-+                                                         psDoKickIN->sCCBKick.ahSrcKernelSyncInfo[i],
-+                                                         PVRSRV_HANDLE_TYPE_SYNC_INFO); 
-+
-+              if(psRetOUT->eError != PVRSRV_OK)
-+              {
-+                      return 0;
-+              }
-+      }
-+
-+      if (psDoKickIN->sCCBKick.ui32NumTAStatusVals > SGX_MAX_TA_STATUS_VALS)
-+      {
-+              psRetOUT->eError = PVRSRV_ERROR_INVALID_PARAMS;
-+              return 0;
-+      }
-       for (i = 0; i < psDoKickIN->sCCBKick.ui32NumTAStatusVals; i++)
-       {
-               psRetOUT->eError =
-@@ -1590,6 +1634,11 @@
-               }
-       }
-+      if (psDoKickIN->sCCBKick.ui32Num3DStatusVals > SGX_MAX_3D_STATUS_VALS)
-+      {
-+              psRetOUT->eError = PVRSRV_ERROR_INVALID_PARAMS;
-+              return 0;
-+      }
-       for(i = 0; i < psDoKickIN->sCCBKick.ui32Num3DStatusVals; i++)
-       {
-               psRetOUT->eError =
-@@ -1604,6 +1653,20 @@
-               }
-       }
-+      if(psDoKickIN->sCCBKick.hRenderSurfSyncInfo != IMG_NULL)
-+      {
-+              psRetOUT->eError =
-+                      PVRSRVLookupHandle(psPerProc->psHandleBase,
-+                                                         &psDoKickIN->sCCBKick.hRenderSurfSyncInfo,
-+                                                         psDoKickIN->sCCBKick.hRenderSurfSyncInfo,
-+                                                         PVRSRV_HANDLE_TYPE_SYNC_INFO); 
-+
-+              if(psRetOUT->eError != PVRSRV_OK)
-+              {
-+                      return 0;
-+              }
-+      }
-+
-       psRetOUT->eError =
-               SGXDoKickKM(hDevCookieInt, 
-                                       &psDoKickIN->sCCBKick);
-@@ -1620,51 +1683,119 @@
-                       PVRSRV_PER_PROCESS_DATA *psPerProc)
- {
-       IMG_HANDLE hDevCookieInt;
-+      PVRSRV_TRANSFER_SGX_KICK *psKick;
-+      IMG_UINT32 i;
-       PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SGX_SUBMITTRANSFER);
-       PVR_UNREFERENCED_PARAMETER(ui32BridgeID);
-+      psKick = &psSubmitTransferIN->sKick;
-+
-       psRetOUT->eError =
-               PVRSRVLookupHandle(psPerProc->psHandleBase,
-                                                  &hDevCookieInt,
-                                                  psSubmitTransferIN->hDevCookie,
-                                                  PVRSRV_HANDLE_TYPE_DEV_NODE);
--
-       if(psRetOUT->eError != PVRSRV_OK)
-       {
-               return 0;
-       }
-       psRetOUT->eError =
--              SGXSubmitTransferKM(hDevCookieInt,
--                                                      psSubmitTransferIN->sHWRenderContextDevVAddr);
-+              PVRSRVLookupHandle(psPerProc->psHandleBase,
-+                                                 &psKick->hCCBMemInfo,
-+                                                 psKick->hCCBMemInfo,
-+                                                 PVRSRV_HANDLE_TYPE_MEM_INFO);
-+      if(psRetOUT->eError != PVRSRV_OK)
-+      {
-+              return 0;
-+      }
-+
-+      if (psKick->hTASyncInfo != IMG_NULL)
-+      {
-+              psRetOUT->eError =
-+                      PVRSRVLookupHandle(psPerProc->psHandleBase,
-+                                                         &psKick->hTASyncInfo,
-+                                                         psKick->hTASyncInfo,
-+                                                         PVRSRV_HANDLE_TYPE_SYNC_INFO);
-+              if(psRetOUT->eError != PVRSRV_OK)
-+              {
-+                      return 0;
-+              }
-+      }
-+
-+      if (psKick->h3DSyncInfo != IMG_NULL)
-+      {
-+              psRetOUT->eError =
-+                      PVRSRVLookupHandle(psPerProc->psHandleBase,
-+                                                         &psKick->h3DSyncInfo,
-+                                                         psKick->h3DSyncInfo,
-+                                                         PVRSRV_HANDLE_TYPE_SYNC_INFO);
-+              if(psRetOUT->eError != PVRSRV_OK)
-+              {
-+                      return 0;
-+              }
-+      }
-+
-+      if (psKick->ui32NumSrcSync > SGX_MAX_TRANSFER_SYNC_OPS)
-+      {
-+              psRetOUT->eError = PVRSRV_ERROR_INVALID_PARAMS;
-+              return 0;
-+      }
-+      for (i = 0; i < psKick->ui32NumSrcSync; i++)
-+      {
-+              psRetOUT->eError =
-+                      PVRSRVLookupHandle(psPerProc->psHandleBase,
-+                                                         &psKick->ahSrcSyncInfo[i],
-+                                                         psKick->ahSrcSyncInfo[i],
-+                                                         PVRSRV_HANDLE_TYPE_SYNC_INFO);
-+              if(psRetOUT->eError != PVRSRV_OK)
-+              {
-+                      return 0;
-+              }
-+      }
-+
-+      if (psKick->ui32NumDstSync > SGX_MAX_TRANSFER_SYNC_OPS)
-+      {
-+              psRetOUT->eError = PVRSRV_ERROR_INVALID_PARAMS;
-+              return 0;
-+      }
-+      for (i = 0; i < psKick->ui32NumDstSync; i++)
-+      {
-+              psRetOUT->eError =
-+                      PVRSRVLookupHandle(psPerProc->psHandleBase,
-+                                                         &psKick->ahDstSyncInfo[i],
-+                                                         psKick->ahDstSyncInfo[i],
-+                                                         PVRSRV_HANDLE_TYPE_SYNC_INFO);
-+              if(psRetOUT->eError != PVRSRV_OK)
-+              {
-+                      return 0;
-+              }
-+      }
-+
-+      psRetOUT->eError = SGXSubmitTransferKM(hDevCookieInt, psKick);
-       return 0;
- }
--#endif
-+#if defined(SGX_FEATURE_2D_HARDWARE)
- static int
--SGXGetMiscInfoBW(IMG_UINT32 ui32BridgeID,
--                               PVRSRV_BRIDGE_IN_SGXGETMISCINFO *psSGXGetMiscInfoIN,
--                               PVRSRV_BRIDGE_RETURN *psRetOUT,
--                               PVRSRV_PER_PROCESS_DATA *psPerProc)
-+SGXSubmit2DBW(IMG_UINT32 ui32BridgeID,
-+                      PVRSRV_BRIDGE_IN_SUBMIT2D *psSubmit2DIN,
-+                      PVRSRV_BRIDGE_RETURN *psRetOUT,
-+                      PVRSRV_PER_PROCESS_DATA *psPerProc)
- {
-       IMG_HANDLE hDevCookieInt;
--      PVRSRV_SGXDEV_INFO *psDevInfo;
--      SGX_MISC_INFO *psMiscInfo;
--
--
--      PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SGX_GETMISCINFO);
-+      PVRSRV_2D_SGX_KICK *psKick;
-+      IMG_UINT32 i;
--      
--      psMiscInfo =
--              (SGX_MISC_INFO *)((IMG_UINT8 *)psSGXGetMiscInfoIN
--                                                + sizeof(PVRSRV_BRIDGE_IN_SGXGETMISCINFO));
-+      PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SGX_SUBMIT2D);
-+      PVR_UNREFERENCED_PARAMETER(ui32BridgeID);
-       psRetOUT->eError =
--              PVRSRVLookupHandle(psPerProc->psHandleBase, 
--                                                 &hDevCookieInt, 
--                                                 psSGXGetMiscInfoIN->hDevCookie, 
-+              PVRSRVLookupHandle(psPerProc->psHandleBase,
-+                                                 &hDevCookieInt,
-+                                                 psSubmit2DIN->hDevCookie,
-                                                  PVRSRV_HANDLE_TYPE_DEV_NODE);
-       if(psRetOUT->eError != PVRSRV_OK)
-@@ -1672,45 +1803,156 @@
-               return 0;
-       }
--      psDevInfo = (PVRSRV_SGXDEV_INFO *)((PVRSRV_DEVICE_NODE *)hDevCookieInt)->pvDevice;
-+      psKick = &psSubmit2DIN->sKick;
--      if(CopyFromUserWrapper(psPerProc, 
--                                     ui32BridgeID,
--                                                 psMiscInfo,
--                                                 psSGXGetMiscInfoIN->psMiscInfo,
--                                                 sizeof(SGX_MISC_INFO)) != PVRSRV_OK)
-+      psRetOUT->eError =
-+              PVRSRVLookupHandle(psPerProc->psHandleBase,
-+                                                 &psKick->hCCBMemInfo,
-+                                                 psKick->hCCBMemInfo,
-+                                                 PVRSRV_HANDLE_TYPE_MEM_INFO);
-+      if(psRetOUT->eError != PVRSRV_OK)
-       {
--              return -EFAULT;
-+              return 0;
-       }
--      switch(psMiscInfo->eRequest)
-+      if (psKick->hTASyncInfo != IMG_NULL)
-       {
--              default:
--                      break;
-+              psRetOUT->eError =
-+                      PVRSRVLookupHandle(psPerProc->psHandleBase,
-+                                                         &psKick->hTASyncInfo,
-+                                                         psKick->hTASyncInfo,
-+                                                         PVRSRV_HANDLE_TYPE_SYNC_INFO);
-+              if(psRetOUT->eError != PVRSRV_OK)
-+              {
-+                      return 0;
-+              }
-       }
--      
--      psRetOUT->eError = SGXGetMiscInfoKM(psDevInfo, psMiscInfo);
-+      if (psKick->h3DSyncInfo != IMG_NULL)
-+      {
-+              psRetOUT->eError =
-+                      PVRSRVLookupHandle(psPerProc->psHandleBase,
-+                                                         &psKick->h3DSyncInfo,
-+                                                         psKick->h3DSyncInfo,
-+                                                         PVRSRV_HANDLE_TYPE_SYNC_INFO);
-+              if(psRetOUT->eError != PVRSRV_OK)
-+              {
-+                      return 0;
-+              }
-+      }
--      
--      switch(psMiscInfo->eRequest)
-+      if (psKick->ui32NumSrcSync > SGX_MAX_2D_SRC_SYNC_OPS)
-       {
--              default:
--                      break;
-+              psRetOUT->eError = PVRSRV_ERROR_INVALID_PARAMS;
-+              return 0;
-+      }
-+      for (i = 0; i < psKick->ui32NumSrcSync; i++)
-+      {
-+              psRetOUT->eError =
-+                      PVRSRVLookupHandle(psPerProc->psHandleBase,
-+                                                         &psKick->ahSrcSyncInfo[i],
-+                                                         psKick->ahSrcSyncInfo[i],
-+                                                         PVRSRV_HANDLE_TYPE_SYNC_INFO);
-+              if(psRetOUT->eError != PVRSRV_OK)
-+              {
-+                      return 0;
-+              }
-       }
--      if(CopyToUserWrapper(psPerProc,
--                                   ui32BridgeID,
--                                               psSGXGetMiscInfoIN->psMiscInfo,
--                                               psMiscInfo,
--                                               sizeof(SGX_MISC_INFO)) != PVRSRV_OK)
-+      if (psKick->hDstSyncInfo != IMG_NULL)
-       {
--              return -EFAULT;
-+              psRetOUT->eError =
-+                      PVRSRVLookupHandle(psPerProc->psHandleBase,
-+                                                         &psKick->hDstSyncInfo,
-+                                                         psKick->hDstSyncInfo,
-+                                                         PVRSRV_HANDLE_TYPE_SYNC_INFO);
-+              if(psRetOUT->eError != PVRSRV_OK)
-+              {
-+                      return 0;
-+              }
-       }
-+      psRetOUT->eError =
-+              SGXSubmit2DKM(hDevCookieInt, psKick);
-+
-+      return 0;
-+}
-+#endif
-+
-+#endif
-+
-+static int
-+SGXGetMiscInfoBW(IMG_UINT32 ui32BridgeID,
-+                               PVRSRV_BRIDGE_IN_SGXGETMISCINFO *psSGXGetMiscInfoIN,
-+                               PVRSRV_BRIDGE_RETURN *psRetOUT,
-+                               PVRSRV_PER_PROCESS_DATA *psPerProc)
-+{
-+      IMG_HANDLE hDevCookieInt;
-+      PVRSRV_SGXDEV_INFO *psDevInfo;
-+      SGX_MISC_INFO *psMiscInfo;
-+
-+      PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID,
-+                                                      PVRSRV_BRIDGE_SGX_GETMISCINFO);
-+
-+      psRetOUT->eError = PVRSRVLookupHandle(psPerProc->psHandleBase, 
-+                                                      &hDevCookieInt,
-+                                                      psSGXGetMiscInfoIN->hDevCookie,
-+                                                      PVRSRV_HANDLE_TYPE_DEV_NODE);
-+
-+      if(psRetOUT->eError != PVRSRV_OK)
-+      {
-+              return 0;
-+      }
-+
-+      psDevInfo = (PVRSRV_SGXDEV_INFO *)((PVRSRV_DEVICE_NODE*)hDevCookieInt)->pvDevice;
-+
-+      psMiscInfo = psSGXGetMiscInfoIN->psMiscInfo;
-+      psRetOUT->eError = SGXGetMiscInfoKM(psDevInfo, psMiscInfo);
-+
-       return 0;
- }
-+#if defined(SUPPORT_SGX_HWPERF)
-+static int
-+SGXReadHWPerfCountersBW(IMG_UINT32                                                                    ui32BridgeID,
-+                                              PVRSRV_BRIDGE_IN_SGX_READ_HWPERF_COUNTERS       *psSGXReadHWPerfCountersIN,
-+                                              PVRSRV_BRIDGE_OUT_SGX_READ_HWPERF_COUNTERS      *psSGXReadHWPerfCountersOUT,
-+                                              PVRSRV_PER_PROCESS_DATA                                         *psPerProc)
-+{
-+      IMG_HANDLE                      hDevCookieInt;
-+      PVRSRV_SGXDEV_INFO      *psDevInfo;
-+
-+      PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SGX_READ_HWPERF_COUNTERS);
-+
-+      psSGXReadHWPerfCountersOUT->eError = PVRSRVLookupHandle(psPerProc->psHandleBase, 
-+                                                      &hDevCookieInt,
-+                                                      psSGXReadHWPerfCountersIN->hDevCookie,
-+                                                      PVRSRV_HANDLE_TYPE_DEV_NODE);
-+
-+      if(psSGXReadHWPerfCountersOUT->eError != PVRSRV_OK)
-+      {
-+              return 0;
-+      }
-+
-+      psDevInfo = ((PVRSRV_DEVICE_NODE*)hDevCookieInt)->pvDevice;
-+
-+      psSGXReadHWPerfCountersOUT->eError = SGXReadHWPerfCountersKM(psDevInfo,
-+                                                      psSGXReadHWPerfCountersIN->ui32PerfReg,
-+                                                      &psSGXReadHWPerfCountersOUT->ui32OldPerf,
-+                                                      psSGXReadHWPerfCountersIN->bNewPerf,
-+                                                      psSGXReadHWPerfCountersIN->ui32NewPerf,
-+                                                      psSGXReadHWPerfCountersIN->ui32NewPerfReset,
-+                                                      psSGXReadHWPerfCountersIN->ui32PerfCountersReg,
-+                                                      &psSGXReadHWPerfCountersOUT->aui32Counters[0],
-+                                                      &psSGXReadHWPerfCountersOUT->ui32KickTACounter,
-+                                                      &psSGXReadHWPerfCountersOUT->ui32KickTARenderCounter,
-+                                                      &psSGXReadHWPerfCountersOUT->ui32CPUTime,
-+                                                      &psSGXReadHWPerfCountersOUT->ui32SGXTime);
-+
-+      return 0;
-+}
-+#endif 
-+
- static int
- PVRSRVInitSrvConnectBW(IMG_UINT32 ui32BridgeID,
-                                          IMG_VOID *psBridgeIn,
-@@ -1752,15 +1994,13 @@
-               return 0;
-       }
--      PDUMPENDINITPHASE();
--
--      gbInitServerSuccessful = psInitSrvDisconnectIN->bInitSuccesful;
--
-       psPerProc->bInitProcess = IMG_FALSE;
-       gbInitServerRunning = IMG_FALSE;
-       gbInitServerRan = IMG_TRUE;
--      psRetOUT->eError = PVRSRV_OK;
-+      psRetOUT->eError = PVRSRVFinaliseSystem(psInitSrvDisconnectIN->bInitSuccesful);
-+
-+      gbInitSuccessful = (IMG_BOOL)(((psRetOUT->eError == PVRSRV_OK) && (psInitSrvDisconnectIN->bInitSuccesful)));
-       return 0;
- }
-@@ -1772,15 +2012,99 @@
-                                                 PVRSRV_BRIDGE_RETURN *psRetOUT,
-                                                 PVRSRV_PER_PROCESS_DATA *psPerProc)
- {
-+      IMG_HANDLE hOSEventKM;
-+
-       PVR_UNREFERENCED_PARAMETER(psPerProc);
-       
-       PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_EVENT_OBJECT_WAIT);
--      psRetOUT->eError = OSEventObjectWait(psEventObjectWaitIN->hOSEventKM, psEventObjectWaitIN->ui32MSTimeout);
-+      psRetOUT->eError = PVRSRVLookupHandle(psPerProc->psHandleBase, 
-+                                                 &hOSEventKM, 
-+                                                 psEventObjectWaitIN->hOSEventKM, 
-+                                                 PVRSRV_HANDLE_TYPE_EVENT_OBJECT_CONNECT);
-+      
-+      if(psRetOUT->eError != PVRSRV_OK)
-+      {
-+              return 0;
-+      }
-+      
-+      psRetOUT->eError = OSEventObjectWait(hOSEventKM);
-+
-+      return 0;
-+}
-+
-+static int
-+PVRSRVEventObjectOpenBW(IMG_UINT32 ui32BridgeID,
-+                                                PVRSRV_BRIDGE_IN_EVENT_OBJECT_OPEN *psEventObjectOpenIN,
-+                                                PVRSRV_BRIDGE_OUT_EVENT_OBJECT_OPEN *psEventObjectOpenOUT,
-+                                                PVRSRV_PER_PROCESS_DATA *psPerProc)
-+{
-+
-+      PVR_UNREFERENCED_PARAMETER(psPerProc);
-+      
-+      PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_EVENT_OBJECT_OPEN);
-+
-+      psEventObjectOpenOUT->eError =
-+              PVRSRVLookupHandle(psPerProc->psHandleBase, 
-+                                                 &psEventObjectOpenIN->sEventObject.hOSEventKM, 
-+                                                 psEventObjectOpenIN->sEventObject.hOSEventKM, 
-+                                                 PVRSRV_HANDLE_TYPE_SHARED_EVENT_OBJECT);
-+
-+      if(psEventObjectOpenOUT->eError != PVRSRV_OK)
-+      {
-+              return 0;
-+      }
-+      psEventObjectOpenOUT->eError = OSEventObjectOpen(&psEventObjectOpenIN->sEventObject, &psEventObjectOpenOUT->hOSEvent);
-+
-+      if(psEventObjectOpenOUT->eError != PVRSRV_OK)
-+      {
-+              return 0;
-+      }
-+      psEventObjectOpenOUT->eError =
-+              PVRSRVAllocHandle(psPerProc->psHandleBase,
-+                                                &psEventObjectOpenOUT->hOSEvent,
-+                                                psEventObjectOpenOUT->hOSEvent,
-+                                                PVRSRV_HANDLE_TYPE_EVENT_OBJECT_CONNECT,
-+                                                PVRSRV_HANDLE_ALLOC_FLAG_NONE);               
-       return 0;
- }
-+static int
-+PVRSRVEventObjectCloseBW(IMG_UINT32 ui32BridgeID,
-+                                                PVRSRV_BRIDGE_IN_EVENT_OBJECT_CLOSE *psEventObjectCloseIN,
-+                                                PVRSRV_BRIDGE_RETURN *psRetOUT,
-+                                                PVRSRV_PER_PROCESS_DATA *psPerProc)
-+{
-+      IMG_HANDLE hOSEventKM;
-+
-+      PVR_UNREFERENCED_PARAMETER(psPerProc);
-+
-+      PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_EVENT_OBJECT_CLOSE);
-+      
-+      psRetOUT->eError =
-+              PVRSRVLookupHandle(psPerProc->psHandleBase, 
-+                                                 &psEventObjectCloseIN->sEventObject.hOSEventKM, 
-+                                                 psEventObjectCloseIN->sEventObject.hOSEventKM, 
-+                                                 PVRSRV_HANDLE_TYPE_SHARED_EVENT_OBJECT);
-+      if(psRetOUT->eError != PVRSRV_OK)
-+      {
-+              return 0;
-+      }
-+
-+      psRetOUT->eError = PVRSRVLookupAndReleaseHandle(psPerProc->psHandleBase, 
-+                                                 &hOSEventKM, 
-+                                                 psEventObjectCloseIN->hOSEventKM, 
-+                                                 PVRSRV_HANDLE_TYPE_EVENT_OBJECT_CONNECT);
-+      if(psRetOUT->eError != PVRSRV_OK)
-+      {
-+              return 0;
-+      }
-+
-+      psRetOUT->eError = OSEventObjectClose(&psEventObjectCloseIN->sEventObject, hOSEventKM);
-+
-+      return 0;
-+}
- static int
- SGXDevInitPart2BW(IMG_UINT32 ui32BridgeID,
-@@ -1847,6 +2171,13 @@
-       bLookupFailed |= (eError != PVRSRV_OK);
- #endif
-+#if defined(SUPPORT_SGX_HWPERF)
-+      eError = PVRSRVLookupHandle(psPerProc->psHandleBase,
-+                                                 &hDummy, 
-+                                                 psSGXDevInitPart2IN->sInitInfo.hKernelHWPerfCBMemInfo, 
-+                                                 PVRSRV_HANDLE_TYPE_MEM_INFO);
-+      bLookupFailed |= (eError != PVRSRV_OK);
-+#endif
-       for (i = 0; i < SGX_MAX_INIT_MEM_HANDLES; i++)
-@@ -1907,6 +2238,13 @@
-       bReleaseFailed |= (eError != PVRSRV_OK);
- #endif
-+#if defined(SUPPORT_SGX_HWPERF)
-+      eError = PVRSRVLookupAndReleaseHandle(psPerProc->psHandleBase, 
-+                                                 &psSGXDevInitPart2IN->sInitInfo.hKernelHWPerfCBMemInfo, 
-+                                                 psSGXDevInitPart2IN->sInitInfo.hKernelHWPerfCBMemInfo, 
-+                                                 PVRSRV_HANDLE_TYPE_MEM_INFO);
-+      bReleaseFailed |= (eError != PVRSRV_OK);
-+#endif
-       for (i = 0; i < SGX_MAX_INIT_MEM_HANDLES; i++)
-@@ -1950,6 +2288,10 @@
-       bDissociateFailed |= (eError != PVRSRV_OK);
- #endif
-+#if defined(SUPPORT_SGX_HWPERF)
-+      eError = PVRSRVDissociateDeviceMemKM(hDevCookieInt, psSGXDevInitPart2IN->sInitInfo.hKernelHWPerfCBMemInfo);
-+      bDissociateFailed |= (eError != PVRSRV_OK);
-+#endif
-       for (i = 0; i < SGX_MAX_INIT_MEM_HANDLES; i++)
-@@ -2005,7 +2347,6 @@
-                                                        PVRSRV_PER_PROCESS_DATA *psPerProc)
- {
-       IMG_HANDLE hDevCookieInt;
--      PVRSRV_SGXDEV_INFO *psDevInfo;
-       IMG_HANDLE hHWRenderContextInt;
-       PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SGX_REGISTER_HW_RENDER_CONTEXT);
-@@ -2020,10 +2361,8 @@
-               return 0;
-       }
--      psDevInfo = (PVRSRV_SGXDEV_INFO *)((PVRSRV_DEVICE_NODE *)hDevCookieInt)->pvDevice;
--
-       hHWRenderContextInt =
--              SGXRegisterHWRenderContextKM(psDevInfo,
-+              SGXRegisterHWRenderContextKM(hDevCookieInt,
-                                                                        &psSGXRegHWRenderContextIN->sHWRenderContextDevVAddr);
-       if (hHWRenderContextInt == IMG_NULL)
-@@ -2043,54 +2382,180 @@
- }
- static int
--SGXFlushHWRenderTargetBW(IMG_UINT32 ui32BridgeID,
--                                                PVRSRV_BRIDGE_IN_SGX_FLUSH_HW_RENDER_TARGET *psSGXFlushHWRenderTargetIN,
--                                                PVRSRV_BRIDGE_RETURN *psRetOUT,
--                                                PVRSRV_PER_PROCESS_DATA *psPerProc)
-+SGXUnregisterHWRenderContextBW(IMG_UINT32 ui32BridgeID,
-+                                                         PVRSRV_BRIDGE_IN_SGX_UNREGISTER_HW_RENDER_CONTEXT *psSGXUnregHWRenderContextIN,
-+                                                         PVRSRV_BRIDGE_RETURN *psRetOUT,
-+                                                         PVRSRV_PER_PROCESS_DATA *psPerProc)
- {
--      IMG_HANDLE hDevCookieInt;
--      PVRSRV_SGXDEV_INFO *psDevInfo;
--      
--      PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SGX_FLUSH_HW_RENDER_TARGET);
-+      IMG_HANDLE hHWRenderContextInt;
-+
-+      PVRSRV_BRIDGE_ASSERT_CMD(ui32BridgeID, PVRSRV_BRIDGE_SGX_UNREGISTER_HW_RENDER_CONTEXT);
-       psRetOUT->eError =
-+              PVRSRVLookupHandle(psPerProc->psHandleBase,
-+                                                 &hHWRenderContextInt,
-+                                                 psSGXUnregHWRenderContextIN->hHWRenderContext,
-+