Added missing patches
authorPali Rohár <pali.rohar@gmail.com>
Tue, 3 May 2011 19:38:04 +0000 (21:38 +0200)
committerPali Rohár <pali.rohar@gmail.com>
Thu, 11 Aug 2011 08:25:04 +0000 (10:25 +0200)
Cleaned patch names
Make rx51_defconfig as patch

kernel-power-2.6.28/debian/patches/arm-proc-v7.diff [new file with mode: 0644]
kernel-power-2.6.28/debian/patches/board-rx51-peripherals.diff [new file with mode: 0644]
kernel-power-2.6.28/debian/patches/board-rx51-peripherals.patch [deleted file]
kernel-power-2.6.28/debian/patches/bq27x00_battery.diff [new file with mode: 0644]
kernel-power-2.6.28/debian/patches/bq27x00_battery.patch [deleted file]
kernel-power-2.6.28/debian/patches/l2cap_parent.diff [new file with mode: 0644]
kernel-power-2.6.28/debian/patches/rx51_defconfig.diff [new file with mode: 0644]
kernel-power-2.6.28/debian/patches/series
kernel-power-2.6.28/debian/patches/vanilla-2.6.28-anti-io-stalling.diff [new file with mode: 0644]
kernel-power-2.6.28/debian/patches/vanilla-2.6.28-anti-io-stalling.patch [deleted file]
kernel-power-2.6.28/debian/rx51power_defconfig [deleted file]

diff --git a/kernel-power-2.6.28/debian/patches/arm-proc-v7.diff b/kernel-power-2.6.28/debian/patches/arm-proc-v7.diff
new file mode 100644 (file)
index 0000000..9e5c7e3
--- /dev/null
@@ -0,0 +1,11 @@
+--- kernel-power-2.6.28.orig/arch/arm/mm/proc-v7.S
++++ kernel-power-2.6.28/arch/arm/mm/proc-v7.S
+@@ -85,7 +85,7 @@
+ #ifdef CONFIG_MMU
+       mov     r2, #0
+       ldr     r1, [r1, #MM_CONTEXT_ID]        @ get mm->context.id
+-      orr     r0, r0, #TTB_RGN_OC_WB          @ mark PTWs outer cacheable, WB
++      orr     r0, r0, #TTB_RGN_OC_WB
+       mcr     p15, 0, r2, c13, c0, 1          @ set reserved context ID
+       isb
+ 1:    mcr     p15, 0, r0, c2, c0, 0           @ set TTB 0
diff --git a/kernel-power-2.6.28/debian/patches/board-rx51-peripherals.diff b/kernel-power-2.6.28/debian/patches/board-rx51-peripherals.diff
new file mode 100644 (file)
index 0000000..92e0619
--- /dev/null
@@ -0,0 +1,12 @@
+--- kernel-power-2.6.28/arch/arm/mach-omap2/board-rx51-peripherals.c   2011-01-23 03:53:13.000000000 +0100
++++ kernel-power-2.6.28/arch/arm/mach-omap2/board-rx51-peripherals.c   2011-01-23 04:02:21.000000000 +0100
+@@ -572,6 +580,9 @@ static struct i2c_board_info __initdata 
+               I2C_BOARD_INFO("tsl2563", 0x29),
+               .platform_data = &rx51_tsl2563_platform_data,
+       },
++      {
++              I2C_BOARD_INFO("bq27200", 0x55),
++      },
+ };
+ static struct i2c_board_info __initdata rx51_peripherals_i2c_board_info_3[] = {
diff --git a/kernel-power-2.6.28/debian/patches/board-rx51-peripherals.patch b/kernel-power-2.6.28/debian/patches/board-rx51-peripherals.patch
deleted file mode 100644 (file)
index 92e0619..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
---- kernel-power-2.6.28/arch/arm/mach-omap2/board-rx51-peripherals.c   2011-01-23 03:53:13.000000000 +0100
-+++ kernel-power-2.6.28/arch/arm/mach-omap2/board-rx51-peripherals.c   2011-01-23 04:02:21.000000000 +0100
-@@ -572,6 +580,9 @@ static struct i2c_board_info __initdata 
-               I2C_BOARD_INFO("tsl2563", 0x29),
-               .platform_data = &rx51_tsl2563_platform_data,
-       },
-+      {
-+              I2C_BOARD_INFO("bq27200", 0x55),
-+      },
- };
- static struct i2c_board_info __initdata rx51_peripherals_i2c_board_info_3[] = {
diff --git a/kernel-power-2.6.28/debian/patches/bq27x00_battery.diff b/kernel-power-2.6.28/debian/patches/bq27x00_battery.diff
new file mode 100644 (file)
index 0000000..b46ed98
--- /dev/null
@@ -0,0 +1,974 @@
+--- kernel-power-2.6.28/drivers/power/bq27x00_battery.c        2011-05-01 01:48:44.000000000 +0200
++++ kernel-power-2.6.28/drivers/power/bq27x00_battery.c        2011-05-01 01:51:12.000000000 +0200
+@@ -3,6 +3,8 @@
+  *
+  * Copyright (C) 2008 Rodolfo Giometti <giometti@linux.it>
+  * Copyright (C) 2008 Eurotech S.p.A. <info@eurotech.it>
++ * Copyright (C) 2010-2011 Lars-Peter Clausen <lars@metafoo.de>
++ * Copyright (C) 2011 Pali Rohár <pali.rohar@gmail.com>
+  *
+  * Based on a previous work by Copyright (C) 2008 Texas Instruments, Inc.
+  *
+@@ -15,6 +17,13 @@
+  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+  *
+  */
++
++/*
++ * Datasheets:
++ * http://focus.ti.com/docs/prod/folders/print/bq27000.html
++ * http://focus.ti.com/docs/prod/folders/print/bq27500.html
++ */
++
+ #include <linux/module.h>
+ #include <linux/param.h>
+ #include <linux/jiffies.h>
+@@ -24,144 +33,407 @@
+ #include <linux/power_supply.h>
+ #include <linux/idr.h>
+ #include <linux/i2c.h>
++#include <linux/slab.h>
+ #include <asm/unaligned.h>
+-#define DRIVER_VERSION                        "1.0.0"
++#define CONFIG_BATTERY_BQ27X00_I2C
++
++struct bq27000_platform_data {
++      const char *name;
++      int (*read)(struct device *dev, unsigned int);
++};
++
++#define DRIVER_VERSION                        "1.2.0"
+ #define BQ27x00_REG_TEMP              0x06
+ #define BQ27x00_REG_VOLT              0x08
+-#define BQ27x00_REG_RSOC              0x0B /* Relative State-of-Charge */
+ #define BQ27x00_REG_AI                        0x14
+ #define BQ27x00_REG_FLAGS             0x0A
++#define BQ27x00_REG_TTE                       0x16
++#define BQ27x00_REG_TTF                       0x18
++#define BQ27x00_REG_TTECP             0x26
++#define BQ27x00_REG_NAC                       0x0C /* Nominal available capaciy */
++#define BQ27x00_REG_LMD                       0x12 /* Last measured discharge */
++#define BQ27x00_REG_CYCT              0x2A /* Cycle count total */
++#define BQ27x00_REG_AE                        0x22 /* Available enery */
++
++#define BQ27000_REG_RSOC              0x0B /* Relative State-of-Charge */
++#define BQ27000_REG_ILMD              0x76 /* Initial last measured discharge */
++#define BQ27000_FLAG_CHGS             BIT(7)
++#define BQ27000_FLAG_FC                       BIT(5)
++
++#define BQ27500_REG_SOC                       0x2C
++#define BQ27500_REG_DCAP              0x3C /* Design capacity */
++#define BQ27500_FLAG_DSC              BIT(0)
++#define BQ27500_FLAG_FC                       BIT(9)
+-/* If the system has several batteries we need a different name for each
+- * of them...
+- */
+-static DEFINE_IDR(battery_id);
+-static DEFINE_MUTEX(battery_mutex);
++#define BQ27000_RS                    20 /* Resistor sense */
+ struct bq27x00_device_info;
+ struct bq27x00_access_methods {
+-      int (*read)(u8 reg, int *rt_value, int b_single,
+-              struct bq27x00_device_info *di);
++      int (*read)(struct bq27x00_device_info *di, u8 reg, bool single);
++};
++
++enum bq27x00_chip { BQ27000, BQ27500 };
++
++struct bq27x00_reg_cache {
++      int temperature;
++      int time_to_empty;
++      int time_to_empty_avg;
++      int time_to_full;
++      int charge_full;
++      int capacity;
++      int flags;
++
++      int current_now;
+ };
+ struct bq27x00_device_info {
+       struct device           *dev;
+       int                     id;
+-      int                     voltage_uV;
+-      int                     current_uA;
+-      int                     temp_C;
+-      int                     charge_rsoc;
+-      struct bq27x00_access_methods   *bus;
++      enum bq27x00_chip       chip;
++
++      struct bq27x00_reg_cache cache;
++      int charge_design_full;
++
++      unsigned long last_update;
++      struct delayed_work work;
++
+       struct power_supply     bat;
+-      struct i2c_client       *client;
++      struct bq27x00_access_methods bus;
++
++      struct mutex lock;
+ };
+ static enum power_supply_property bq27x00_battery_props[] = {
++      POWER_SUPPLY_PROP_STATUS,
+       POWER_SUPPLY_PROP_PRESENT,
+       POWER_SUPPLY_PROP_VOLTAGE_NOW,
+       POWER_SUPPLY_PROP_CURRENT_NOW,
+       POWER_SUPPLY_PROP_CAPACITY,
+       POWER_SUPPLY_PROP_TEMP,
++      POWER_SUPPLY_PROP_TIME_TO_EMPTY_NOW,
++      POWER_SUPPLY_PROP_TIME_TO_EMPTY_AVG,
++      POWER_SUPPLY_PROP_TIME_TO_FULL_NOW,
++      POWER_SUPPLY_PROP_TECHNOLOGY,
++      POWER_SUPPLY_PROP_CHARGE_FULL,
++      POWER_SUPPLY_PROP_CHARGE_NOW,
++      POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN,
+ };
++static unsigned int poll_interval = 360;
++module_param(poll_interval, uint, 0644);
++MODULE_PARM_DESC(poll_interval, "battery poll interval in seconds - " \
++                              "0 disables polling");
++
+ /*
+  * Common code for BQ27x00 devices
+  */
+-static int bq27x00_read(u8 reg, int *rt_value, int b_single,
+-                      struct bq27x00_device_info *di)
++static inline int bq27x00_read(struct bq27x00_device_info *di, u8 reg,
++              bool single)
+ {
+-      int ret;
++      return di->bus.read(di, reg, single);
++}
++
++/*
++ * Return the battery Relative State-of-Charge
++ * Or < 0 if something fails.
++ */
++static int bq27x00_battery_read_rsoc(struct bq27x00_device_info *di)
++{
++      int rsoc;
+-      ret = di->bus->read(reg, rt_value, b_single, di);
+-      *rt_value = be16_to_cpu(*rt_value);
++      if (di->chip == BQ27500)
++              rsoc = bq27x00_read(di, BQ27500_REG_SOC, false);
++      else
++              rsoc = bq27x00_read(di, BQ27000_REG_RSOC, true);
+-      return ret;
++      if (rsoc < 0)
++              dev_err(di->dev, "error reading relative State-of-Charge\n");
++
++      return rsoc;
+ }
+ /*
+- * Return the battery temperature in Celcius degrees
++ * Return a battery charge value in µAh
+  * Or < 0 if something fails.
+  */
+-static int bq27x00_battery_temperature(struct bq27x00_device_info *di)
++static int bq27x00_battery_read_charge(struct bq27x00_device_info *di, u8 reg)
+ {
+-      int ret;
+-      int temp = 0;
++      int charge;
+-      ret = bq27x00_read(BQ27x00_REG_TEMP, &temp, 0, di);
+-      if (ret) {
+-              dev_err(di->dev, "error reading temperature\n");
+-              return ret;
++      charge = bq27x00_read(di, reg, false);
++      if (charge < 0) {
++              dev_err(di->dev, "error reading nominal available capacity\n");
++              return charge;
+       }
+-      return (temp >> 2) - 273;
++      if (di->chip == BQ27500)
++              charge *= 1000;
++      else
++              charge = charge * 3570 / BQ27000_RS;
++
++      return charge;
+ }
+ /*
+- * Return the battery Voltage in milivolts
++ * Return the battery Nominal available capaciy in µAh
+  * Or < 0 if something fails.
+  */
+-static int bq27x00_battery_voltage(struct bq27x00_device_info *di)
++static inline int bq27x00_battery_read_nac(struct bq27x00_device_info *di)
+ {
+-      int ret;
+-      int volt = 0;
++      return bq27x00_battery_read_charge(di, BQ27x00_REG_NAC);
++}
+-      ret = bq27x00_read(BQ27x00_REG_VOLT, &volt, 0, di);
+-      if (ret) {
+-              dev_err(di->dev, "error reading voltage\n");
+-              return ret;
++/*
++ * Return the battery Last measured discharge in µAh
++ * Or < 0 if something fails.
++ */
++static inline int bq27x00_battery_read_lmd(struct bq27x00_device_info *di)
++{
++      return bq27x00_battery_read_charge(di, BQ27x00_REG_LMD);
++}
++
++/*
++ * Return the battery Initial last measured discharge in µAh
++ * Or < 0 if something fails.
++ */
++static int bq27x00_battery_read_ilmd(struct bq27x00_device_info *di)
++{
++      int ilmd;
++
++      if (di->chip == BQ27500)
++              ilmd = bq27x00_read(di, BQ27500_REG_DCAP, false);
++      else
++              ilmd = bq27x00_read(di, BQ27000_REG_ILMD, true);
++
++      if (ilmd < 0) {
++              dev_err(di->dev, "error reading initial last measured discharge\n");
++              return ilmd;
+       }
+-      return volt;
++      if (di->chip == BQ27500)
++              ilmd *= 1000;
++      else
++              ilmd = ilmd * 256 * 3570 / BQ27000_RS;
++
++      return ilmd;
+ }
+ /*
+- * Return the battery average current
+- * Note that current can be negative signed as well
+- * Or 0 if something fails.
++ * Return the battery Cycle count total
++ * Or < 0 if something fails.
+  */
+-static int bq27x00_battery_current(struct bq27x00_device_info *di)
++static int bq27x00_battery_read_cyct(struct bq27x00_device_info *di)
+ {
+-      int ret;
+-      int curr = 0;
+-      int flags = 0;
++      int cyct;
+-      ret = bq27x00_read(BQ27x00_REG_AI, &curr, 0, di);
+-      if (ret) {
+-              dev_err(di->dev, "error reading current\n");
+-              return 0;
++      cyct = bq27x00_read(di, BQ27x00_REG_CYCT, false);
++      if (cyct < 0)
++              dev_err(di->dev, "error reading cycle count total\n");
++
++      return cyct;
++}
++
++/*
++ * Read a time register.
++ * Return < 0 if something fails.
++ */
++static int bq27x00_battery_read_time(struct bq27x00_device_info *di, u8 reg)
++{
++      int tval;
++
++      tval = bq27x00_read(di, reg, false);
++      if (tval < 0) {
++              dev_err(di->dev, "error reading register %02x: %d\n", reg, tval);
++              return tval;
+       }
+-      ret = bq27x00_read(BQ27x00_REG_FLAGS, &flags, 0, di);
+-      if (ret < 0) {
+-              dev_err(di->dev, "error reading flags\n");
++
++      if (tval == 65535)
+               return 0;
++
++      return tval * 60;
++}
++
++static void bq27x00_update(struct bq27x00_device_info *di)
++{
++      struct bq27x00_reg_cache cache = {0, };
++      bool is_bq27500 = di->chip == BQ27500;
++
++      cache.flags = bq27x00_read(di, BQ27x00_REG_FLAGS, is_bq27500);
++      if (cache.flags >= 0) {
++              cache.capacity = bq27x00_battery_read_rsoc(di);
++              cache.temperature = bq27x00_read(di, BQ27x00_REG_TEMP, false);
++              cache.time_to_empty = bq27x00_battery_read_time(di, BQ27x00_REG_TTE);
++              cache.time_to_empty_avg = bq27x00_battery_read_time(di, BQ27x00_REG_TTECP);
++              cache.time_to_full = bq27x00_battery_read_time(di, BQ27x00_REG_TTF);
++              cache.charge_full = bq27x00_battery_read_lmd(di);
++
++              if (!is_bq27500)
++                      cache.current_now = bq27x00_read(di, BQ27x00_REG_AI, false);
++
++              /* We only have to read charge design full once */
++              if (di->charge_design_full <= 0)
++                      di->charge_design_full = bq27x00_battery_read_ilmd(di);
+       }
+-      if ((flags & (1 << 7)) != 0) {
+-              dev_dbg(di->dev, "negative current!\n");
+-              return -curr;
++
++      /* Ignore current_now which is a snapshot of the current battery state
++       * and is likely to be different even between two consecutive reads */
++      if (memcmp(&di->cache, &cache, sizeof(cache) - sizeof(int)) != 0) {
++              di->cache = cache;
++              power_supply_changed(&di->bat);
++      }
++
++      di->last_update = jiffies;
++}
++
++static void bq27x00_battery_poll(struct work_struct *work)
++{
++      struct bq27x00_device_info *di =
++              container_of(work, struct bq27x00_device_info, work.work);
++
++      bq27x00_update(di);
++
++      if (poll_interval > 0) {
++              schedule_delayed_work(&di->work, poll_interval * HZ);
+       }
+-      return curr;
+ }
++
+ /*
+- * Return the battery Relative State-of-Charge
++ * Return the battery temperature in tenths of degree Celsius
+  * Or < 0 if something fails.
+  */
+-static int bq27x00_battery_rsoc(struct bq27x00_device_info *di)
++static int bq27x00_battery_temperature(struct bq27x00_device_info *di,
++      union power_supply_propval *val)
+ {
+-      int ret;
+-      int rsoc = 0;
++      if (di->cache.temperature < 0)
++              return di->cache.temperature;
+-      ret = bq27x00_read(BQ27x00_REG_RSOC, &rsoc, 1, di);
+-      if (ret) {
+-              dev_err(di->dev, "error reading relative State-of-Charge\n");
+-              return ret;
++      if (di->chip == BQ27500)
++              val->intval = di->cache.temperature - 2731;
++      else
++              val->intval = ((di->cache.temperature * 5) - 5463) / 2;
++
++      return 0;
++}
++
++/*
++ * Return the battery average current in µA
++ * Note that current can be negative signed as well
++ * Or 0 if something fails.
++ */
++static int bq27x00_battery_current(struct bq27x00_device_info *di,
++      union power_supply_propval *val)
++{
++      int curr;
++
++      if (di->chip == BQ27500)
++          curr = bq27x00_read(di, BQ27x00_REG_AI, false);
++      else
++          curr = di->cache.current_now;
++
++      if (curr < 0)
++              return curr;
++
++      if (di->chip == BQ27500) {
++              /* bq27500 returns signed value */
++              val->intval = (int)((s16)curr) * 1000;
++      } else {
++              if (di->cache.flags & BQ27000_FLAG_CHGS) {
++                      dev_dbg(di->dev, "negative current!\n");
++                      curr = -curr;
++              }
++
++              val->intval = curr * 3570 / BQ27000_RS;
+       }
+-      return rsoc >> 8;
++      return 0;
++}
++
++static int bq27x00_battery_status(struct bq27x00_device_info *di,
++      union power_supply_propval *val)
++{
++      int status;
++
++      if (di->chip == BQ27500) {
++              if (di->cache.flags & BQ27500_FLAG_FC)
++                      status = POWER_SUPPLY_STATUS_FULL;
++              else if (di->cache.flags & BQ27500_FLAG_DSC)
++                      status = POWER_SUPPLY_STATUS_DISCHARGING;
++              else
++                      status = POWER_SUPPLY_STATUS_CHARGING;
++      } else {
++              if (di->cache.flags & BQ27000_FLAG_FC)
++                      status = POWER_SUPPLY_STATUS_FULL;
++              else if (di->cache.flags & BQ27000_FLAG_CHGS)
++                      status = POWER_SUPPLY_STATUS_CHARGING;
++              else if (power_supply_am_i_supplied(&di->bat))
++                      status = POWER_SUPPLY_STATUS_NOT_CHARGING;
++              else
++                      status = POWER_SUPPLY_STATUS_DISCHARGING;
++      }
++
++      val->intval = status;
++
++      return 0;
++}
++
++/*
++ * Return the battery Voltage in milivolts
++ * Or < 0 if something fails.
++ */
++static int bq27x00_battery_voltage(struct bq27x00_device_info *di,
++      union power_supply_propval *val)
++{
++      int volt;
++
++      volt = bq27x00_read(di, BQ27x00_REG_VOLT, false);
++      if (volt < 0)
++              return volt;
++
++      val->intval = volt * 1000;
++
++      return 0;
++}
++
++/*
++ * Return the battery Available energy in µWh
++ * Or < 0 if something fails.
++ */
++static int bq27x00_battery_energy(struct bq27x00_device_info *di,
++      union power_supply_propval *val)
++{
++      int ae;
++
++      ae = bq27x00_read(di, BQ27x00_REG_AE, false);
++      if (ae < 0) {
++              dev_err(di->dev, "error reading available energy\n");
++              return ae;
++      }
++
++      if (di->chip == BQ27500)
++              ae *= 1000;
++      else
++              ae = ae * 29200 / BQ27000_RS;
++
++      val->intval = ae;
++
++      return 0;
++}
++
++
++static int bq27x00_simple_value(int value,
++      union power_supply_propval *val)
++{
++      if (value < 0)
++              return value;
++
++      val->intval = value;
++
++      return 0;
+ }
+ #define to_bq27x00_device_info(x) container_of((x), \
+@@ -171,89 +443,161 @@ static int bq27x00_battery_get_property(
+                                       enum power_supply_property psp,
+                                       union power_supply_propval *val)
+ {
++      int ret = 0;
+       struct bq27x00_device_info *di = to_bq27x00_device_info(psy);
++      mutex_lock(&di->lock);
++      if (time_is_before_jiffies(di->last_update + 5 * HZ)) {
++              cancel_delayed_work_sync(&di->work);
++              bq27x00_battery_poll(&di->work.work);
++      }
++      mutex_unlock(&di->lock);
++
++      if (psp != POWER_SUPPLY_PROP_PRESENT && di->cache.flags < 0)
++              return -ENODEV;
++
+       switch (psp) {
++      case POWER_SUPPLY_PROP_STATUS:
++              ret = bq27x00_battery_status(di, val);
++              break;
+       case POWER_SUPPLY_PROP_VOLTAGE_NOW:
++              ret = bq27x00_battery_voltage(di, val);
++              break;
+       case POWER_SUPPLY_PROP_PRESENT:
+-              val->intval = bq27x00_battery_voltage(di);
+-              if (psp == POWER_SUPPLY_PROP_PRESENT)
+-                      val->intval = val->intval <= 0 ? 0 : 1;
++              val->intval = di->cache.flags < 0 ? 0 : 1;
+               break;
+       case POWER_SUPPLY_PROP_CURRENT_NOW:
+-              val->intval = bq27x00_battery_current(di);
++              ret = bq27x00_battery_current(di, val);
+               break;
+       case POWER_SUPPLY_PROP_CAPACITY:
+-              val->intval = bq27x00_battery_rsoc(di);
++              ret = bq27x00_simple_value(di->cache.capacity, val);
+               break;
+       case POWER_SUPPLY_PROP_TEMP:
+-              val->intval = bq27x00_battery_temperature(di);
++              ret = bq27x00_battery_temperature(di, val);
++              break;
++      case POWER_SUPPLY_PROP_TIME_TO_EMPTY_NOW:
++              ret = bq27x00_simple_value(di->cache.time_to_empty, val);
++              break;
++      case POWER_SUPPLY_PROP_TIME_TO_EMPTY_AVG:
++              ret = bq27x00_simple_value(di->cache.time_to_empty_avg, val);
++              break;
++      case POWER_SUPPLY_PROP_TIME_TO_FULL_NOW:
++              ret = bq27x00_simple_value(di->cache.time_to_full, val);
++              break;
++      case POWER_SUPPLY_PROP_TECHNOLOGY:
++              val->intval = POWER_SUPPLY_TECHNOLOGY_LION;
++              break;
++      case POWER_SUPPLY_PROP_CHARGE_NOW:
++              ret = bq27x00_simple_value(bq27x00_battery_read_nac(di), val);
++              break;
++      case POWER_SUPPLY_PROP_CHARGE_FULL:
++              ret = bq27x00_simple_value(di->cache.charge_full, val);
++              break;
++      case POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN:
++              ret = bq27x00_simple_value(di->charge_design_full, val);
++              break;
++      case POWER_SUPPLY_PROP_ENERGY_NOW:
++              ret = bq27x00_battery_energy(di, val);
+               break;
+       default:
+               return -EINVAL;
+       }
+-      return 0;
++      return ret;
+ }
+-static void bq27x00_powersupply_init(struct bq27x00_device_info *di)
++static void bq27x00_external_power_changed(struct power_supply *psy)
+ {
++      struct bq27x00_device_info *di = to_bq27x00_device_info(psy);
++
++      cancel_delayed_work_sync(&di->work);
++      schedule_delayed_work(&di->work, 0);
++}
++
++static int bq27x00_powersupply_init(struct bq27x00_device_info *di)
++{
++      int ret;
++
+       di->bat.type = POWER_SUPPLY_TYPE_BATTERY;
+       di->bat.properties = bq27x00_battery_props;
+       di->bat.num_properties = ARRAY_SIZE(bq27x00_battery_props);
+       di->bat.get_property = bq27x00_battery_get_property;
+-      di->bat.external_power_changed = NULL;
++      di->bat.external_power_changed = bq27x00_external_power_changed;
++
++      INIT_DELAYED_WORK(&di->work, bq27x00_battery_poll);
++      mutex_init(&di->lock);
++
++      ret = power_supply_register(di->dev, &di->bat);
++      if (ret) {
++              dev_err(di->dev, "failed to register battery: %d\n", ret);
++              return ret;
++      }
++
++      dev_info(di->dev, "support ver. %s enabled\n", DRIVER_VERSION);
++
++      bq27x00_update(di);
++
++      return 0;
+ }
+-/*
+- * BQ27200 specific code
++static void bq27x00_powersupply_unregister(struct bq27x00_device_info *di)
++{
++      cancel_delayed_work_sync(&di->work);
++
++      power_supply_unregister(&di->bat);
++
++      mutex_destroy(&di->lock);
++}
++
++
++/* i2c specific code */
++#ifdef CONFIG_BATTERY_BQ27X00_I2C
++
++/* If the system has several batteries we need a different name for each
++ * of them...
+  */
++static DEFINE_IDR(battery_id);
++static DEFINE_MUTEX(battery_mutex);
+-static int bq27200_read(u8 reg, int *rt_value, int b_single,
+-                      struct bq27x00_device_info *di)
++static int bq27x00_read_i2c(struct bq27x00_device_info *di, u8 reg, bool single)
+ {
+-      struct i2c_client *client = di->client;
+-      struct i2c_msg msg[1];
++      struct i2c_client *client = to_i2c_client(di->dev);
++      struct i2c_msg msg[2];
+       unsigned char data[2];
+-      int err;
++      int ret;
+       if (!client->adapter)
+               return -ENODEV;
+-      msg->addr = client->addr;
+-      msg->flags = 0;
+-      msg->len = 1;
+-      msg->buf = data;
+-
+-      data[0] = reg;
+-      err = i2c_transfer(client->adapter, msg, 1);
+-
+-      if (err >= 0) {
+-              if (!b_single)
+-                      msg->len = 2;
+-              else
+-                      msg->len = 1;
++      msg[0].addr = client->addr;
++      msg[0].flags = 0;
++      msg[0].buf = &reg;
++      msg[0].len = sizeof(reg);
++      msg[1].addr = client->addr;
++      msg[1].flags = I2C_M_RD;
++      msg[1].buf = data;
++      if (single)
++              msg[1].len = 1;
++      else
++              msg[1].len = 2;
+-              msg->flags = I2C_M_RD;
+-              err = i2c_transfer(client->adapter, msg, 1);
+-              if (err >= 0) {
+-                      if (!b_single)
+-                              *rt_value = get_unaligned_be16(data);
+-                      else
+-                              *rt_value = data[0];
++      ret = i2c_transfer(client->adapter, msg, ARRAY_SIZE(msg));
++      if (ret < 0)
++              return ret;
+-                      return 0;
+-              }
+-      }
+-      return err;
++      if (!single)
++              ret = get_unaligned_le16(data);
++      else
++              ret = data[0];
++
++      return ret;
+ }
+-static int bq27200_battery_probe(struct i2c_client *client,
++static int bq27x00_battery_probe(struct i2c_client *client,
+                                const struct i2c_device_id *id)
+ {
+       char *name;
+       struct bq27x00_device_info *di;
+-      struct bq27x00_access_methods *bus;
+       int num;
+       int retval = 0;
+@@ -267,7 +611,7 @@ static int bq27200_battery_probe(struct 
+       if (retval < 0)
+               return retval;
+-      name = kasprintf(GFP_KERNEL, "bq27200-%d", num);
++      name = kasprintf(GFP_KERNEL, "%s-%d", id->name, num);
+       if (!name) {
+               dev_err(&client->dev, "failed to allocate device name\n");
+               retval = -ENOMEM;
+@@ -280,37 +624,20 @@ static int bq27200_battery_probe(struct 
+               retval = -ENOMEM;
+               goto batt_failed_2;
+       }
+-      di->id = num;
+-      bus = kzalloc(sizeof(*bus), GFP_KERNEL);
+-      if (!bus) {
+-              dev_err(&client->dev, "failed to allocate access method "
+-                                      "data\n");
+-              retval = -ENOMEM;
+-              goto batt_failed_3;
+-      }
+-
+-      i2c_set_clientdata(client, di);
++      di->id = num;
+       di->dev = &client->dev;
++      di->chip = id->driver_data;
+       di->bat.name = name;
+-      bus->read = &bq27200_read;
+-      di->bus = bus;
+-      di->client = client;
+-
+-      bq27x00_powersupply_init(di);
++      di->bus.read = &bq27x00_read_i2c;
+-      retval = power_supply_register(&client->dev, &di->bat);
+-      if (retval) {
+-              dev_err(&client->dev, "failed to register battery\n");
+-              goto batt_failed_4;
+-      }
++      if (bq27x00_powersupply_init(di))
++              goto batt_failed_3;
+-      dev_info(&client->dev, "support ver. %s enabled\n", DRIVER_VERSION);
++      i2c_set_clientdata(client, di);
+       return 0;
+-batt_failed_4:
+-      kfree(bus);
+ batt_failed_3:
+       kfree(di);
+ batt_failed_2:
+@@ -323,11 +650,11 @@ batt_failed_1:
+       return retval;
+ }
+-static int bq27200_battery_remove(struct i2c_client *client)
++static int bq27x00_battery_remove(struct i2c_client *client)
+ {
+       struct bq27x00_device_info *di = i2c_get_clientdata(client);
+-      power_supply_unregister(&di->bat);
++      bq27x00_powersupply_unregister(di);
+       kfree(di->bat.name);
+@@ -340,31 +667,180 @@ static int bq27200_battery_remove(struct
+       return 0;
+ }
+-/*
+- * Module stuff
+- */
+-
+-static const struct i2c_device_id bq27200_id[] = {
+-      { "bq27200", 0 },
++static const struct i2c_device_id bq27x00_id[] = {
++      { "bq27200", BQ27000 }, /* bq27200 is same as bq27000, but with i2c */
++      { "bq27500", BQ27500 },
+       {},
+ };
++MODULE_DEVICE_TABLE(i2c, bq27x00_id);
++
++static struct i2c_driver bq27x00_battery_driver = {
++      .driver = {
++              .name = "bq27x00-battery",
++      },
++      .probe = bq27x00_battery_probe,
++      .remove = bq27x00_battery_remove,
++      .id_table = bq27x00_id,
++};
++
++static inline int bq27x00_battery_i2c_init(void)
++{
++      int ret = i2c_add_driver(&bq27x00_battery_driver);
++      if (ret)
++              printk(KERN_ERR "Unable to register BQ27x00 i2c driver\n");
++
++      return ret;
++}
++
++static inline void bq27x00_battery_i2c_exit(void)
++{
++      i2c_del_driver(&bq27x00_battery_driver);
++}
++
++#else
++
++static inline int bq27x00_battery_i2c_init(void) { return 0; }
++static inline void bq27x00_battery_i2c_exit(void) {};
++
++#endif
++
++/* platform specific code */
++#ifdef CONFIG_BATTERY_BQ27X00_PLATFORM
++
++static int bq27000_read_platform(struct bq27x00_device_info *di, u8 reg,
++                      bool single)
++{
++      struct device *dev = di->dev;
++      struct bq27000_platform_data *pdata = dev->platform_data;
++      unsigned int timeout = 3;
++      int upper, lower;
++      int temp;
++
++      if (!single) {
++              /* Make sure the value has not changed in between reading the
++               * lower and the upper part */
++              upper = pdata->read(dev, reg + 1);
++              do {
++                      temp = upper;
++                      if (upper < 0)
++                              return upper;
++
++                      lower = pdata->read(dev, reg);
++                      if (lower < 0)
++                              return lower;
++
++                      upper = pdata->read(dev, reg + 1);
++              } while (temp != upper && --timeout);
++
++              if (timeout == 0)
++                      return -EIO;
++
++              return (upper << 8) | lower;
++      }
++
++      return pdata->read(dev, reg);
++}
++
++static int __devinit bq27000_battery_probe(struct platform_device *pdev)
++{
++      struct bq27x00_device_info *di;
++      struct bq27000_platform_data *pdata = pdev->dev.platform_data;
++      int ret;
++
++      if (!pdata) {
++              dev_err(&pdev->dev, "no platform_data supplied\n");
++              return -EINVAL;
++      }
++
++      if (!pdata->read) {
++              dev_err(&pdev->dev, "no hdq read callback supplied\n");
++              return -EINVAL;
++      }
++
++      di = kzalloc(sizeof(*di), GFP_KERNEL);
++      if (!di) {
++              dev_err(&pdev->dev, "failed to allocate device info data\n");
++              return -ENOMEM;
++      }
++
++      platform_set_drvdata(pdev, di);
++
++      di->dev = &pdev->dev;
++      di->chip = BQ27000;
++
++      di->bat.name = pdata->name ?: dev_name(&pdev->dev);
++      di->bus.read = &bq27000_read_platform;
+-static struct i2c_driver bq27200_battery_driver = {
++      ret = bq27x00_powersupply_init(di);
++      if (ret)
++              goto err_free;
++
++      return 0;
++
++err_free:
++      platform_set_drvdata(pdev, NULL);
++      kfree(di);
++
++      return ret;
++}
++
++static int __devexit bq27000_battery_remove(struct platform_device *pdev)
++{
++      struct bq27x00_device_info *di = platform_get_drvdata(pdev);
++
++      bq27x00_powersupply_unregister(di);
++
++      platform_set_drvdata(pdev, NULL);
++      kfree(di);
++
++      return 0;
++}
++
++static struct platform_driver bq27000_battery_driver = {
++      .probe  = bq27000_battery_probe,
++      .remove = __devexit_p(bq27000_battery_remove),
+       .driver = {
+-              .name = "bq27200-battery",
++              .name = "bq27000-battery",
++              .owner = THIS_MODULE,
+       },
+-      .probe = bq27200_battery_probe,
+-      .remove = bq27200_battery_remove,
+-      .id_table = bq27200_id,
+ };
++static inline int bq27x00_battery_platform_init(void)
++{
++      int ret = platform_driver_register(&bq27000_battery_driver);
++      if (ret)
++              printk(KERN_ERR "Unable to register BQ27000 platform driver\n");
++
++      return ret;
++}
++
++static inline void bq27x00_battery_platform_exit(void)
++{
++      platform_driver_unregister(&bq27000_battery_driver);
++}
++
++#else
++
++static inline int bq27x00_battery_platform_init(void) { return 0; }
++static inline void bq27x00_battery_platform_exit(void) {};
++
++#endif
++
++/*
++ * Module stuff
++ */
++
+ static int __init bq27x00_battery_init(void)
+ {
+       int ret;
+-      ret = i2c_add_driver(&bq27200_battery_driver);
++      ret = bq27x00_battery_i2c_init();
++      if (ret)
++              return ret;
++
++      ret = bq27x00_battery_platform_init();
+       if (ret)
+-              printk(KERN_ERR "Unable to register BQ27200 driver\n");
++              bq27x00_battery_i2c_exit();
+       return ret;
+ }
+@@ -372,7 +848,8 @@ module_init(bq27x00_battery_init);
+ static void __exit bq27x00_battery_exit(void)
+ {
+-      i2c_del_driver(&bq27200_battery_driver);
++      bq27x00_battery_platform_exit();
++      bq27x00_battery_i2c_exit();
+ }
+ module_exit(bq27x00_battery_exit);
diff --git a/kernel-power-2.6.28/debian/patches/bq27x00_battery.patch b/kernel-power-2.6.28/debian/patches/bq27x00_battery.patch
deleted file mode 100644 (file)
index b46ed98..0000000
+++ /dev/null
@@ -1,974 +0,0 @@
---- kernel-power-2.6.28/drivers/power/bq27x00_battery.c        2011-05-01 01:48:44.000000000 +0200
-+++ kernel-power-2.6.28/drivers/power/bq27x00_battery.c        2011-05-01 01:51:12.000000000 +0200
-@@ -3,6 +3,8 @@
-  *
-  * Copyright (C) 2008 Rodolfo Giometti <giometti@linux.it>
-  * Copyright (C) 2008 Eurotech S.p.A. <info@eurotech.it>
-+ * Copyright (C) 2010-2011 Lars-Peter Clausen <lars@metafoo.de>
-+ * Copyright (C) 2011 Pali Rohár <pali.rohar@gmail.com>
-  *
-  * Based on a previous work by Copyright (C) 2008 Texas Instruments, Inc.
-  *
-@@ -15,6 +17,13 @@
-  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-  *
-  */
-+
-+/*
-+ * Datasheets:
-+ * http://focus.ti.com/docs/prod/folders/print/bq27000.html
-+ * http://focus.ti.com/docs/prod/folders/print/bq27500.html
-+ */
-+
- #include <linux/module.h>
- #include <linux/param.h>
- #include <linux/jiffies.h>
-@@ -24,144 +33,407 @@
- #include <linux/power_supply.h>
- #include <linux/idr.h>
- #include <linux/i2c.h>
-+#include <linux/slab.h>
- #include <asm/unaligned.h>
--#define DRIVER_VERSION                        "1.0.0"
-+#define CONFIG_BATTERY_BQ27X00_I2C
-+
-+struct bq27000_platform_data {
-+      const char *name;
-+      int (*read)(struct device *dev, unsigned int);
-+};
-+
-+#define DRIVER_VERSION                        "1.2.0"
- #define BQ27x00_REG_TEMP              0x06
- #define BQ27x00_REG_VOLT              0x08
--#define BQ27x00_REG_RSOC              0x0B /* Relative State-of-Charge */
- #define BQ27x00_REG_AI                        0x14
- #define BQ27x00_REG_FLAGS             0x0A
-+#define BQ27x00_REG_TTE                       0x16
-+#define BQ27x00_REG_TTF                       0x18
-+#define BQ27x00_REG_TTECP             0x26
-+#define BQ27x00_REG_NAC                       0x0C /* Nominal available capaciy */
-+#define BQ27x00_REG_LMD                       0x12 /* Last measured discharge */
-+#define BQ27x00_REG_CYCT              0x2A /* Cycle count total */
-+#define BQ27x00_REG_AE                        0x22 /* Available enery */
-+
-+#define BQ27000_REG_RSOC              0x0B /* Relative State-of-Charge */
-+#define BQ27000_REG_ILMD              0x76 /* Initial last measured discharge */
-+#define BQ27000_FLAG_CHGS             BIT(7)
-+#define BQ27000_FLAG_FC                       BIT(5)
-+
-+#define BQ27500_REG_SOC                       0x2C
-+#define BQ27500_REG_DCAP              0x3C /* Design capacity */
-+#define BQ27500_FLAG_DSC              BIT(0)
-+#define BQ27500_FLAG_FC                       BIT(9)
--/* If the system has several batteries we need a different name for each
-- * of them...
-- */
--static DEFINE_IDR(battery_id);
--static DEFINE_MUTEX(battery_mutex);
-+#define BQ27000_RS                    20 /* Resistor sense */
- struct bq27x00_device_info;
- struct bq27x00_access_methods {
--      int (*read)(u8 reg, int *rt_value, int b_single,
--              struct bq27x00_device_info *di);
-+      int (*read)(struct bq27x00_device_info *di, u8 reg, bool single);
-+};
-+
-+enum bq27x00_chip { BQ27000, BQ27500 };
-+
-+struct bq27x00_reg_cache {
-+      int temperature;
-+      int time_to_empty;
-+      int time_to_empty_avg;
-+      int time_to_full;
-+      int charge_full;
-+      int capacity;
-+      int flags;
-+
-+      int current_now;
- };
- struct bq27x00_device_info {
-       struct device           *dev;
-       int                     id;
--      int                     voltage_uV;
--      int                     current_uA;
--      int                     temp_C;
--      int                     charge_rsoc;
--      struct bq27x00_access_methods   *bus;
-+      enum bq27x00_chip       chip;
-+
-+      struct bq27x00_reg_cache cache;
-+      int charge_design_full;
-+
-+      unsigned long last_update;
-+      struct delayed_work work;
-+
-       struct power_supply     bat;
--      struct i2c_client       *client;
-+      struct bq27x00_access_methods bus;
-+
-+      struct mutex lock;
- };
- static enum power_supply_property bq27x00_battery_props[] = {
-+      POWER_SUPPLY_PROP_STATUS,
-       POWER_SUPPLY_PROP_PRESENT,
-       POWER_SUPPLY_PROP_VOLTAGE_NOW,
-       POWER_SUPPLY_PROP_CURRENT_NOW,
-       POWER_SUPPLY_PROP_CAPACITY,
-       POWER_SUPPLY_PROP_TEMP,
-+      POWER_SUPPLY_PROP_TIME_TO_EMPTY_NOW,
-+      POWER_SUPPLY_PROP_TIME_TO_EMPTY_AVG,
-+      POWER_SUPPLY_PROP_TIME_TO_FULL_NOW,
-+      POWER_SUPPLY_PROP_TECHNOLOGY,
-+      POWER_SUPPLY_PROP_CHARGE_FULL,
-+      POWER_SUPPLY_PROP_CHARGE_NOW,
-+      POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN,
- };
-+static unsigned int poll_interval = 360;
-+module_param(poll_interval, uint, 0644);
-+MODULE_PARM_DESC(poll_interval, "battery poll interval in seconds - " \
-+                              "0 disables polling");
-+
- /*
-  * Common code for BQ27x00 devices
-  */
--static int bq27x00_read(u8 reg, int *rt_value, int b_single,
--                      struct bq27x00_device_info *di)
-+static inline int bq27x00_read(struct bq27x00_device_info *di, u8 reg,
-+              bool single)
- {
--      int ret;
-+      return di->bus.read(di, reg, single);
-+}
-+
-+/*
-+ * Return the battery Relative State-of-Charge
-+ * Or < 0 if something fails.
-+ */
-+static int bq27x00_battery_read_rsoc(struct bq27x00_device_info *di)
-+{
-+      int rsoc;
--      ret = di->bus->read(reg, rt_value, b_single, di);
--      *rt_value = be16_to_cpu(*rt_value);
-+      if (di->chip == BQ27500)
-+              rsoc = bq27x00_read(di, BQ27500_REG_SOC, false);
-+      else
-+              rsoc = bq27x00_read(di, BQ27000_REG_RSOC, true);
--      return ret;
-+      if (rsoc < 0)
-+              dev_err(di->dev, "error reading relative State-of-Charge\n");
-+
-+      return rsoc;
- }
- /*
-- * Return the battery temperature in Celcius degrees
-+ * Return a battery charge value in µAh
-  * Or < 0 if something fails.
-  */
--static int bq27x00_battery_temperature(struct bq27x00_device_info *di)
-+static int bq27x00_battery_read_charge(struct bq27x00_device_info *di, u8 reg)
- {
--      int ret;
--      int temp = 0;
-+      int charge;
--      ret = bq27x00_read(BQ27x00_REG_TEMP, &temp, 0, di);
--      if (ret) {
--              dev_err(di->dev, "error reading temperature\n");
--              return ret;
-+      charge = bq27x00_read(di, reg, false);
-+      if (charge < 0) {
-+              dev_err(di->dev, "error reading nominal available capacity\n");
-+              return charge;
-       }
--      return (temp >> 2) - 273;
-+      if (di->chip == BQ27500)
-+              charge *= 1000;
-+      else
-+              charge = charge * 3570 / BQ27000_RS;
-+
-+      return charge;
- }
- /*
-- * Return the battery Voltage in milivolts
-+ * Return the battery Nominal available capaciy in µAh
-  * Or < 0 if something fails.
-  */
--static int bq27x00_battery_voltage(struct bq27x00_device_info *di)
-+static inline int bq27x00_battery_read_nac(struct bq27x00_device_info *di)
- {
--      int ret;
--      int volt = 0;
-+      return bq27x00_battery_read_charge(di, BQ27x00_REG_NAC);
-+}
--      ret = bq27x00_read(BQ27x00_REG_VOLT, &volt, 0, di);
--      if (ret) {
--              dev_err(di->dev, "error reading voltage\n");
--              return ret;
-+/*
-+ * Return the battery Last measured discharge in µAh
-+ * Or < 0 if something fails.
-+ */
-+static inline int bq27x00_battery_read_lmd(struct bq27x00_device_info *di)
-+{
-+      return bq27x00_battery_read_charge(di, BQ27x00_REG_LMD);
-+}
-+
-+/*
-+ * Return the battery Initial last measured discharge in µAh
-+ * Or < 0 if something fails.
-+ */
-+static int bq27x00_battery_read_ilmd(struct bq27x00_device_info *di)
-+{
-+      int ilmd;
-+
-+      if (di->chip == BQ27500)
-+              ilmd = bq27x00_read(di, BQ27500_REG_DCAP, false);
-+      else
-+              ilmd = bq27x00_read(di, BQ27000_REG_ILMD, true);
-+
-+      if (ilmd < 0) {
-+              dev_err(di->dev, "error reading initial last measured discharge\n");
-+              return ilmd;
-       }
--      return volt;
-+      if (di->chip == BQ27500)
-+              ilmd *= 1000;
-+      else
-+              ilmd = ilmd * 256 * 3570 / BQ27000_RS;
-+
-+      return ilmd;
- }
- /*
-- * Return the battery average current
-- * Note that current can be negative signed as well
-- * Or 0 if something fails.
-+ * Return the battery Cycle count total
-+ * Or < 0 if something fails.
-  */
--static int bq27x00_battery_current(struct bq27x00_device_info *di)
-+static int bq27x00_battery_read_cyct(struct bq27x00_device_info *di)
- {
--      int ret;
--      int curr = 0;
--      int flags = 0;
-+      int cyct;
--      ret = bq27x00_read(BQ27x00_REG_AI, &curr, 0, di);
--      if (ret) {
--              dev_err(di->dev, "error reading current\n");
--              return 0;
-+      cyct = bq27x00_read(di, BQ27x00_REG_CYCT, false);
-+      if (cyct < 0)
-+              dev_err(di->dev, "error reading cycle count total\n");
-+
-+      return cyct;
-+}
-+
-+/*
-+ * Read a time register.
-+ * Return < 0 if something fails.
-+ */
-+static int bq27x00_battery_read_time(struct bq27x00_device_info *di, u8 reg)
-+{
-+      int tval;
-+
-+      tval = bq27x00_read(di, reg, false);
-+      if (tval < 0) {
-+              dev_err(di->dev, "error reading register %02x: %d\n", reg, tval);
-+              return tval;
-       }
--      ret = bq27x00_read(BQ27x00_REG_FLAGS, &flags, 0, di);
--      if (ret < 0) {
--              dev_err(di->dev, "error reading flags\n");
-+
-+      if (tval == 65535)
-               return 0;
-+
-+      return tval * 60;
-+}
-+
-+static void bq27x00_update(struct bq27x00_device_info *di)
-+{
-+      struct bq27x00_reg_cache cache = {0, };
-+      bool is_bq27500 = di->chip == BQ27500;
-+
-+      cache.flags = bq27x00_read(di, BQ27x00_REG_FLAGS, is_bq27500);
-+      if (cache.flags >= 0) {
-+              cache.capacity = bq27x00_battery_read_rsoc(di);
-+              cache.temperature = bq27x00_read(di, BQ27x00_REG_TEMP, false);
-+              cache.time_to_empty = bq27x00_battery_read_time(di, BQ27x00_REG_TTE);
-+              cache.time_to_empty_avg = bq27x00_battery_read_time(di, BQ27x00_REG_TTECP);
-+              cache.time_to_full = bq27x00_battery_read_time(di, BQ27x00_REG_TTF);
-+              cache.charge_full = bq27x00_battery_read_lmd(di);
-+
-+              if (!is_bq27500)
-+                      cache.current_now = bq27x00_read(di, BQ27x00_REG_AI, false);
-+
-+              /* We only have to read charge design full once */
-+              if (di->charge_design_full <= 0)
-+                      di->charge_design_full = bq27x00_battery_read_ilmd(di);
-       }
--      if ((flags & (1 << 7)) != 0) {
--              dev_dbg(di->dev, "negative current!\n");
--              return -curr;
-+
-+      /* Ignore current_now which is a snapshot of the current battery state
-+       * and is likely to be different even between two consecutive reads */
-+      if (memcmp(&di->cache, &cache, sizeof(cache) - sizeof(int)) != 0) {
-+              di->cache = cache;
-+              power_supply_changed(&di->bat);
-+      }
-+
-+      di->last_update = jiffies;
-+}
-+
-+static void bq27x00_battery_poll(struct work_struct *work)
-+{
-+      struct bq27x00_device_info *di =
-+              container_of(work, struct bq27x00_device_info, work.work);
-+
-+      bq27x00_update(di);
-+
-+      if (poll_interval > 0) {
-+              schedule_delayed_work(&di->work, poll_interval * HZ);
-       }
--      return curr;
- }
-+
- /*
-- * Return the battery Relative State-of-Charge
-+ * Return the battery temperature in tenths of degree Celsius
-  * Or < 0 if something fails.
-  */
--static int bq27x00_battery_rsoc(struct bq27x00_device_info *di)
-+static int bq27x00_battery_temperature(struct bq27x00_device_info *di,
-+      union power_supply_propval *val)
- {
--      int ret;
--      int rsoc = 0;
-+      if (di->cache.temperature < 0)
-+              return di->cache.temperature;
--      ret = bq27x00_read(BQ27x00_REG_RSOC, &rsoc, 1, di);
--      if (ret) {
--              dev_err(di->dev, "error reading relative State-of-Charge\n");
--              return ret;
-+      if (di->chip == BQ27500)
-+              val->intval = di->cache.temperature - 2731;
-+      else
-+              val->intval = ((di->cache.temperature * 5) - 5463) / 2;
-+
-+      return 0;
-+}
-+
-+/*
-+ * Return the battery average current in µA
-+ * Note that current can be negative signed as well
-+ * Or 0 if something fails.
-+ */
-+static int bq27x00_battery_current(struct bq27x00_device_info *di,
-+      union power_supply_propval *val)
-+{
-+      int curr;
-+
-+      if (di->chip == BQ27500)
-+          curr = bq27x00_read(di, BQ27x00_REG_AI, false);
-+      else
-+          curr = di->cache.current_now;
-+
-+      if (curr < 0)
-+              return curr;
-+
-+      if (di->chip == BQ27500) {
-+              /* bq27500 returns signed value */
-+              val->intval = (int)((s16)curr) * 1000;
-+      } else {
-+              if (di->cache.flags & BQ27000_FLAG_CHGS) {
-+                      dev_dbg(di->dev, "negative current!\n");
-+                      curr = -curr;
-+              }
-+
-+              val->intval = curr * 3570 / BQ27000_RS;
-       }
--      return rsoc >> 8;
-+      return 0;
-+}
-+
-+static int bq27x00_battery_status(struct bq27x00_device_info *di,
-+      union power_supply_propval *val)
-+{
-+      int status;
-+
-+      if (di->chip == BQ27500) {
-+              if (di->cache.flags & BQ27500_FLAG_FC)
-+                      status = POWER_SUPPLY_STATUS_FULL;
-+              else if (di->cache.flags & BQ27500_FLAG_DSC)
-+                      status = POWER_SUPPLY_STATUS_DISCHARGING;
-+              else
-+                      status = POWER_SUPPLY_STATUS_CHARGING;
-+      } else {
-+              if (di->cache.flags & BQ27000_FLAG_FC)
-+                      status = POWER_SUPPLY_STATUS_FULL;
-+              else if (di->cache.flags & BQ27000_FLAG_CHGS)
-+                      status = POWER_SUPPLY_STATUS_CHARGING;
-+              else if (power_supply_am_i_supplied(&di->bat))
-+                      status = POWER_SUPPLY_STATUS_NOT_CHARGING;
-+              else
-+                      status = POWER_SUPPLY_STATUS_DISCHARGING;
-+      }
-+
-+      val->intval = status;
-+
-+      return 0;
-+}
-+
-+/*
-+ * Return the battery Voltage in milivolts
-+ * Or < 0 if something fails.
-+ */
-+static int bq27x00_battery_voltage(struct bq27x00_device_info *di,
-+      union power_supply_propval *val)
-+{
-+      int volt;
-+
-+      volt = bq27x00_read(di, BQ27x00_REG_VOLT, false);
-+      if (volt < 0)
-+              return volt;
-+
-+      val->intval = volt * 1000;
-+
-+      return 0;
-+}
-+
-+/*
-+ * Return the battery Available energy in µWh
-+ * Or < 0 if something fails.
-+ */
-+static int bq27x00_battery_energy(struct bq27x00_device_info *di,
-+      union power_supply_propval *val)
-+{
-+      int ae;
-+
-+      ae = bq27x00_read(di, BQ27x00_REG_AE, false);
-+      if (ae < 0) {
-+              dev_err(di->dev, "error reading available energy\n");
-+              return ae;
-+      }
-+
-+      if (di->chip == BQ27500)
-+              ae *= 1000;
-+      else
-+              ae = ae * 29200 / BQ27000_RS;
-+
-+      val->intval = ae;
-+
-+      return 0;
-+}
-+
-+
-+static int bq27x00_simple_value(int value,
-+      union power_supply_propval *val)
-+{
-+      if (value < 0)
-+              return value;
-+
-+      val->intval = value;
-+
-+      return 0;
- }
- #define to_bq27x00_device_info(x) container_of((x), \
-@@ -171,89 +443,161 @@ static int bq27x00_battery_get_property(
-                                       enum power_supply_property psp,
-                                       union power_supply_propval *val)
- {
-+      int ret = 0;
-       struct bq27x00_device_info *di = to_bq27x00_device_info(psy);
-+      mutex_lock(&di->lock);
-+      if (time_is_before_jiffies(di->last_update + 5 * HZ)) {
-+              cancel_delayed_work_sync(&di->work);
-+              bq27x00_battery_poll(&di->work.work);
-+      }
-+      mutex_unlock(&di->lock);
-+
-+      if (psp != POWER_SUPPLY_PROP_PRESENT && di->cache.flags < 0)
-+              return -ENODEV;
-+
-       switch (psp) {
-+      case POWER_SUPPLY_PROP_STATUS:
-+              ret = bq27x00_battery_status(di, val);
-+              break;
-       case POWER_SUPPLY_PROP_VOLTAGE_NOW:
-+              ret = bq27x00_battery_voltage(di, val);
-+              break;
-       case POWER_SUPPLY_PROP_PRESENT:
--              val->intval = bq27x00_battery_voltage(di);
--              if (psp == POWER_SUPPLY_PROP_PRESENT)
--                      val->intval = val->intval <= 0 ? 0 : 1;
-+              val->intval = di->cache.flags < 0 ? 0 : 1;
-               break;
-       case POWER_SUPPLY_PROP_CURRENT_NOW:
--              val->intval = bq27x00_battery_current(di);
-+              ret = bq27x00_battery_current(di, val);
-               break;
-       case POWER_SUPPLY_PROP_CAPACITY:
--              val->intval = bq27x00_battery_rsoc(di);
-+              ret = bq27x00_simple_value(di->cache.capacity, val);
-               break;
-       case POWER_SUPPLY_PROP_TEMP:
--              val->intval = bq27x00_battery_temperature(di);
-+              ret = bq27x00_battery_temperature(di, val);
-+              break;
-+      case POWER_SUPPLY_PROP_TIME_TO_EMPTY_NOW:
-+              ret = bq27x00_simple_value(di->cache.time_to_empty, val);
-+              break;
-+      case POWER_SUPPLY_PROP_TIME_TO_EMPTY_AVG:
-+              ret = bq27x00_simple_value(di->cache.time_to_empty_avg, val);
-+              break;
-+      case POWER_SUPPLY_PROP_TIME_TO_FULL_NOW:
-+              ret = bq27x00_simple_value(di->cache.time_to_full, val);
-+              break;
-+      case POWER_SUPPLY_PROP_TECHNOLOGY:
-+              val->intval = POWER_SUPPLY_TECHNOLOGY_LION;
-+              break;
-+      case POWER_SUPPLY_PROP_CHARGE_NOW:
-+              ret = bq27x00_simple_value(bq27x00_battery_read_nac(di), val);
-+              break;
-+      case POWER_SUPPLY_PROP_CHARGE_FULL:
-+              ret = bq27x00_simple_value(di->cache.charge_full, val);
-+              break;
-+      case POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN:
-+              ret = bq27x00_simple_value(di->charge_design_full, val);
-+              break;
-+      case POWER_SUPPLY_PROP_ENERGY_NOW:
-+              ret = bq27x00_battery_energy(di, val);
-               break;
-       default:
-               return -EINVAL;
-       }
--      return 0;
-+      return ret;
- }
--static void bq27x00_powersupply_init(struct bq27x00_device_info *di)
-+static void bq27x00_external_power_changed(struct power_supply *psy)
- {
-+      struct bq27x00_device_info *di = to_bq27x00_device_info(psy);
-+
-+      cancel_delayed_work_sync(&di->work);
-+      schedule_delayed_work(&di->work, 0);
-+}
-+
-+static int bq27x00_powersupply_init(struct bq27x00_device_info *di)
-+{
-+      int ret;
-+
-       di->bat.type = POWER_SUPPLY_TYPE_BATTERY;
-       di->bat.properties = bq27x00_battery_props;
-       di->bat.num_properties = ARRAY_SIZE(bq27x00_battery_props);
-       di->bat.get_property = bq27x00_battery_get_property;
--      di->bat.external_power_changed = NULL;
-+      di->bat.external_power_changed = bq27x00_external_power_changed;
-+
-+      INIT_DELAYED_WORK(&di->work, bq27x00_battery_poll);
-+      mutex_init(&di->lock);
-+
-+      ret = power_supply_register(di->dev, &di->bat);
-+      if (ret) {
-+              dev_err(di->dev, "failed to register battery: %d\n", ret);
-+              return ret;
-+      }
-+
-+      dev_info(di->dev, "support ver. %s enabled\n", DRIVER_VERSION);
-+
-+      bq27x00_update(di);
-+
-+      return 0;
- }
--/*
-- * BQ27200 specific code
-+static void bq27x00_powersupply_unregister(struct bq27x00_device_info *di)
-+{
-+      cancel_delayed_work_sync(&di->work);
-+
-+      power_supply_unregister(&di->bat);
-+
-+      mutex_destroy(&di->lock);
-+}
-+
-+
-+/* i2c specific code */
-+#ifdef CONFIG_BATTERY_BQ27X00_I2C
-+
-+/* If the system has several batteries we need a different name for each
-+ * of them...
-  */
-+static DEFINE_IDR(battery_id);
-+static DEFINE_MUTEX(battery_mutex);
--static int bq27200_read(u8 reg, int *rt_value, int b_single,
--                      struct bq27x00_device_info *di)
-+static int bq27x00_read_i2c(struct bq27x00_device_info *di, u8 reg, bool single)
- {
--      struct i2c_client *client = di->client;
--      struct i2c_msg msg[1];
-+      struct i2c_client *client = to_i2c_client(di->dev);
-+      struct i2c_msg msg[2];
-       unsigned char data[2];
--      int err;
-+      int ret;
-       if (!client->adapter)
-               return -ENODEV;
--      msg->addr = client->addr;
--      msg->flags = 0;
--      msg->len = 1;
--      msg->buf = data;
--
--      data[0] = reg;
--      err = i2c_transfer(client->adapter, msg, 1);
--
--      if (err >= 0) {
--              if (!b_single)
--                      msg->len = 2;
--              else
--                      msg->len = 1;
-+      msg[0].addr = client->addr;
-+      msg[0].flags = 0;
-+      msg[0].buf = &reg;
-+      msg[0].len = sizeof(reg);
-+      msg[1].addr = client->addr;
-+      msg[1].flags = I2C_M_RD;
-+      msg[1].buf = data;
-+      if (single)
-+              msg[1].len = 1;
-+      else
-+              msg[1].len = 2;
--              msg->flags = I2C_M_RD;
--              err = i2c_transfer(client->adapter, msg, 1);
--              if (err >= 0) {
--                      if (!b_single)
--                              *rt_value = get_unaligned_be16(data);
--                      else
--                              *rt_value = data[0];
-+      ret = i2c_transfer(client->adapter, msg, ARRAY_SIZE(msg));
-+      if (ret < 0)
-+              return ret;
--                      return 0;
--              }
--      }
--      return err;
-+      if (!single)
-+              ret = get_unaligned_le16(data);
-+      else
-+              ret = data[0];
-+
-+      return ret;
- }
--static int bq27200_battery_probe(struct i2c_client *client,
-+static int bq27x00_battery_probe(struct i2c_client *client,
-                                const struct i2c_device_id *id)
- {
-       char *name;
-       struct bq27x00_device_info *di;
--      struct bq27x00_access_methods *bus;
-       int num;
-       int retval = 0;
-@@ -267,7 +611,7 @@ static int bq27200_battery_probe(struct 
-       if (retval < 0)
-               return retval;
--      name = kasprintf(GFP_KERNEL, "bq27200-%d", num);
-+      name = kasprintf(GFP_KERNEL, "%s-%d", id->name, num);
-       if (!name) {
-               dev_err(&client->dev, "failed to allocate device name\n");
-               retval = -ENOMEM;
-@@ -280,37 +624,20 @@ static int bq27200_battery_probe(struct 
-               retval = -ENOMEM;
-               goto batt_failed_2;
-       }
--      di->id = num;
--      bus = kzalloc(sizeof(*bus), GFP_KERNEL);
--      if (!bus) {
--              dev_err(&client->dev, "failed to allocate access method "
--                                      "data\n");
--              retval = -ENOMEM;
--              goto batt_failed_3;
--      }
--
--      i2c_set_clientdata(client, di);
-+      di->id = num;
-       di->dev = &client->dev;
-+      di->chip = id->driver_data;
-       di->bat.name = name;
--      bus->read = &bq27200_read;
--      di->bus = bus;
--      di->client = client;
--
--      bq27x00_powersupply_init(di);
-+      di->bus.read = &bq27x00_read_i2c;
--      retval = power_supply_register(&client->dev, &di->bat);
--      if (retval) {
--              dev_err(&client->dev, "failed to register battery\n");
--              goto batt_failed_4;
--      }
-+      if (bq27x00_powersupply_init(di))
-+              goto batt_failed_3;
--      dev_info(&client->dev, "support ver. %s enabled\n", DRIVER_VERSION);
-+      i2c_set_clientdata(client, di);
-       return 0;
--batt_failed_4:
--      kfree(bus);
- batt_failed_3:
-       kfree(di);
- batt_failed_2:
-@@ -323,11 +650,11 @@ batt_failed_1:
-       return retval;
- }
--static int bq27200_battery_remove(struct i2c_client *client)
-+static int bq27x00_battery_remove(struct i2c_client *client)
- {
-       struct bq27x00_device_info *di = i2c_get_clientdata(client);
--      power_supply_unregister(&di->bat);
-+      bq27x00_powersupply_unregister(di);
-       kfree(di->bat.name);
-@@ -340,31 +667,180 @@ static int bq27200_battery_remove(struct
-       return 0;
- }
--/*
-- * Module stuff
-- */
--
--static const struct i2c_device_id bq27200_id[] = {
--      { "bq27200", 0 },
-+static const struct i2c_device_id bq27x00_id[] = {
-+      { "bq27200", BQ27000 }, /* bq27200 is same as bq27000, but with i2c */
-+      { "bq27500", BQ27500 },
-       {},
- };
-+MODULE_DEVICE_TABLE(i2c, bq27x00_id);
-+
-+static struct i2c_driver bq27x00_battery_driver = {
-+      .driver = {
-+              .name = "bq27x00-battery",
-+      },
-+      .probe = bq27x00_battery_probe,
-+      .remove = bq27x00_battery_remove,
-+      .id_table = bq27x00_id,
-+};
-+
-+static inline int bq27x00_battery_i2c_init(void)
-+{
-+      int ret = i2c_add_driver(&bq27x00_battery_driver);
-+      if (ret)
-+              printk(KERN_ERR "Unable to register BQ27x00 i2c driver\n");
-+
-+      return ret;
-+}
-+
-+static inline void bq27x00_battery_i2c_exit(void)
-+{
-+      i2c_del_driver(&bq27x00_battery_driver);
-+}
-+
-+#else
-+
-+static inline int bq27x00_battery_i2c_init(void) { return 0; }
-+static inline void bq27x00_battery_i2c_exit(void) {};
-+
-+#endif
-+
-+/* platform specific code */
-+#ifdef CONFIG_BATTERY_BQ27X00_PLATFORM
-+
-+static int bq27000_read_platform(struct bq27x00_device_info *di, u8 reg,
-+                      bool single)
-+{
-+      struct device *dev = di->dev;
-+      struct bq27000_platform_data *pdata = dev->platform_data;
-+      unsigned int timeout = 3;
-+      int upper, lower;
-+      int temp;
-+
-+      if (!single) {
-+              /* Make sure the value has not changed in between reading the
-+               * lower and the upper part */
-+              upper = pdata->read(dev, reg + 1);
-+              do {
-+                      temp = upper;
-+                      if (upper < 0)
-+                              return upper;
-+
-+                      lower = pdata->read(dev, reg);
-+                      if (lower < 0)
-+                              return lower;
-+
-+                      upper = pdata->read(dev, reg + 1);
-+              } while (temp != upper && --timeout);
-+
-+              if (timeout == 0)
-+                      return -EIO;
-+
-+              return (upper << 8) | lower;
-+      }
-+
-+      return pdata->read(dev, reg);
-+}
-+
-+static int __devinit bq27000_battery_probe(struct platform_device *pdev)
-+{
-+      struct bq27x00_device_info *di;
-+      struct bq27000_platform_data *pdata = pdev->dev.platform_data;
-+      int ret;
-+
-+      if (!pdata) {
-+              dev_err(&pdev->dev, "no platform_data supplied\n");
-+              return -EINVAL;
-+      }
-+
-+      if (!pdata->read) {
-+              dev_err(&pdev->dev, "no hdq read callback supplied\n");
-+              return -EINVAL;
-+      }
-+
-+      di = kzalloc(sizeof(*di), GFP_KERNEL);
-+      if (!di) {
-+              dev_err(&pdev->dev, "failed to allocate device info data\n");
-+              return -ENOMEM;
-+      }
-+
-+      platform_set_drvdata(pdev, di);
-+
-+      di->dev = &pdev->dev;
-+      di->chip = BQ27000;
-+
-+      di->bat.name = pdata->name ?: dev_name(&pdev->dev);
-+      di->bus.read = &bq27000_read_platform;
--static struct i2c_driver bq27200_battery_driver = {
-+      ret = bq27x00_powersupply_init(di);
-+      if (ret)
-+              goto err_free;
-+
-+      return 0;
-+
-+err_free:
-+      platform_set_drvdata(pdev, NULL);
-+      kfree(di);
-+
-+      return ret;
-+}
-+
-+static int __devexit bq27000_battery_remove(struct platform_device *pdev)
-+{
-+      struct bq27x00_device_info *di = platform_get_drvdata(pdev);
-+
-+      bq27x00_powersupply_unregister(di);
-+
-+      platform_set_drvdata(pdev, NULL);
-+      kfree(di);
-+
-+      return 0;
-+}
-+
-+static struct platform_driver bq27000_battery_driver = {
-+      .probe  = bq27000_battery_probe,
-+      .remove = __devexit_p(bq27000_battery_remove),
-       .driver = {
--              .name = "bq27200-battery",
-+              .name = "bq27000-battery",
-+              .owner = THIS_MODULE,
-       },
--      .probe = bq27200_battery_probe,
--      .remove = bq27200_battery_remove,
--      .id_table = bq27200_id,
- };
-+static inline int bq27x00_battery_platform_init(void)
-+{
-+      int ret = platform_driver_register(&bq27000_battery_driver);
-+      if (ret)
-+              printk(KERN_ERR "Unable to register BQ27000 platform driver\n");
-+
-+      return ret;
-+}
-+
-+static inline void bq27x00_battery_platform_exit(void)
-+{
-+      platform_driver_unregister(&bq27000_battery_driver);
-+}
-+
-+#else
-+
-+static inline int bq27x00_battery_platform_init(void) { return 0; }
-+static inline void bq27x00_battery_platform_exit(void) {};
-+
-+#endif
-+
-+/*
-+ * Module stuff
-+ */
-+
- static int __init bq27x00_battery_init(void)
- {
-       int ret;
--      ret = i2c_add_driver(&bq27200_battery_driver);
-+      ret = bq27x00_battery_i2c_init();
-+      if (ret)
-+              return ret;
-+
-+      ret = bq27x00_battery_platform_init();
-       if (ret)
--              printk(KERN_ERR "Unable to register BQ27200 driver\n");
-+              bq27x00_battery_i2c_exit();
-       return ret;
- }
-@@ -372,7 +848,8 @@ module_init(bq27x00_battery_init);
- static void __exit bq27x00_battery_exit(void)
- {
--      i2c_del_driver(&bq27200_battery_driver);
-+      bq27x00_battery_platform_exit();
-+      bq27x00_battery_i2c_exit();
- }
- module_exit(bq27x00_battery_exit);
diff --git a/kernel-power-2.6.28/debian/patches/l2cap_parent.diff b/kernel-power-2.6.28/debian/patches/l2cap_parent.diff
new file mode 100644 (file)
index 0000000..872a2a2
--- /dev/null
@@ -0,0 +1,33 @@
+From 62c3e306f2d9466f539679dd7357676b19fd5600 Mon Sep 17 00:00:00 2001
+From: David Fries <david@fries.net>
+Date: Sun, 6 Feb 2011 14:34:49 -0600
+Subject: [PATCH] work around for l2cap NULL dereference in l2cap_conn_start
+
+---
+ net/bluetooth/l2cap.c |   10 ++++++++++
+ 1 files changed, 10 insertions(+), 0 deletions(-)
+
+diff --git a/net/bluetooth/l2cap.c b/net/bluetooth/l2cap.c
+index ed83c1f..607ae21 100644
+--- a/net/bluetooth/l2cap.c
++++ b/net/bluetooth/l2cap.c
+@@ -408,6 +408,16 @@ static void l2cap_conn_start(struct l2cap_conn *conn)
+                                       struct sock *parent = bt_sk(sk)->parent;
+                                       rsp.result = cpu_to_le16(L2CAP_CR_PEND);
+                                       rsp.status = cpu_to_le16(L2CAP_CS_AUTHOR_PEND);
++                                      if(!parent)
++                                      {
++                                              printk(KERN_DEBUG "avoided "
++                                                      "crash in %s parent %p "
++                                                      "result %d status %d\n",
++                                                      __func__, parent,
++                                                      rsp.result, rsp.status);
++                                              bh_unlock_sock(sk);
++                                              continue;
++                                      }
+                                       parent->sk_data_ready(parent, 0);
+                               } else {
+-- 
+1.7.2.3
+
diff --git a/kernel-power-2.6.28/debian/patches/rx51_defconfig.diff b/kernel-power-2.6.28/debian/patches/rx51_defconfig.diff
new file mode 100644 (file)
index 0000000..9228ae7
--- /dev/null
@@ -0,0 +1,953 @@
+--- kernel-power-2.6.28/arch/arm/configs/rx51_defconfig        2011-05-03 20:21:15.000000000 +0200
++++ kernel-power-2.6.28/arch/arm/configs/rx51_defconfig        2011-04-16 11:34:24.000000000 +0200
+@@ -36,17 +36,21 @@
+ CONFIG_LOCK_KERNEL=y
+ CONFIG_INIT_ENV_ARG_LIMIT=32
+ CONFIG_LOCALVERSION=""
+-CONFIG_LOCALVERSION_AUTO=y
++#CONFIG_LOCALVERSION_AUTO is not set
+ CONFIG_SWAP=y
+ CONFIG_SYSVIPC=y
+ CONFIG_SYSVIPC_SYSCTL=y
+ CONFIG_POSIX_MQUEUE=y
+ CONFIG_BSD_PROCESS_ACCT=y
+ # CONFIG_BSD_PROCESS_ACCT_V3 is not set
+-# CONFIG_TASKSTATS is not set
++CONFIG_TASKSTATS=y
++CONFIG_TASK_DELAY_ACCT=y
++CONFIG_TASK_XACCT=y
++CONFIG_TASK_IO_ACCOUNTING=y
+ # CONFIG_AUDIT is not set
+-# CONFIG_IKCONFIG is not set
+-CONFIG_LOG_BUF_SHIFT=14
++CONFIG_IKCONFIG=m
++CONFIG_IKCONFIG_PROC=y
++CONFIG_LOG_BUF_SHIFT=16
+ CONFIG_CGROUPS=y
+ # CONFIG_CGROUP_DEBUG is not set
+ # CONFIG_CGROUP_NS is not set
+@@ -69,6 +73,7 @@
+ CONFIG_INITRAMFS_SOURCE=""
+ CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+ CONFIG_SYSCTL=y
++CONFIG_ANON_INODES=y
+ CONFIG_EMBEDDED=y
+ CONFIG_UID16=y
+ CONFIG_SYSCTL_SYSCALL=y
+@@ -79,10 +84,8 @@
+ 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
+@@ -91,6 +94,7 @@
+ CONFIG_AIO=y
+ CONFIG_VM_EVENT_COUNTERS=y
+ CONFIG_SLUB_DEBUG=y
++CONFIG_COMPAT_BRK=y
+ # CONFIG_SLAB is not set
+ CONFIG_SLUB=y
+ # CONFIG_SLOB is not set
+@@ -118,7 +122,7 @@
+ CONFIG_BLOCK=y
+ # CONFIG_LBD is not set
+ # CONFIG_BLK_DEV_IO_TRACE is not set
+-# CONFIG_LSF is not set
++CONFIG_LSF=y
+ # CONFIG_BLK_DEV_BSG is not set
+ # CONFIG_BLK_DEV_INTEGRITY is not set
+@@ -265,8 +269,8 @@
+ #
+ # Processor Features
+ #
+-# CONFIG_ARM_THUMB is not set
+-# CONFIG_ARM_THUMBEE is not set
++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
+@@ -279,6 +283,7 @@
+ # CONFIG_PCI_SYSCALL is not set
+ # CONFIG_ARCH_SUPPORTS_MSI is not set
+ # CONFIG_PCCARD is not set
++CONFIG_ARM_ERRATA_430973=y
+ #
+ # Kernel Features
+@@ -338,10 +343,10 @@
+ # CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
+ # CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
+ # CONFIG_CPU_FREQ_GOV_PERFORMANCE is not set
+-# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set
++CONFIG_CPU_FREQ_GOV_POWERSAVE=m
+ CONFIG_CPU_FREQ_GOV_USERSPACE=y
+ CONFIG_CPU_FREQ_GOV_ONDEMAND=y
+-# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set
++CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
+ CONFIG_CPU_IDLE=y
+ CONFIG_CPU_IDLE_GOV_LADDER=y
+ CONFIG_CPU_IDLE_GOV_MENU=y
+@@ -387,40 +392,65 @@
+ # CONFIG_PACKET_MMAP is not set
+ CONFIG_UNIX=y
+ CONFIG_XFRM=y
+-# CONFIG_XFRM_USER is not set
++CONFIG_XFRM_USER=y
+ # CONFIG_XFRM_SUB_POLICY is not set
+ # CONFIG_XFRM_MIGRATE is not set
+ # CONFIG_XFRM_STATISTICS is not set
++CONFIG_XFRM_IPCOMP=m
+ CONFIG_NET_KEY=y
+ # CONFIG_NET_KEY_MIGRATE is not set
+ CONFIG_INET=y
+ # CONFIG_IP_MULTICAST is not set
+-# CONFIG_IP_ADVANCED_ROUTER is not set
++CONFIG_IP_ADVANCED_ROUTER=y
++CONFIG_ASK_IP_FIB_HASH=y
++# CONFIG_IP_FIB_TRIE is not set
+ CONFIG_IP_FIB_HASH=y
++CONFIG_IP_MULTIPLE_TABLES=y
++# CONFIG_IP_ROUTE_MULTIPATH is not set
++# CONFIG_IP_ROUTE_VERBOSE is not set
+ CONFIG_IP_PNP=y
+ CONFIG_IP_PNP_DHCP=y
+ CONFIG_IP_PNP_BOOTP=y
+ CONFIG_IP_PNP_RARP=y
+-# CONFIG_NET_IPIP is not set
+-# CONFIG_NET_IPGRE is not set
++CONFIG_NET_IPIP=m
++CONFIG_NET_IPGRE=m
+ # CONFIG_ARPD is not set
+ # CONFIG_SYN_COOKIES is not set
+-# CONFIG_INET_AH is not set
+-# CONFIG_INET_ESP is not set
+-# CONFIG_INET_IPCOMP is not set
+-# CONFIG_INET_XFRM_TUNNEL is not set
+-# CONFIG_INET_TUNNEL is not set
+-CONFIG_INET_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_INET_AH=m
++CONFIG_INET_ESP=m
++CONFIG_INET_IPCOMP=m
++CONFIG_INET_XFRM_TUNNEL=m
++CONFIG_INET_TUNNEL=m
++CONFIG_INET_XFRM_MODE_TRANSPORT=m
++CONFIG_INET_XFRM_MODE_TUNNEL=m
++CONFIG_INET_XFRM_MODE_BEET=m
++CONFIG_INET_LRO=m
++CONFIG_INET_DIAG=m
++CONFIG_INET_TCP_DIAG=m
+ # 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 is not set
++CONFIG_IPV6=m
++CONFIG_IPV6_PRIVACY=y
++CONFIG_IPV6_ROUTER_PREF=y
++# CONFIG_IPV6_ROUTE_INFO is not set
++# CONFIG_IPV6_OPTIMISTIC_DAD is not set
++CONFIG_INET6_AH=m
++CONFIG_INET6_ESP=m
++CONFIG_INET6_IPCOMP=m
++CONFIG_IPV6_MIP6=m
++CONFIG_INET6_XFRM_TUNNEL=m
++CONFIG_INET6_TUNNEL=m
++CONFIG_INET6_XFRM_MODE_TRANSPORT=m
++CONFIG_INET6_XFRM_MODE_TUNNEL=m
++CONFIG_INET6_XFRM_MODE_BEET=m
++# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION 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_NETLABEL is not set
+ # CONFIG_NETWORK_SECMARK is not set
+ CONFIG_NETFILTER=y
+@@ -432,44 +462,73 @@
+ #
+ # CONFIG_NETFILTER_NETLINK_QUEUE is not set
+ # CONFIG_NETFILTER_NETLINK_LOG is not set
+-# CONFIG_NF_CONNTRACK is not set
++CONFIG_NF_CONNTRACK=m
++# CONFIG_NF_CT_ACCT is not set
++CONFIG_NF_CONNTRACK_MARK=y
++# CONFIG_NF_CONNTRACK_EVENTS is not set
++# CONFIG_NF_CT_PROTO_DCCP is not set
++CONFIG_NF_CT_PROTO_GRE=m
++# CONFIG_NF_CT_PROTO_SCTP is not set
++# CONFIG_NF_CT_PROTO_UDPLITE is not set
++# CONFIG_NF_CONNTRACK_AMANDA is not set
++CONFIG_NF_CONNTRACK_FTP=m
++CONFIG_NF_CONNTRACK_H323=m
++CONFIG_NF_CONNTRACK_IRC=m
++CONFIG_NF_CONNTRACK_NETBIOS_NS=m
++CONFIG_NF_CONNTRACK_PPTP=m
++# CONFIG_NF_CONNTRACK_SANE is not set
++CONFIG_NF_CONNTRACK_SIP=m
++# CONFIG_NF_CONNTRACK_TFTP is not set
++# CONFIG_NF_CT_NETLINK is not set
++# CONFIG_NETFILTER_TPROXY is not set
+ CONFIG_NETFILTER_XTABLES=m
+-# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set
+-# CONFIG_NETFILTER_XT_TARGET_MARK is not set
++CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
++CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
++# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
++CONFIG_NETFILTER_XT_TARGET_MARK=m
+ # CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
+ # CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
+ # CONFIG_NETFILTER_XT_TARGET_RATEEST is not set
+-# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set
++CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
++# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set
+ # CONFIG_NETFILTER_XT_MATCH_COMMENT is not set
++# CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set
++CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
++CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
++CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
+ # CONFIG_NETFILTER_XT_MATCH_DCCP is not set
+ # CONFIG_NETFILTER_XT_MATCH_DSCP is not set
+ # CONFIG_NETFILTER_XT_MATCH_ESP is not set
+ # CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
+-# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set
++CONFIG_NETFILTER_XT_MATCH_HELPER=m
++CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
+ # CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
+-# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set
+-# CONFIG_NETFILTER_XT_MATCH_MAC is not set
++CONFIG_NETFILTER_XT_MATCH_LIMIT=m
++CONFIG_NETFILTER_XT_MATCH_MAC=m
+ # CONFIG_NETFILTER_XT_MATCH_MARK is not set
+-# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
++CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
+ # CONFIG_NETFILTER_XT_MATCH_OWNER is not set
+-# CONFIG_NETFILTER_XT_MATCH_POLICY is not set
++CONFIG_NETFILTER_XT_MATCH_POLICY=m
+ # CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set
+ # CONFIG_NETFILTER_XT_MATCH_QUOTA is not set
+ # CONFIG_NETFILTER_XT_MATCH_RATEEST is not set
+ # CONFIG_NETFILTER_XT_MATCH_REALM is not set
+ # CONFIG_NETFILTER_XT_MATCH_RECENT is not set
+ # CONFIG_NETFILTER_XT_MATCH_SCTP is not set
++CONFIG_NETFILTER_XT_MATCH_STATE=m
+ # CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set
+ # CONFIG_NETFILTER_XT_MATCH_STRING is not set
+-# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set
++CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
+ # CONFIG_NETFILTER_XT_MATCH_TIME is not set
+-# CONFIG_NETFILTER_XT_MATCH_U32 is not set
++CONFIG_NETFILTER_XT_MATCH_U32=m
+ # CONFIG_IP_VS is not set
+ #
+ # IP: Netfilter Configuration
+ #
+-# CONFIG_NF_DEFRAG_IPV4 is not set
++CONFIG_NF_DEFRAG_IPV4=m
++CONFIG_NF_CONNTRACK_IPV4=m
++CONFIG_NF_CONNTRACK_PROC_COMPAT=y
+ # CONFIG_IP_NF_QUEUE is not set
+ CONFIG_IP_NF_IPTABLES=m
+ # CONFIG_IP_NF_MATCH_ADDRTYPE is not set
+@@ -477,16 +536,54 @@
+ # CONFIG_IP_NF_MATCH_ECN is not set
+ # CONFIG_IP_NF_MATCH_TTL is not set
+ CONFIG_IP_NF_FILTER=m
+-# CONFIG_IP_NF_TARGET_REJECT is not set
+-# CONFIG_IP_NF_TARGET_LOG is not set
++CONFIG_IP_NF_TARGET_REJECT=m
++CONFIG_IP_NF_TARGET_LOG=m
+ # CONFIG_IP_NF_TARGET_ULOG is not set
++CONFIG_NF_NAT=m
++CONFIG_NF_NAT_NEEDED=y
++CONFIG_IP_NF_TARGET_MASQUERADE=m
++CONFIG_IP_NF_TARGET_NETMAP=m
++CONFIG_IP_NF_TARGET_REDIRECT=m
+ # CONFIG_IP_NF_TARGET_IDLETIMER is not set
+-# CONFIG_IP_NF_MANGLE is not set
++# CONFIG_NF_NAT_SNMP_BASIC is not set
++CONFIG_NF_NAT_PROTO_GRE=m
++CONFIG_NF_NAT_FTP=m
++CONFIG_NF_NAT_IRC=m
++# CONFIG_NF_NAT_TFTP is not set
++# CONFIG_NF_NAT_AMANDA is not set
++CONFIG_NF_NAT_PPTP=m
++CONFIG_NF_NAT_H323=m
++CONFIG_NF_NAT_SIP=m
++CONFIG_IP_NF_MANGLE=m
++# CONFIG_IP_NF_TARGET_CLUSTERIP is not set
++# CONFIG_IP_NF_TARGET_ECN is not set
++# CONFIG_IP_NF_TARGET_TTL is not set
+ # CONFIG_IP_NF_RAW is not set
+ # CONFIG_IP_NF_SECURITY is not set
+ # CONFIG_IP_NF_ARPTABLES is not set
+ CONFIG_IP_NF_HB=m
+ # CONFIG_IP_NF_HB_DEBUG is not set
++
++#
++# IPv6: Netfilter Configuration
++#
++CONFIG_NF_CONNTRACK_IPV6=m
++# CONFIG_IP6_NF_QUEUE is not set
++CONFIG_IP6_NF_IPTABLES=m
++# CONFIG_IP6_NF_MATCH_AH is not set
++# CONFIG_IP6_NF_MATCH_EUI64 is not set
++# CONFIG_IP6_NF_MATCH_FRAG is not set
++# CONFIG_IP6_NF_MATCH_OPTS is not set
++# CONFIG_IP6_NF_MATCH_HL is not set
++# CONFIG_IP6_NF_MATCH_IPV6HEADER is not set
++# CONFIG_IP6_NF_MATCH_MH is not set
++# CONFIG_IP6_NF_MATCH_RT is not set
++CONFIG_IP6_NF_TARGET_LOG=m
++CONFIG_IP6_NF_FILTER=m
++# CONFIG_IP6_NF_TARGET_REJECT is not set
++# CONFIG_IP6_NF_MANGLE is not set
++# CONFIG_IP6_NF_RAW is not set
++# CONFIG_IP6_NF_SECURITY is not set
+ # CONFIG_IP_DCCP is not set
+ # CONFIG_IP_SCTP is not set
+ # CONFIG_TIPC is not set
+@@ -503,7 +600,52 @@
+ # CONFIG_ECONET is not set
+ # CONFIG_WAN_ROUTER is not set
+ CONFIG_PHONET=m
+-# CONFIG_NET_SCHED is not set
++CONFIG_NET_SCHED=y
++
++#
++# Queueing/Scheduling
++#
++CONFIG_NET_SCH_CBQ=m
++CONFIG_NET_SCH_HTB=m
++CONFIG_NET_SCH_HFSC=m
++CONFIG_NET_SCH_PRIO=m
++# CONFIG_NET_SCH_MULTIQ is not set
++# CONFIG_NET_SCH_RED is not set
++CONFIG_NET_SCH_SFQ=m
++# CONFIG_NET_SCH_TEQL is not set
++CONFIG_NET_SCH_TBF=m
++# CONFIG_NET_SCH_GRED is not set
++CONFIG_NET_SCH_DSMARK=m
++# CONFIG_NET_SCH_NETEM is not set
++CONFIG_NET_SCH_INGRESS=m
++
++#
++# Classification
++#
++CONFIG_NET_CLS=y
++CONFIG_NET_CLS_BASIC=m
++CONFIG_NET_CLS_TCINDEX=m
++# CONFIG_NET_CLS_ROUTE4 is not set
++CONFIG_NET_CLS_FW=m
++CONFIG_NET_CLS_U32=m
++# CONFIG_CLS_U32_PERF is not set
++# CONFIG_CLS_U32_MARK is not set
++CONFIG_NET_CLS_RSVP=m
++CONFIG_NET_CLS_RSVP6=m
++CONFIG_NET_CLS_FLOW=m
++# CONFIG_NET_EMATCH is not set
++CONFIG_NET_CLS_ACT=y
++CONFIG_NET_ACT_POLICE=m
++CONFIG_NET_ACT_GACT=m
++# CONFIG_GACT_PROB is not set
++# CONFIG_NET_ACT_MIRRED is not set
++CONFIG_NET_ACT_IPT=m
++# CONFIG_NET_ACT_NAT is not set
++# CONFIG_NET_ACT_PEDIT is not set
++# CONFIG_NET_ACT_SIMP is not set
++# CONFIG_NET_ACT_SKBEDIT is not set
++# CONFIG_NET_CLS_IND is not set
++CONFIG_NET_SCH_FIFO=y
+ #
+ # Network testing
+@@ -537,8 +679,9 @@
+ CONFIG_BT_HCIH4P=m
+ # CONFIG_BT_HCIVHCI is not set
+ # CONFIG_AF_RXRPC is not set
++CONFIG_FIB_RULES=y
+ CONFIG_WIRELESS=y
+-CONFIG_CFG80211=y
++CONFIG_CFG80211=m
+ CONFIG_NL80211=y
+ CONFIG_WIRELESS_OLD_REGULATORY=y
+ CONFIG_WIRELESS_EXT=y
+@@ -553,7 +696,7 @@
+ # CONFIG_MAC80211_RC_DEFAULT_PID is not set
+ CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
+ CONFIG_MAC80211_RC_DEFAULT="minstrel"
+-# CONFIG_MAC80211_MESH is not set
++CONFIG_MAC80211_MESH=y
+ # CONFIG_MAC80211_LEDS is not set
+ # CONFIG_MAC80211_DEBUGFS is not set
+ # CONFIG_MAC80211_DEBUG_MENU is not set
+@@ -592,9 +735,9 @@
+ # User Modules And Translation Layers
+ #
+ CONFIG_MTD_CHAR=y
+-# CONFIG_MTD_BLKDEVS is not set
+-# CONFIG_MTD_BLOCK is not set
+-# CONFIG_MTD_BLOCK_RO is not set
++CONFIG_MTD_BLKDEVS=m
++CONFIG_MTD_BLOCK=m
++CONFIG_MTD_BLOCK_RO=m
+ # CONFIG_FTL is not set
+ # CONFIG_NFTL is not set
+ # CONFIG_INFTL is not set
+@@ -635,7 +778,7 @@
+ # CONFIG_MTD_SLRAM is not set
+ # CONFIG_MTD_PHRAM is not set
+ # CONFIG_MTD_MTDRAM is not set
+-# CONFIG_MTD_BLOCK2MTD is not set
++CONFIG_MTD_BLOCK2MTD=m
+ #
+ # Disk-On-Chip Device Drivers
+@@ -643,7 +786,17 @@
+ # CONFIG_MTD_DOC2000 is not set
+ # CONFIG_MTD_DOC2001 is not set
+ # CONFIG_MTD_DOC2001PLUS is not set
+-# CONFIG_MTD_NAND is not set
++CONFIG_MTD_NAND=m
++# CONFIG_MTD_NAND_VERIFY_WRITE is not set
++# CONFIG_MTD_NAND_ECC_SMC is not set
++# CONFIG_MTD_NAND_MUSEUM_IDS is not set
++# CONFIG_MTD_NAND_GPIO is not set
++# CONFIG_MTD_NAND_OMAP2 is not set
++CONFIG_MTD_NAND_IDS=m
++# CONFIG_MTD_NAND_DISKONCHIP is not set
++CONFIG_MTD_NAND_NANDSIM=m
++# CONFIG_MTD_NAND_PLATFORM is not set
++# CONFIG_MTD_ALAUDA is not set
+ CONFIG_MTD_ONENAND=y
+ # CONFIG_MTD_ONENAND_VERIFY_WRITE is not set
+ # CONFIG_MTD_ONENAND_GENERIC is not set
+@@ -669,7 +822,7 @@
+ # CONFIG_BLK_DEV_COW_COMMON is not set
+ CONFIG_BLK_DEV_LOOP=y
+ # CONFIG_BLK_DEV_CRYPTOLOOP is not set
+-# CONFIG_BLK_DEV_NBD is not set
++CONFIG_BLK_DEV_NBD=m
+ # CONFIG_BLK_DEV_UB is not set
+ CONFIG_BLK_DEV_RAM=y
+ CONFIG_BLK_DEV_RAM_COUNT=16
+@@ -736,8 +889,20 @@
+ # CONFIG_SCSI_DEBUG is not set
+ # CONFIG_SCSI_DH is not set
+ # CONFIG_ATA is not set
+-# CONFIG_MD is not set
++CONFIG_MD=y
++# CONFIG_BLK_DEV_MD is not set
++CONFIG_BLK_DEV_DM=m
++# CONFIG_DM_DEBUG is not set
++CONFIG_DM_CRYPT=m
++CONFIG_DM_LOOP=m
++# CONFIG_DM_SNAPSHOT is not set
++# CONFIG_DM_MIRROR is not set
++# CONFIG_DM_ZERO is not set
++# CONFIG_DM_MULTIPATH is not set
++# CONFIG_DM_DELAY is not set
++# CONFIG_DM_UEVENT is not set
+ CONFIG_NETDEVICES=y
++# CONFIG_IFB is not set
+ # CONFIG_DUMMY is not set
+ # CONFIG_BONDING is not set
+ # CONFIG_MACVLAN is not set
+@@ -792,10 +957,40 @@
+ # CONFIG_USB_KAWETH is not set
+ # CONFIG_USB_PEGASUS is not set
+ # CONFIG_USB_RTL8150 is not set
+-# CONFIG_USB_USBNET is not set
++CONFIG_USB_USBNET=m
++CONFIG_USB_NET_AX8817X=m
++CONFIG_USB_NET_CDCETHER=m
++# CONFIG_USB_NET_DM9601 is not set
++# CONFIG_USB_NET_SMSC95XX is not set
++# CONFIG_USB_NET_GL620A is not set
++CONFIG_USB_NET_NET1080=m
++# CONFIG_USB_NET_PLUSB is not set
++CONFIG_USB_NET_MCS7830=m
++# CONFIG_USB_NET_RNDIS_HOST is not set
++CONFIG_USB_NET_CDC_SUBSET=m
++# CONFIG_USB_ALI_M5632 is not set
++# CONFIG_USB_AN2720 is not set
++CONFIG_USB_BELKIN=y
++CONFIG_USB_ARMLINUX=y
++# CONFIG_USB_EPSON2888 is not set
++# CONFIG_USB_KC2190 is not set
++CONFIG_USB_NET_ZAURUS=m
+ # CONFIG_WAN is not set
+-# CONFIG_PPP is not set
+-# CONFIG_SLIP is not set
++CONFIG_PPP=m
++# CONFIG_PPP_MULTILINK is not set
++CONFIG_PPP_FILTER=y
++CONFIG_PPP_ASYNC=m
++# CONFIG_PPP_SYNC_TTY is not set
++CONFIG_PPP_DEFLATE=m
++CONFIG_PPP_BSDCOMP=m
++CONFIG_PPP_MPPE=m
++CONFIG_PPPOE=m
++CONFIG_PPPOL2TP=m
++CONFIG_SLIP=m
++CONFIG_SLIP_COMPRESSED=y
++CONFIG_SLHC=m
++CONFIG_SLIP_SMART=y
++# CONFIG_SLIP_MODE_SLIP6 is not set
+ # CONFIG_NETCONSOLE is not set
+ # CONFIG_NETPOLL is not set
+ # CONFIG_NET_POLL_CONTROLLER is not set
+@@ -811,8 +1006,11 @@
+ #
+ # Userland interfaces
+ #
+-# CONFIG_INPUT_MOUSEDEV is not set
+-# CONFIG_INPUT_JOYDEV is not set
++CONFIG_INPUT_MOUSEDEV=m
++CONFIG_INPUT_MOUSEDEV_PSAUX=y
++CONFIG_INPUT_MOUSEDEV_SCREEN_X=800
++CONFIG_INPUT_MOUSEDEV_SCREEN_Y=480
++CONFIG_INPUT_JOYDEV=m
+ CONFIG_INPUT_EVDEV=y
+ # CONFIG_INPUT_EVBUG is not set
+@@ -998,7 +1196,12 @@
+ # CONFIG_GPIO_MAX7301 is not set
+ # CONFIG_GPIO_MCP23S08 is not set
+ # CONFIG_W1 is not set
+-# CONFIG_POWER_SUPPLY is not set
++CONFIG_POWER_SUPPLY=m
++# CONFIG_POWER_SUPPLY_DEBUG is not set
++# CONFIG_PDA_POWER is not set
++# CONFIG_BATTERY_DS2760 is not set
++# CONFIG_TWL4030_BCI_BATTERY is not set
++CONFIG_BATTERY_BQ27x00=m
+ CONFIG_HWMON=y
+ # CONFIG_HWMON_VID is not set
+ # CONFIG_SENSORS_AD7414 is not set
+@@ -1218,8 +1421,31 @@
+ CONFIG_VIDEO_SMIAREGS=m
+ # CONFIG_SOC_CAMERA is not set
+ CONFIG_V4L_USB_DRIVERS=y
+-# CONFIG_USB_VIDEO_CLASS is not set
+-# CONFIG_USB_GSPCA is not set
++CONFIG_USB_VIDEO_CLASS=m
++CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
++CONFIG_USB_GSPCA=m
++# CONFIG_USB_M5602 is not set
++# CONFIG_USB_GSPCA_CONEX is not set
++# CONFIG_USB_GSPCA_ETOMS is not set
++# CONFIG_USB_GSPCA_FINEPIX is not set
++# CONFIG_USB_GSPCA_MARS is not set
++# CONFIG_USB_GSPCA_OV519 is not set
++# CONFIG_USB_GSPCA_PAC207 is not set
++# CONFIG_USB_GSPCA_PAC7311 is not set
++# CONFIG_USB_GSPCA_SONIXB is not set
++# CONFIG_USB_GSPCA_SONIXJ is not set
++# CONFIG_USB_GSPCA_SPCA500 is not set
++# CONFIG_USB_GSPCA_SPCA501 is not set
++# CONFIG_USB_GSPCA_SPCA505 is not set
++# CONFIG_USB_GSPCA_SPCA506 is not set
++# CONFIG_USB_GSPCA_SPCA508 is not set
++# CONFIG_USB_GSPCA_SPCA561 is not set
++# CONFIG_USB_GSPCA_STK014 is not set
++# CONFIG_USB_GSPCA_SUNPLUS is not set
++# CONFIG_USB_GSPCA_T613 is not set
++# CONFIG_USB_GSPCA_TV8532 is not set
++# CONFIG_USB_GSPCA_VC032X is not set
++# CONFIG_USB_GSPCA_ZC3XX is not set
+ # CONFIG_VIDEO_PVRUSB2 is not set
+ # CONFIG_VIDEO_EM28XX is not set
+ # CONFIG_VIDEO_USBVISION is not set
+@@ -1250,9 +1476,10 @@
+ # Graphics support
+ #
+ CONFIG_PVR=m
+-# CONFIG_DRM_VER_ORIG is not set
+-# CONFIG_DRM_VER_TUNGSTEN is not set
+-# CONFIG_DRM_TUNGSTEN is not set
++CONFIG_PVR_RELEASE=y
++# CONFIG_PVR_DEBUG is not set
++# CONFIG_PVR_TIMING is not set
++# CONFIG_PVR_EXAMPLES is not set
+ # CONFIG_VGASTATE is not set
+ # CONFIG_VIDEO_OUTPUT_CONTROL is not set
+ CONFIG_FB=y
+@@ -1324,7 +1551,12 @@
+ #
+ # CONFIG_VGA_CONSOLE is not set
+ CONFIG_DUMMY_CONSOLE=y
+-# CONFIG_FRAMEBUFFER_CONSOLE is not set
++CONFIG_FRAMEBUFFER_CONSOLE=m
++# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
++# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
++# CONFIG_FONTS is not set
++CONFIG_FONT_8x8=m
++CONFIG_FONT_8x16=m
+ # CONFIG_LOGO is not set
+ CONFIG_SOUND=y
+ # CONFIG_SOUND_OSS_CORE is not set
+@@ -1402,8 +1634,8 @@
+ CONFIG_USB_ARCH_HAS_OHCI=y
+ CONFIG_USB_ARCH_HAS_EHCI=y
+ CONFIG_USB=y
+-# CONFIG_USB_DEBUG is not set
+-# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
++CONFIG_USB_DEBUG=y
++CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
+ #
+ # Miscellaneous USB options
+@@ -1413,8 +1645,8 @@
+ CONFIG_USB_DYNAMIC_MINORS=y
+ CONFIG_USB_SUSPEND=y
+ CONFIG_USB_OTG=y
+-CONFIG_USB_OTG_WHITELIST=y
+-CONFIG_USB_OTG_BLACKLIST_HUB=y
++# CONFIG_USB_OTG_WHITELIST is not set
++# CONFIG_USB_OTG_BLACKLIST_HUB is not set
+ CONFIG_USB_MON=y
+ # CONFIG_USB_WUSB is not set
+ # CONFIG_USB_WUSB_CBAF is not set
+@@ -1449,10 +1681,10 @@
+ #
+ # USB Device Class drivers
+ #
+-# CONFIG_USB_ACM is not set
+-# CONFIG_USB_PRINTER is not set
+-# CONFIG_USB_WDM is not set
+-# CONFIG_USB_TMC is not set
++CONFIG_USB_ACM=m
++CONFIG_USB_PRINTER=m
++CONFIG_USB_WDM=m
++CONFIG_USB_TMC=m
+ #
+ # NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
+@@ -1486,7 +1718,49 @@
+ #
+ # USB port drivers
+ #
+-# CONFIG_USB_SERIAL is not set
++CONFIG_USB_SERIAL=m
++# CONFIG_USB_EZUSB is not set
++CONFIG_USB_SERIAL_GENERIC=y
++# CONFIG_USB_SERIAL_AIRCABLE is not set
++# CONFIG_USB_SERIAL_ARK3116 is not set
++# CONFIG_USB_SERIAL_BELKIN is not set
++# CONFIG_USB_SERIAL_CH341 is not set
++# CONFIG_USB_SERIAL_WHITEHEAT is not set
++# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
++# CONFIG_USB_SERIAL_CP2101 is not set
++# CONFIG_USB_SERIAL_CYPRESS_M8 is not set
++# CONFIG_USB_SERIAL_EMPEG is not set
++CONFIG_USB_SERIAL_FTDI_SIO=m
++# CONFIG_USB_SERIAL_FUNSOFT is not set
++# CONFIG_USB_SERIAL_VISOR is not set
++# CONFIG_USB_SERIAL_IPAQ is not set
++# CONFIG_USB_SERIAL_IR is not set
++# CONFIG_USB_SERIAL_EDGEPORT is not set
++# CONFIG_USB_SERIAL_EDGEPORT_TI is not set
++# CONFIG_USB_SERIAL_GARMIN is not set
++# CONFIG_USB_SERIAL_IPW is not set
++# CONFIG_USB_SERIAL_IUU is not set
++# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set
++# CONFIG_USB_SERIAL_KEYSPAN is not set
++# CONFIG_USB_SERIAL_KLSI is not set
++# CONFIG_USB_SERIAL_KOBIL_SCT is not set
++# CONFIG_USB_SERIAL_MCT_U232 is not set
++# CONFIG_USB_SERIAL_MOS7720 is not set
++# CONFIG_USB_SERIAL_MOS7840 is not set
++# CONFIG_USB_SERIAL_MOTOROLA is not set
++# CONFIG_USB_SERIAL_NAVMAN is not set
++CONFIG_USB_SERIAL_PL2303=m
++# CONFIG_USB_SERIAL_OTI6858 is not set
++# CONFIG_USB_SERIAL_SPCP8X5 is not set
++# CONFIG_USB_SERIAL_HP4X is not set
++# CONFIG_USB_SERIAL_SAFE is not set
++# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set
++# CONFIG_USB_SERIAL_TI is not set
++# CONFIG_USB_SERIAL_CYBERJACK is not set
++# CONFIG_USB_SERIAL_XIRCOM is not set
++CONFIG_USB_SERIAL_OPTION=m
++# CONFIG_USB_SERIAL_OMNINET is not set
++# CONFIG_USB_SERIAL_DEBUG is not set
+ #
+ # USB Miscellaneous drivers
+@@ -1534,14 +1808,15 @@
+ # CONFIG_USB_GADGET_DUMMY_HCD is not set
+ CONFIG_USB_GADGET_DUALSPEED=y
+ CONFIG_USB_ZERO=m
+-# CONFIG_USB_ZERO_HNPTEST is not set
+-# CONFIG_USB_ETH is not set
++CONFIG_USB_ZERO_HNPTEST=y
++CONFIG_USB_ETH=m
++CONFIG_USB_ETH_RNDIS=y
+ # CONFIG_USB_GADGETFS is not set
+ CONFIG_USB_FILE_STORAGE=m
+ CONFIG_USB_FILE_STORAGE_TEST=y
+-# CONFIG_USB_G_SERIAL is not set
++CONFIG_USB_G_SERIAL=m
+ # CONFIG_USB_MIDI_GADGET is not set
+-# CONFIG_USB_G_PRINTER is not set
++CONFIG_USB_G_PRINTER=m
+ # CONFIG_USB_CDC_COMPOSITE is not set
+ CONFIG_USB_G_NOKIA=m
+ CONFIG_USB_G_SOFTUPD=m
+@@ -1550,9 +1825,12 @@
+ # OTG and related infrastructure
+ #
+ CONFIG_USB_OTG_UTILS=y
+-# CONFIG_USB_GPIO_VBUS is not set
++CONFIG_USB_GPIO_VBUS=m
+ # CONFIG_ISP1301_OMAP is not set
+ CONFIG_TWL4030_USB=y
++CONFIG_USB_IP_COMMON=m
++CONFIG_USB_IP_VHCI_HCD=m
++CONFIG_USB_IP_HOST=m
+ CONFIG_MMC=m
+ # CONFIG_MMC_DEBUG is not set
+ CONFIG_MMC_UNSAFE_RESUME=y
+@@ -1595,6 +1873,7 @@
+ CONFIG_LEDS_TRIGGER_HEARTBEAT=y
+ # CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
+ # CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
++CONFIG_LEDS_TRIGGER_KEYB=y
+ CONFIG_RTC_LIB=y
+ CONFIG_RTC_CLASS=m
+@@ -1680,14 +1959,28 @@
+ # CONFIG_EXT2_FS_XIP is not set
+ CONFIG_EXT3_FS=m
+ # CONFIG_EXT3_FS_XATTR is not set
+-# CONFIG_EXT4_FS is not set
++CONFIG_EXT4_FS=m
++# CONFIG_EXT4DEV_COMPAT is not set
++CONFIG_EXT4_FS_XATTR=y
++# CONFIG_EXT4_FS_POSIX_ACL is not set
++# CONFIG_EXT4_FS_SECURITY is not set
+ CONFIG_JBD=m
+ # CONFIG_JBD_DEBUG is not set
+-# CONFIG_REISERFS_FS is not set
++CONFIG_JBD2=m
++# CONFIG_JBD2_DEBUG is not set
++CONFIG_FS_MBCACHE=m
++CONFIG_REISERFS_FS=m
++# CONFIG_REISERFS_CHECK is not set
++# CONFIG_REISERFS_PROC_INFO is not set
++# CONFIG_REISERFS_FS_XATTR is not set
+ # CONFIG_JFS_FS is not set
+ # CONFIG_FS_POSIX_ACL is not set
+ CONFIG_FILE_LOCKING=y
+-# CONFIG_XFS_FS is not set
++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_OCFS2_FS is not set
+ CONFIG_DNOTIFY=y
+ CONFIG_INOTIFY=y
+@@ -1699,14 +1992,17 @@
+ CONFIG_QFMT_V2=y
+ CONFIG_QUOTACTL=y
+ # CONFIG_AUTOFS_FS is not set
+-# CONFIG_AUTOFS4_FS is not set
++CONFIG_AUTOFS4_FS=m
+ CONFIG_FUSE_FS=m
+ #
+ # CD-ROM/DVD Filesystems
+ #
+-# CONFIG_ISO9660_FS is not set
+-# CONFIG_UDF_FS is not set
++CONFIG_ISO9660_FS=m
++CONFIG_JOLIET=y
++# CONFIG_ZISOFS is not set
++CONFIG_UDF_FS=m
++CONFIG_UDF_NLS=y
+ #
+ # DOS/FAT/NT Filesystems
+@@ -1716,7 +2012,9 @@
+ CONFIG_VFAT_FS=m
+ CONFIG_FAT_DEFAULT_CODEPAGE=437
+ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+-# CONFIG_NTFS_FS is not set
++CONFIG_NTFS_FS=m
++# CONFIG_NTFS_DEBUG is not set
++# CONFIG_NTFS_RW is not set
+ #
+ # Pseudo filesystems
+@@ -1731,12 +2029,19 @@
+ # CONFIG_CONFIGFS_FS is not set
+ #
++# Layered filesystems
++#
++CONFIG_UNION_FS=m
++# CONFIG_UNION_FS_XATTR is not set
++# CONFIG_UNION_FS_DEBUG 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_HFSPLUS_FS=m
+ # CONFIG_BEFS_FS is not set
+ # CONFIG_BFS_FS is not set
+ # CONFIG_EFS_FS is not set
+@@ -1748,6 +2053,9 @@
+ CONFIG_UBIFS_FS_ZLIB=y
+ # CONFIG_UBIFS_FS_DEBUG is not set
+ CONFIG_CRAMFS=y
++CONFIG_SQUASHFS=m
++# CONFIG_SQUASHFS_EMBEDDED is not set
++CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
+ # CONFIG_VXFS_FS is not set
+ # CONFIG_MINIX_FS is not set
+ # CONFIG_OMFS_FS is not set
+@@ -1771,7 +2079,12 @@
+ CONFIG_RPCSEC_GSS_KRB5=m
+ # CONFIG_RPCSEC_GSS_SPKM3 is not set
+ # CONFIG_SMB_FS is not set
+-# CONFIG_CIFS is not set
++CONFIG_CIFS=m
++# 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
+@@ -1795,14 +2108,14 @@
+ # CONFIG_ULTRIX_PARTITION is not set
+ # CONFIG_SUN_PARTITION is not set
+ # CONFIG_KARMA_PARTITION is not set
+-# CONFIG_EFI_PARTITION is not set
++CONFIG_EFI_PARTITION=y
+ # CONFIG_SYSV68_PARTITION is not set
+ CONFIG_NLS=y
+ CONFIG_NLS_DEFAULT="iso8859-1"
+ CONFIG_NLS_CODEPAGE_437=y
+ # CONFIG_NLS_CODEPAGE_737 is not set
+ # CONFIG_NLS_CODEPAGE_775 is not set
+-# CONFIG_NLS_CODEPAGE_850 is not set
++CONFIG_NLS_CODEPAGE_850=m
+ # CONFIG_NLS_CODEPAGE_852 is not set
+ # CONFIG_NLS_CODEPAGE_855 is not set
+ # CONFIG_NLS_CODEPAGE_857 is not set
+@@ -1833,10 +2146,10 @@
+ # 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_ISO8859_15=m
+ # CONFIG_NLS_KOI8_R is not set
+ # CONFIG_NLS_KOI8_U is not set
+-# CONFIG_NLS_UTF8 is not set
++CONFIG_NLS_UTF8=m
+ # CONFIG_DLM is not set
+ #
+@@ -1929,17 +2242,20 @@
+ # CONFIG_CRYPTO_FIPS is not set
+ CONFIG_CRYPTO_ALGAPI=y
+ CONFIG_CRYPTO_ALGAPI2=y
++CONFIG_CRYPTO_AEAD=m
+ CONFIG_CRYPTO_AEAD2=y
+ CONFIG_CRYPTO_BLKCIPHER=y
+ CONFIG_CRYPTO_BLKCIPHER2=y
++CONFIG_CRYPTO_HASH=m
+ CONFIG_CRYPTO_HASH2=y
++CONFIG_CRYPTO_RNG=m
+ CONFIG_CRYPTO_RNG2=y
+ CONFIG_CRYPTO_MANAGER=y
+ CONFIG_CRYPTO_MANAGER2=y
+ # CONFIG_CRYPTO_GF128MUL is not set
+ # CONFIG_CRYPTO_NULL is not set
+-# CONFIG_CRYPTO_CRYPTD is not set
+-# CONFIG_CRYPTO_AUTHENC is not set
++CONFIG_CRYPTO_CRYPTD=m
++CONFIG_CRYPTO_AUTHENC=m
+ # CONFIG_CRYPTO_TEST is not set
+ #
+@@ -1947,7 +2263,7 @@
+ #
+ # CONFIG_CRYPTO_CCM is not set
+ # CONFIG_CRYPTO_GCM is not set
+-# CONFIG_CRYPTO_SEQIV is not set
++CONFIG_CRYPTO_SEQIV=m
+ #
+ # Block modes
+@@ -1963,7 +2279,7 @@
+ #
+ # Hash modes
+ #
+-# CONFIG_CRYPTO_HMAC is not set
++CONFIG_CRYPTO_HMAC=m
+ # CONFIG_CRYPTO_XCBC is not set
+ #
+@@ -1977,9 +2293,9 @@
+ # CONFIG_CRYPTO_RMD160 is not set
+ # CONFIG_CRYPTO_RMD256 is not set
+ # CONFIG_CRYPTO_RMD320 is not set
+-# CONFIG_CRYPTO_SHA1 is not set
+-# CONFIG_CRYPTO_SHA256 is not set
+-# CONFIG_CRYPTO_SHA512 is not set
++CONFIG_CRYPTO_SHA1=m
++CONFIG_CRYPTO_SHA256=m
++CONFIG_CRYPTO_SHA512=m
+ # CONFIG_CRYPTO_TGR192 is not set
+ # CONFIG_CRYPTO_WP512 is not set
+@@ -1989,7 +2305,7 @@
+ CONFIG_CRYPTO_AES=y
+ # CONFIG_CRYPTO_ANUBIS is not set
+ CONFIG_CRYPTO_ARC4=y
+-# CONFIG_CRYPTO_BLOWFISH is not set
++CONFIG_CRYPTO_BLOWFISH=m
+ # CONFIG_CRYPTO_CAMELLIA is not set
+ # CONFIG_CRYPTO_CAST5 is not set
+ # CONFIG_CRYPTO_CAST6 is not set
+@@ -2000,7 +2316,8 @@
+ # CONFIG_CRYPTO_SEED is not set
+ # CONFIG_CRYPTO_SERPENT is not set
+ # CONFIG_CRYPTO_TEA is not set
+-# CONFIG_CRYPTO_TWOFISH is not set
++CONFIG_CRYPTO_TWOFISH=m
++CONFIG_CRYPTO_TWOFISH_COMMON=m
+ #
+ # Compression
+@@ -2021,7 +2338,7 @@
+ CONFIG_CRC_CCITT=y
+ CONFIG_CRC16=y
+ # CONFIG_CRC_T10DIF is not set
+-# CONFIG_CRC_ITU_T is not set
++CONFIG_CRC_ITU_T=m
+ CONFIG_CRC32=y
+ CONFIG_CRC7=m
+ CONFIG_LIBCRC32C=y
index 4ae2339..7431183 100644 (file)
@@ -2,6 +2,7 @@ nokia-20094803.3+0m5.diff
 nokia-20100903+0m5.diff
 nokia-20101501+0m5.diff
 nokia-20103103+0m5.diff
+rx51_defconfig.diff
 maemo-build.diff
 unionfs-2.5.3.diff
 dm-loop.diff
@@ -29,9 +30,9 @@ radio-bcm2048.diff
 i2c-battery.diff
 usbhostmode.diff
 bt-mice.diff
-board-rx51-peripherals.patch
-bq27x00_battery.patch
-l2cap_parent.patch
+board-rx51-peripherals.diff
+bq27x00_battery.diff
+l2cap_parent.diff
 wl12xx-rx-fix.diff
-vanilla-2.6.28-anti-io-stalling.patch
+vanilla-2.6.28-anti-io-stalling.diff
 joikuspot.diff
diff --git a/kernel-power-2.6.28/debian/patches/vanilla-2.6.28-anti-io-stalling.diff b/kernel-power-2.6.28/debian/patches/vanilla-2.6.28-anti-io-stalling.diff
new file mode 100644 (file)
index 0000000..1eb82e3
--- /dev/null
@@ -0,0 +1,138 @@
+--- kernel-2.6.28/mm/vmscan.c.orig     2009-05-02 14:54:43.000000000 -0400
++++ kernel-2.6.28/mm/vmscan.c  2010-11-11 12:06:49.955635002 -0500
+@@ -72,6 +72,12 @@ struct scan_control {
+       int order;
++      /*
++       * Intend to reclaim enough contenious memory rather than to reclaim
++       * enough amount memory. I.e, it's the mode for high order allocation.
++       */
++      bool lumpy_reclaim_mode;
++
+       /* Which cgroup do we reclaim from */
+       struct mem_cgroup *mem_cgroup;
+@@ -1024,6 +1030,47 @@ int isolate_lru_page(struct page *page)
+ }
+ /*
++ * Returns true if the caller should wait to clean dirty/writeback pages.
++ *
++ * If we are direct reclaiming for contiguous pages and we do not reclaim
++ * everything in the list, try again and wait for writeback IO to complete.
++ * This will stall high-order allocations noticeably. Only do that when really
++ * need to free the pages under high memory pressure.
++ */
++static inline bool should_reclaim_stall(unsigned long nr_taken,
++                                      unsigned long nr_freed,
++                                      int priority,
++                                      struct scan_control *sc)
++{
++      int lumpy_stall_priority;
++
++      /* kswapd should not stall on sync IO */
++      if (current_is_kswapd())
++              return false;
++
++      /* Only stall on lumpy reclaim */
++      if (!sc->lumpy_reclaim_mode)
++              return false;
++
++      /* If we have relaimed everything on the isolated list, no stall */
++      if (nr_freed == nr_taken)
++              return false;
++
++      /*
++       * For high-order allocations, there are two stall thresholds.
++       * High-cost allocations stall immediately where as lower
++       * order allocations such as stacks require the scanning
++       * priority to be much higher before stalling.
++       */
++      if (sc->order > PAGE_ALLOC_COSTLY_ORDER)
++              lumpy_stall_priority = DEF_PRIORITY;
++      else
++              lumpy_stall_priority = DEF_PRIORITY / 3;
++
++      return priority <= lumpy_stall_priority;
++}
++
++/*
+  * shrink_inactive_list() is a helper for shrink_zone().  It returns the number
+  * of reclaimed pages
+  */
+@@ -1047,7 +1094,7 @@ static unsigned long shrink_inactive_lis
+               unsigned long nr_freed;
+               unsigned long nr_active;
+               unsigned int count[NR_LRU_LISTS] = { 0, };
+-              int mode = ISOLATE_INACTIVE;
++// use lumpy  int mode = ISOLATE_INACTIVE;
+               /*
+                * If we need a large contiguous chunk of memory, or have
+@@ -1056,13 +1103,11 @@ static unsigned long shrink_inactive_lis
+                *
+                * We use the same threshold as pageout congestion_wait below.
+                */
+-              if (sc->order > PAGE_ALLOC_COSTLY_ORDER)
+-                      mode = ISOLATE_BOTH;
+-              else if (sc->order && priority < DEF_PRIORITY - 2)
+-                      mode = ISOLATE_BOTH;
+               nr_taken = sc->isolate_pages(sc->swap_cluster_max,
+-                           &page_list, &nr_scan, sc->order, mode,
++                           &page_list, &nr_scan, sc->order, 
++                              sc->lumpy_reclaim_mode ?
++                                      ISOLATE_BOTH : ISOLATE_INACTIVE,
+                               zone, sc->mem_cgroup, 0, file);
+               nr_active = clear_active_flags(&page_list, count);
+               __count_vm_events(PGDEACTIVATE, nr_active);
+@@ -1088,16 +1133,8 @@ static unsigned long shrink_inactive_lis
+               nr_scanned += nr_scan;
+               nr_freed = shrink_page_list(&page_list, sc, PAGEOUT_IO_ASYNC);
+-              /*
+-               * If we are direct reclaiming for contiguous pages and we do
+-               * not reclaim everything in the list, try again and wait
+-               * for IO to complete. This will stall high-order allocations
+-               * but that should be acceptable to the caller
+-               */
+-              if (nr_freed < nr_taken && !current_is_kswapd() &&
+-                                      sc->order > PAGE_ALLOC_COSTLY_ORDER) {
+-                      congestion_wait(WRITE, HZ/10);
+-
++              /* Check if we should syncronously wait for writeback */
++              if (should_reclaim_stall(nr_taken, nr_freed, priority, sc)) {
+                       /*
+                        * The attempt at page out may have made some
+                        * of the pages active, mark them inactive again.
+@@ -1404,6 +1441,20 @@ static void get_scan_ratio(struct zone *
+       percent[1] = 100 - percent[0];
+ }
++static void set_lumpy_reclaim_mode(int priority, struct scan_control *sc)
++{
++      /*
++      * If we need a large contiguous chunk of memory, or have
++      * trouble getting a small set of contiguous pages, we
++      * will reclaim both active and inactive pages.
++      */
++      if (sc->order > PAGE_ALLOC_COSTLY_ORDER)
++              sc->lumpy_reclaim_mode = 1;
++      else if (sc->order && priority < DEF_PRIORITY - 2)
++              sc->lumpy_reclaim_mode = 1;
++      else
++              sc->lumpy_reclaim_mode = 0;
++}
+ /*
+  * This is a basic per-zone page freer.  Used by both kswapd and direct reclaim.
+@@ -1419,6 +1470,8 @@ static unsigned long shrink_zone(int pri
+       get_scan_ratio(zone, sc, percent);
++      set_lumpy_reclaim_mode(priority, sc);
++
+       for_each_evictable_lru(l) {
+               if (scan_global_lru(sc)) {
+                       int file = is_file_lru(l);
diff --git a/kernel-power-2.6.28/debian/patches/vanilla-2.6.28-anti-io-stalling.patch b/kernel-power-2.6.28/debian/patches/vanilla-2.6.28-anti-io-stalling.patch
deleted file mode 100644 (file)
index 1eb82e3..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
---- kernel-2.6.28/mm/vmscan.c.orig     2009-05-02 14:54:43.000000000 -0400
-+++ kernel-2.6.28/mm/vmscan.c  2010-11-11 12:06:49.955635002 -0500
-@@ -72,6 +72,12 @@ struct scan_control {
-       int order;
-+      /*
-+       * Intend to reclaim enough contenious memory rather than to reclaim
-+       * enough amount memory. I.e, it's the mode for high order allocation.
-+       */
-+      bool lumpy_reclaim_mode;
-+
-       /* Which cgroup do we reclaim from */
-       struct mem_cgroup *mem_cgroup;
-@@ -1024,6 +1030,47 @@ int isolate_lru_page(struct page *page)
- }
- /*
-+ * Returns true if the caller should wait to clean dirty/writeback pages.
-+ *
-+ * If we are direct reclaiming for contiguous pages and we do not reclaim
-+ * everything in the list, try again and wait for writeback IO to complete.
-+ * This will stall high-order allocations noticeably. Only do that when really
-+ * need to free the pages under high memory pressure.
-+ */
-+static inline bool should_reclaim_stall(unsigned long nr_taken,
-+                                      unsigned long nr_freed,
-+                                      int priority,
-+                                      struct scan_control *sc)
-+{
-+      int lumpy_stall_priority;
-+
-+      /* kswapd should not stall on sync IO */
-+      if (current_is_kswapd())
-+              return false;
-+
-+      /* Only stall on lumpy reclaim */
-+      if (!sc->lumpy_reclaim_mode)
-+              return false;
-+
-+      /* If we have relaimed everything on the isolated list, no stall */
-+      if (nr_freed == nr_taken)
-+              return false;
-+
-+      /*
-+       * For high-order allocations, there are two stall thresholds.
-+       * High-cost allocations stall immediately where as lower
-+       * order allocations such as stacks require the scanning
-+       * priority to be much higher before stalling.
-+       */
-+      if (sc->order > PAGE_ALLOC_COSTLY_ORDER)
-+              lumpy_stall_priority = DEF_PRIORITY;
-+      else
-+              lumpy_stall_priority = DEF_PRIORITY / 3;
-+
-+      return priority <= lumpy_stall_priority;
-+}
-+
-+/*
-  * shrink_inactive_list() is a helper for shrink_zone().  It returns the number
-  * of reclaimed pages
-  */
-@@ -1047,7 +1094,7 @@ static unsigned long shrink_inactive_lis
-               unsigned long nr_freed;
-               unsigned long nr_active;
-               unsigned int count[NR_LRU_LISTS] = { 0, };
--              int mode = ISOLATE_INACTIVE;
-+// use lumpy  int mode = ISOLATE_INACTIVE;
-               /*
-                * If we need a large contiguous chunk of memory, or have
-@@ -1056,13 +1103,11 @@ static unsigned long shrink_inactive_lis
-                *
-                * We use the same threshold as pageout congestion_wait below.
-                */
--              if (sc->order > PAGE_ALLOC_COSTLY_ORDER)
--                      mode = ISOLATE_BOTH;
--              else if (sc->order && priority < DEF_PRIORITY - 2)
--                      mode = ISOLATE_BOTH;
-               nr_taken = sc->isolate_pages(sc->swap_cluster_max,
--                           &page_list, &nr_scan, sc->order, mode,
-+                           &page_list, &nr_scan, sc->order, 
-+                              sc->lumpy_reclaim_mode ?
-+                                      ISOLATE_BOTH : ISOLATE_INACTIVE,
-                               zone, sc->mem_cgroup, 0, file);
-               nr_active = clear_active_flags(&page_list, count);
-               __count_vm_events(PGDEACTIVATE, nr_active);
-@@ -1088,16 +1133,8 @@ static unsigned long shrink_inactive_lis
-               nr_scanned += nr_scan;
-               nr_freed = shrink_page_list(&page_list, sc, PAGEOUT_IO_ASYNC);
--              /*
--               * If we are direct reclaiming for contiguous pages and we do
--               * not reclaim everything in the list, try again and wait
--               * for IO to complete. This will stall high-order allocations
--               * but that should be acceptable to the caller
--               */
--              if (nr_freed < nr_taken && !current_is_kswapd() &&
--                                      sc->order > PAGE_ALLOC_COSTLY_ORDER) {
--                      congestion_wait(WRITE, HZ/10);
--
-+              /* Check if we should syncronously wait for writeback */
-+              if (should_reclaim_stall(nr_taken, nr_freed, priority, sc)) {
-                       /*
-                        * The attempt at page out may have made some
-                        * of the pages active, mark them inactive again.
-@@ -1404,6 +1441,20 @@ static void get_scan_ratio(struct zone *
-       percent[1] = 100 - percent[0];
- }
-+static void set_lumpy_reclaim_mode(int priority, struct scan_control *sc)
-+{
-+      /*
-+      * If we need a large contiguous chunk of memory, or have
-+      * trouble getting a small set of contiguous pages, we
-+      * will reclaim both active and inactive pages.
-+      */
-+      if (sc->order > PAGE_ALLOC_COSTLY_ORDER)
-+              sc->lumpy_reclaim_mode = 1;
-+      else if (sc->order && priority < DEF_PRIORITY - 2)
-+              sc->lumpy_reclaim_mode = 1;
-+      else
-+              sc->lumpy_reclaim_mode = 0;
-+}
- /*
-  * This is a basic per-zone page freer.  Used by both kswapd and direct reclaim.
-@@ -1419,6 +1470,8 @@ static unsigned long shrink_zone(int pri
-       get_scan_ratio(zone, sc, percent);
-+      set_lumpy_reclaim_mode(priority, sc);
-+
-       for_each_evictable_lru(l) {
-               if (scan_global_lru(sc)) {
-                       int file = is_file_lru(l);
diff --git a/kernel-power-2.6.28/debian/rx51power_defconfig b/kernel-power-2.6.28/debian/rx51power_defconfig
deleted file mode 100644 (file)
index ed60d5e..0000000
+++ /dev/null
@@ -1,2352 +0,0 @@
-#
-# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.28.10power-omap1
-# Wed Nov 10 10:45:06 2010
-#
-CONFIG_ARM=y
-CONFIG_SYS_SUPPORTS_APM_EMULATION=y
-CONFIG_GENERIC_GPIO=y
-CONFIG_GENERIC_TIME=y
-CONFIG_GENERIC_CLOCKEVENTS=y
-CONFIG_MMU=y
-# CONFIG_NO_IOPORT is not set
-CONFIG_GENERIC_HARDIRQS=y
-CONFIG_STACKTRACE_SUPPORT=y
-CONFIG_HAVE_LATENCYTOP_SUPPORT=y
-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_GENERIC_HARDIRQS_NO__DO_IRQ=y
-CONFIG_OPROFILE_OMAP_GPTIMER=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_LOCK_KERNEL=y
-CONFIG_INIT_ENV_ARG_LIMIT=32
-CONFIG_LOCALVERSION=""
-#CONFIG_LOCALVERSION_AUTO is not set
-CONFIG_SWAP=y
-CONFIG_SYSVIPC=y
-CONFIG_SYSVIPC_SYSCTL=y
-CONFIG_POSIX_MQUEUE=y
-CONFIG_BSD_PROCESS_ACCT=y
-# CONFIG_BSD_PROCESS_ACCT_V3 is not set
-CONFIG_TASKSTATS=y
-CONFIG_TASK_DELAY_ACCT=y
-CONFIG_TASK_XACCT=y
-CONFIG_TASK_IO_ACCOUNTING=y
-# CONFIG_AUDIT is not set
-CONFIG_IKCONFIG=m
-CONFIG_IKCONFIG_PROC=y
-CONFIG_LOG_BUF_SHIFT=16
-CONFIG_CGROUPS=y
-# CONFIG_CGROUP_DEBUG is not set
-# CONFIG_CGROUP_NS is not set
-CONFIG_CGROUP_FREEZER=y
-# CONFIG_CGROUP_DEVICE is not set
-CONFIG_GROUP_SCHED=y
-CONFIG_FAIR_GROUP_SCHED=y
-CONFIG_RT_GROUP_SCHED=y
-# CONFIG_USER_SCHED is not set
-CONFIG_CGROUP_SCHED=y
-# CONFIG_CGROUP_CPUACCT is not set
-CONFIG_RESOURCE_COUNTERS=y
-CONFIG_MM_OWNER=y
-CONFIG_CGROUP_MEM_RES_CTLR=y
-CONFIG_SYSFS_DEPRECATED=y
-CONFIG_SYSFS_DEPRECATED_V2=y
-# CONFIG_RELAY is not set
-# CONFIG_NAMESPACES is not set
-CONFIG_BLK_DEV_INITRD=y
-CONFIG_INITRAMFS_SOURCE=""
-CONFIG_CC_OPTIMIZE_FOR_SIZE=y
-CONFIG_SYSCTL=y
-CONFIG_ANON_INODES=y
-CONFIG_EMBEDDED=y
-CONFIG_UID16=y
-CONFIG_SYSCTL_SYSCALL=y
-CONFIG_KALLSYMS=y
-CONFIG_KALLSYMS_ALL=y
-CONFIG_KALLSYMS_EXTRA_PASS=y
-CONFIG_HOTPLUG=y
-CONFIG_PRINTK=y
-CONFIG_BUG=y
-CONFIG_ELF_CORE=y
-CONFIG_BASE_FULL=y
-CONFIG_FUTEX=y
-CONFIG_EPOLL=y
-CONFIG_SIGNALFD=y
-CONFIG_TIMERFD=y
-CONFIG_EVENTFD=y
-CONFIG_SHMEM=y
-CONFIG_AIO=y
-CONFIG_VM_EVENT_COUNTERS=y
-CONFIG_SLUB_DEBUG=y
-CONFIG_COMPAT_BRK=y
-# CONFIG_SLAB is not set
-CONFIG_SLUB=y
-# CONFIG_SLOB is not set
-CONFIG_PROFILING=y
-# CONFIG_MARKERS is not set
-CONFIG_OPROFILE=m
-CONFIG_HAVE_OPROFILE=y
-CONFIG_KPROBES=y
-CONFIG_KRETPROBES=y
-CONFIG_HAVE_KPROBES=y
-CONFIG_HAVE_KRETPROBES=y
-CONFIG_HAVE_CLK=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 is not set
-# 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 is not set
-# CONFIG_IOSCHED_DEADLINE is not set
-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
-CONFIG_FREEZER=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_MSM 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=y
-CONFIG_OMAP_GPIO_SWITCH=y
-CONFIG_OMAP_MUX=y
-CONFIG_OMAP_MUX_DEBUG=y
-CONFIG_OMAP_MUX_WARNINGS=y
-CONFIG_OMAP_MCBSP=y
-# CONFIG_OMAP_MMU_FWK is not set
-# CONFIG_OMAP_MBOX_FWK is not set
-CONFIG_OMAP_IOMMU=m
-# CONFIG_OMAP_IOMMU_DEBUG is not set
-# CONFIG_OMAP_MPU_TIMER is not set
-CONFIG_OMAP_32K_TIMER=y
-# CONFIG_OMAP3_DEBOBS is not set
-CONFIG_OMAP_32K_TIMER_HZ=128
-CONFIG_OMAP_TICK_GPTIMER=1
-CONFIG_OMAP_DM_TIMER=y
-# CONFIG_OMAP_LL_DEBUG_UART1 is not set
-# CONFIG_OMAP_LL_DEBUG_UART2 is not set
-CONFIG_OMAP_LL_DEBUG_UART3=y
-CONFIG_OMAP_SERIAL_WAKE=y
-# CONFIG_OMAP_PM_NONE is not set
-# CONFIG_OMAP_PM_NOOP is not set
-CONFIG_OMAP_PM_SRF=y
-CONFIG_ARCH_OMAP34XX=y
-CONFIG_ARCH_OMAP3430=y
-
-#
-# OMAP Board Type
-#
-CONFIG_MACH_NOKIA_RX51=y
-CONFIG_VIDEO_MACH_RX51=m
-# CONFIG_VIDEO_MACH_RX51_OLD_I2C is not set
-CONFIG_MACH_NOKIA_RX71=y
-# 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 is not set
-# CONFIG_RX51_CAMERA_BUTTON is not set
-
-#
-# 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
-CONFIG_ARM_ERRATA_430973=y
-
-#
-# Kernel Features
-#
-CONFIG_TICK_ONESHOT=y
-CONFIG_NO_HZ=y
-CONFIG_HIGH_RES_TIMERS=y
-CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
-CONFIG_VMSPLIT_3G=y
-# CONFIG_VMSPLIT_2G is not set
-# CONFIG_VMSPLIT_1G is not set
-CONFIG_PAGE_OFFSET=0xC0000000
-CONFIG_PREEMPT=y
-CONFIG_HZ=128
-CONFIG_AEABI=y
-# CONFIG_OABI_COMPAT is not set
-CONFIG_ARCH_FLATMEM_HAS_HOLES=y
-# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
-# CONFIG_ARCH_SELECT_MEMORY_MODEL 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_PAGEFLAGS_EXTENDED=y
-CONFIG_SPLIT_PTLOCK_CPUS=4
-# CONFIG_RESOURCES_64BIT is not set
-# CONFIG_PHYS_ADDR_T_64BIT is not set
-CONFIG_ZONE_DMA_FLAG=0
-CONFIG_VIRT_TO_BUS=y
-CONFIG_UNEVICTABLE_LRU=y
-# CONFIG_LEDS is not set
-CONFIG_ALIGNMENT_TRAP=y
-
-#
-# Boot options
-#
-CONFIG_ZBOOT_ROM_TEXT=0x0
-CONFIG_ZBOOT_ROM_BSS=0x0
-CONFIG_CMDLINE="init=/sbin/preinit ubi.mtd=rootfs root=ubi0:rootfs rootfstype=ubifs rootflags=bulk_read,no_chk_data_crc rw console=ttyMTD,log console=tty0 snd-soc-rx51.hp_lim=42 snd-soc-tlv320aic3x.hp_dac_lim=6"
-# CONFIG_XIP_KERNEL is not set
-CONFIG_KEXEC=y
-CONFIG_ATAGS_PROC=y
-
-#
-# CPU Power Management
-#
-CONFIG_CPU_FREQ=y
-CONFIG_CPU_FREQ_TABLE=y
-# CONFIG_CPU_FREQ_DEBUG is not set
-CONFIG_CPU_FREQ_STAT=y
-# CONFIG_CPU_FREQ_STAT_DETAILS is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
-CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y
-# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
-# CONFIG_CPU_FREQ_GOV_PERFORMANCE is not set
-CONFIG_CPU_FREQ_GOV_POWERSAVE=m
-CONFIG_CPU_FREQ_GOV_USERSPACE=y
-CONFIG_CPU_FREQ_GOV_ONDEMAND=y
-CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
-CONFIG_CPU_IDLE=y
-CONFIG_CPU_IDLE_GOV_LADDER=y
-CONFIG_CPU_IDLE_GOV_MENU=y
-
-#
-# Floating point emulation
-#
-
-#
-# At least one emulation must be selected
-#
-CONFIG_VFP=y
-CONFIG_VFPv3=y
-CONFIG_NEON=y
-
-#
-# Userspace binary formats
-#
-CONFIG_BINFMT_ELF=y
-# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
-CONFIG_HAVE_AOUT=y
-# CONFIG_BINFMT_AOUT is not set
-CONFIG_BINFMT_MISC=y
-
-#
-# Power management options
-#
-CONFIG_PM=y
-CONFIG_PM_DEBUG=y
-# CONFIG_PM_VERBOSE is not set
-CONFIG_CAN_PM_TRACE=y
-CONFIG_PM_SLEEP=y
-CONFIG_SUSPEND=y
-CONFIG_SUSPEND_FREEZER=y
-# CONFIG_APM_EMULATION is not set
-CONFIG_ARCH_SUSPEND_POSSIBLE=y
-CONFIG_NET=y
-
-#
-# Networking options
-#
-CONFIG_PACKET=y
-# CONFIG_PACKET_MMAP is not set
-CONFIG_UNIX=y
-CONFIG_XFRM=y
-CONFIG_XFRM_USER=y
-# CONFIG_XFRM_SUB_POLICY is not set
-# CONFIG_XFRM_MIGRATE is not set
-# CONFIG_XFRM_STATISTICS is not set
-CONFIG_XFRM_IPCOMP=m
-CONFIG_NET_KEY=y
-# CONFIG_NET_KEY_MIGRATE is not set
-CONFIG_INET=y
-# CONFIG_IP_MULTICAST is not set
-CONFIG_IP_ADVANCED_ROUTER=y
-CONFIG_ASK_IP_FIB_HASH=y
-# CONFIG_IP_FIB_TRIE is not set
-CONFIG_IP_FIB_HASH=y
-CONFIG_IP_MULTIPLE_TABLES=y
-# CONFIG_IP_ROUTE_MULTIPATH is not set
-# CONFIG_IP_ROUTE_VERBOSE is not set
-CONFIG_IP_PNP=y
-CONFIG_IP_PNP_DHCP=y
-CONFIG_IP_PNP_BOOTP=y
-CONFIG_IP_PNP_RARP=y
-CONFIG_NET_IPIP=m
-CONFIG_NET_IPGRE=m
-# CONFIG_ARPD is not set
-# CONFIG_SYN_COOKIES is not set
-CONFIG_INET_AH=m
-CONFIG_INET_ESP=m
-CONFIG_INET_IPCOMP=m
-CONFIG_INET_XFRM_TUNNEL=m
-CONFIG_INET_TUNNEL=m
-CONFIG_INET_XFRM_MODE_TRANSPORT=m
-CONFIG_INET_XFRM_MODE_TUNNEL=m
-CONFIG_INET_XFRM_MODE_BEET=m
-CONFIG_INET_LRO=m
-CONFIG_INET_DIAG=m
-CONFIG_INET_TCP_DIAG=m
-# 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=y
-CONFIG_IPV6_ROUTER_PREF=y
-# CONFIG_IPV6_ROUTE_INFO is not set
-# CONFIG_IPV6_OPTIMISTIC_DAD is not set
-CONFIG_INET6_AH=m
-CONFIG_INET6_ESP=m
-CONFIG_INET6_IPCOMP=m
-CONFIG_IPV6_MIP6=m
-CONFIG_INET6_XFRM_TUNNEL=m
-CONFIG_INET6_TUNNEL=m
-CONFIG_INET6_XFRM_MODE_TRANSPORT=m
-CONFIG_INET6_XFRM_MODE_TUNNEL=m
-CONFIG_INET6_XFRM_MODE_BEET=m
-# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION 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_NETLABEL is not set
-# CONFIG_NETWORK_SECMARK is not set
-CONFIG_NETFILTER=y
-# CONFIG_NETFILTER_DEBUG is not set
-CONFIG_NETFILTER_ADVANCED=y
-
-#
-# Core Netfilter Configuration
-#
-# CONFIG_NETFILTER_NETLINK_QUEUE is not set
-# CONFIG_NETFILTER_NETLINK_LOG is not set
-CONFIG_NF_CONNTRACK=m
-# CONFIG_NF_CT_ACCT is not set
-CONFIG_NF_CONNTRACK_MARK=y
-# CONFIG_NF_CONNTRACK_EVENTS is not set
-# CONFIG_NF_CT_PROTO_DCCP is not set
-CONFIG_NF_CT_PROTO_GRE=m
-# CONFIG_NF_CT_PROTO_SCTP is not set
-# CONFIG_NF_CT_PROTO_UDPLITE is not set
-# CONFIG_NF_CONNTRACK_AMANDA is not set
-CONFIG_NF_CONNTRACK_FTP=m
-CONFIG_NF_CONNTRACK_H323=m
-CONFIG_NF_CONNTRACK_IRC=m
-CONFIG_NF_CONNTRACK_NETBIOS_NS=m
-CONFIG_NF_CONNTRACK_PPTP=m
-# CONFIG_NF_CONNTRACK_SANE is not set
-CONFIG_NF_CONNTRACK_SIP=m
-# CONFIG_NF_CONNTRACK_TFTP is not set
-# CONFIG_NF_CT_NETLINK is not set
-# CONFIG_NETFILTER_TPROXY is not set
-CONFIG_NETFILTER_XTABLES=m
-CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
-CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
-# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
-CONFIG_NETFILTER_XT_TARGET_MARK=m
-# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
-# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
-# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set
-CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
-# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set
-# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set
-# CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set
-CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
-CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
-CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
-# CONFIG_NETFILTER_XT_MATCH_DCCP is not set
-# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
-# CONFIG_NETFILTER_XT_MATCH_ESP is not set
-# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
-CONFIG_NETFILTER_XT_MATCH_HELPER=m
-CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
-# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
-CONFIG_NETFILTER_XT_MATCH_LIMIT=m
-CONFIG_NETFILTER_XT_MATCH_MAC=m
-# CONFIG_NETFILTER_XT_MATCH_MARK is not set
-CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
-# CONFIG_NETFILTER_XT_MATCH_OWNER is not set
-CONFIG_NETFILTER_XT_MATCH_POLICY=m
-# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set
-# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set
-# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set
-# CONFIG_NETFILTER_XT_MATCH_REALM is not set
-# CONFIG_NETFILTER_XT_MATCH_RECENT is not set
-# CONFIG_NETFILTER_XT_MATCH_SCTP is not set
-CONFIG_NETFILTER_XT_MATCH_STATE=m
-# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set
-# CONFIG_NETFILTER_XT_MATCH_STRING is not set
-CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
-# CONFIG_NETFILTER_XT_MATCH_TIME is not set
-CONFIG_NETFILTER_XT_MATCH_U32=m
-# CONFIG_IP_VS is not set
-
-#
-# IP: Netfilter Configuration
-#
-CONFIG_NF_DEFRAG_IPV4=m
-CONFIG_NF_CONNTRACK_IPV4=m
-CONFIG_NF_CONNTRACK_PROC_COMPAT=y
-# CONFIG_IP_NF_QUEUE is not set
-CONFIG_IP_NF_IPTABLES=m
-# CONFIG_IP_NF_MATCH_ADDRTYPE is not set
-# CONFIG_IP_NF_MATCH_AH is not set
-# CONFIG_IP_NF_MATCH_ECN is not set
-# CONFIG_IP_NF_MATCH_TTL is not set
-CONFIG_IP_NF_FILTER=m
-CONFIG_IP_NF_TARGET_REJECT=m
-CONFIG_IP_NF_TARGET_LOG=m
-# CONFIG_IP_NF_TARGET_ULOG is not set
-CONFIG_NF_NAT=m
-CONFIG_NF_NAT_NEEDED=y
-CONFIG_IP_NF_TARGET_MASQUERADE=m
-CONFIG_IP_NF_TARGET_NETMAP=m
-CONFIG_IP_NF_TARGET_REDIRECT=m
-# CONFIG_IP_NF_TARGET_IDLETIMER is not set
-# CONFIG_NF_NAT_SNMP_BASIC is not set
-CONFIG_NF_NAT_PROTO_GRE=m
-CONFIG_NF_NAT_FTP=m
-CONFIG_NF_NAT_IRC=m
-# CONFIG_NF_NAT_TFTP is not set
-# CONFIG_NF_NAT_AMANDA is not set
-CONFIG_NF_NAT_PPTP=m
-CONFIG_NF_NAT_H323=m
-CONFIG_NF_NAT_SIP=m
-CONFIG_IP_NF_MANGLE=m
-# CONFIG_IP_NF_TARGET_CLUSTERIP is not set
-# CONFIG_IP_NF_TARGET_ECN is not set
-# CONFIG_IP_NF_TARGET_TTL is not set
-# CONFIG_IP_NF_RAW is not set
-# CONFIG_IP_NF_SECURITY is not set
-# CONFIG_IP_NF_ARPTABLES is not set
-CONFIG_IP_NF_HB=m
-# CONFIG_IP_NF_HB_DEBUG is not set
-
-#
-# IPv6: Netfilter Configuration
-#
-CONFIG_NF_CONNTRACK_IPV6=m
-# CONFIG_IP6_NF_QUEUE is not set
-CONFIG_IP6_NF_IPTABLES=m
-# CONFIG_IP6_NF_MATCH_AH is not set
-# CONFIG_IP6_NF_MATCH_EUI64 is not set
-# CONFIG_IP6_NF_MATCH_FRAG is not set
-# CONFIG_IP6_NF_MATCH_OPTS is not set
-# CONFIG_IP6_NF_MATCH_HL is not set
-# CONFIG_IP6_NF_MATCH_IPV6HEADER is not set
-# CONFIG_IP6_NF_MATCH_MH is not set
-# CONFIG_IP6_NF_MATCH_RT is not set
-CONFIG_IP6_NF_TARGET_LOG=m
-CONFIG_IP6_NF_FILTER=m
-# CONFIG_IP6_NF_TARGET_REJECT is not set
-# CONFIG_IP6_NF_MANGLE is not set
-# CONFIG_IP6_NF_RAW is not set
-# CONFIG_IP6_NF_SECURITY 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_NET_DSA 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_PHONET=m
-CONFIG_NET_SCHED=y
-
-#
-# Queueing/Scheduling
-#
-CONFIG_NET_SCH_CBQ=m
-CONFIG_NET_SCH_HTB=m
-CONFIG_NET_SCH_HFSC=m
-CONFIG_NET_SCH_PRIO=m
-# CONFIG_NET_SCH_MULTIQ is not set
-# CONFIG_NET_SCH_RED is not set
-CONFIG_NET_SCH_SFQ=m
-# CONFIG_NET_SCH_TEQL is not set
-CONFIG_NET_SCH_TBF=m
-# CONFIG_NET_SCH_GRED is not set
-CONFIG_NET_SCH_DSMARK=m
-# CONFIG_NET_SCH_NETEM is not set
-CONFIG_NET_SCH_INGRESS=m
-
-#
-# Classification
-#
-CONFIG_NET_CLS=y
-CONFIG_NET_CLS_BASIC=m
-CONFIG_NET_CLS_TCINDEX=m
-# CONFIG_NET_CLS_ROUTE4 is not set
-CONFIG_NET_CLS_FW=m
-CONFIG_NET_CLS_U32=m
-# CONFIG_CLS_U32_PERF is not set
-# CONFIG_CLS_U32_MARK is not set
-CONFIG_NET_CLS_RSVP=m
-CONFIG_NET_CLS_RSVP6=m
-CONFIG_NET_CLS_FLOW=m
-# CONFIG_NET_EMATCH is not set
-CONFIG_NET_CLS_ACT=y
-CONFIG_NET_ACT_POLICE=m
-CONFIG_NET_ACT_GACT=m
-# CONFIG_GACT_PROB is not set
-# CONFIG_NET_ACT_MIRRED is not set
-CONFIG_NET_ACT_IPT=m
-# CONFIG_NET_ACT_NAT is not set
-# CONFIG_NET_ACT_PEDIT is not set
-# CONFIG_NET_ACT_SIMP is not set
-# CONFIG_NET_ACT_SKBEDIT is not set
-# CONFIG_NET_CLS_IND is not set
-CONFIG_NET_SCH_FIFO=y
-
-#
-# Network testing
-#
-# CONFIG_NET_PKTGEN is not set
-# CONFIG_NET_TCPPROBE is not set
-# CONFIG_HAMRADIO is not set
-# CONFIG_CAN is not set
-# CONFIG_IRDA is not set
-CONFIG_BT=m
-CONFIG_BT_L2CAP=m
-CONFIG_BT_SCO=m
-CONFIG_BT_RFCOMM=m
-CONFIG_BT_RFCOMM_TTY=y
-CONFIG_BT_BNEP=m
-CONFIG_BT_BNEP_MC_FILTER=y
-CONFIG_BT_BNEP_PROTO_FILTER=y
-CONFIG_BT_HIDP=m
-
-#
-# Bluetooth device drivers
-#
-# CONFIG_BT_HCIUSB is not set
-# CONFIG_BT_HCIBTUSB is not set
-# CONFIG_BT_HCIBTSDIO is not set
-# CONFIG_BT_HCIUART is not set
-# CONFIG_BT_HCIBCM203X is not set
-# CONFIG_BT_HCIBPA10X is not set
-# CONFIG_BT_HCIBFUSB is not set
-# CONFIG_BT_HCIBRF6150 is not set
-CONFIG_BT_HCIH4P=m
-# CONFIG_BT_HCIVHCI is not set
-# CONFIG_AF_RXRPC is not set
-CONFIG_FIB_RULES=y
-CONFIG_WIRELESS=y
-CONFIG_CFG80211=m
-CONFIG_NL80211=y
-CONFIG_WIRELESS_OLD_REGULATORY=y
-CONFIG_WIRELESS_EXT=y
-CONFIG_WIRELESS_EXT_SYSFS=y
-CONFIG_MAC80211=m
-
-#
-# Rate control algorithm selection
-#
-# CONFIG_MAC80211_RC_PID is not set
-CONFIG_MAC80211_RC_MINSTREL=y
-# CONFIG_MAC80211_RC_DEFAULT_PID is not set
-CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
-CONFIG_MAC80211_RC_DEFAULT="minstrel"
-CONFIG_MAC80211_MESH=y
-# CONFIG_MAC80211_LEDS is not set
-# CONFIG_MAC80211_DEBUGFS is not set
-# CONFIG_MAC80211_DEBUG_MENU is not set
-# CONFIG_IEEE80211 is not set
-# CONFIG_RFKILL is not set
-# CONFIG_NET_9P is not set
-
-#
-# Device Drivers
-#
-
-#
-# Generic Driver Options
-#
-CONFIG_UEVENT_HELPER_PATH=""
-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=y
-CONFIG_PROC_EVENTS=y
-CONFIG_MTD=y
-# CONFIG_MTD_DEBUG is not set
-# CONFIG_MTD_CONCAT is not set
-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=m
-CONFIG_MTD_BLOCK=m
-CONFIG_MTD_BLOCK_RO=m
-# 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=y
-
-#
-# 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=m
-
-#
-# 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=m
-# CONFIG_MTD_NAND_VERIFY_WRITE is not set
-# CONFIG_MTD_NAND_ECC_SMC is not set
-# CONFIG_MTD_NAND_MUSEUM_IDS is not set
-# CONFIG_MTD_NAND_GPIO is not set
-# CONFIG_MTD_NAND_OMAP2 is not set
-CONFIG_MTD_NAND_IDS=m
-# CONFIG_MTD_NAND_DISKONCHIP is not set
-CONFIG_MTD_NAND_NANDSIM=m
-# CONFIG_MTD_NAND_PLATFORM is not set
-# CONFIG_MTD_ALAUDA is not set
-CONFIG_MTD_ONENAND=y
-# CONFIG_MTD_ONENAND_VERIFY_WRITE is not set
-# CONFIG_MTD_ONENAND_GENERIC is not set
-CONFIG_MTD_ONENAND_OMAP2=y
-# CONFIG_MTD_ONENAND_OTP is not set
-# CONFIG_MTD_ONENAND_2X_PROGRAM is not set
-# CONFIG_MTD_ONENAND_SIM is not set
-
-#
-# UBI - Unsorted block images
-#
-CONFIG_MTD_UBI=y
-CONFIG_MTD_UBI_WL_THRESHOLD=4096
-CONFIG_MTD_UBI_BEB_RESERVE=1
-# CONFIG_MTD_UBI_GLUEBI is not set
-
-#
-# UBI debugging options
-#
-# CONFIG_MTD_UBI_DEBUG is not set
-# CONFIG_PARPORT is not set
-CONFIG_BLK_DEV=y
-# CONFIG_BLK_DEV_COW_COMMON is not set
-CONFIG_BLK_DEV_LOOP=y
-# CONFIG_BLK_DEV_CRYPTOLOOP is not set
-CONFIG_BLK_DEV_NBD=m
-# CONFIG_BLK_DEV_UB is not set
-CONFIG_BLK_DEV_RAM=y
-CONFIG_BLK_DEV_RAM_COUNT=16
-CONFIG_BLK_DEV_RAM_SIZE=16384
-# CONFIG_BLK_DEV_XIP is not set
-# CONFIG_CDROM_PKTCDVD is not set
-# CONFIG_ATA_OVER_ETH is not set
-CONFIG_MISC_DEVICES=y
-# CONFIG_EEPROM_93CX6 is not set
-CONFIG_NOKIA_AV_DETECT=m
-# CONFIG_ICS932S401 is not set
-CONFIG_OMAP_STI=y
-CONFIG_OMAP_STI_CONSOLE=y
-# CONFIG_ENCLOSURE_SERVICES is not set
-# CONFIG_C2PORT is not set
-CONFIG_OMAP_SSI=m
-CONFIG_SSI_MCSAAB_IMP=m
-CONFIG_SSI_CMT_SPEECH=m
-# CONFIG_SSI_CMT_SPEECH_DEBUG is not set
-CONFIG_SSI_CHAR=m
-# CONFIG_SSI_CHAR_DEBUG is not set
-CONFIG_HAVE_IDE=y
-# CONFIG_IDE is not set
-
-#
-# SCSI device support
-#
-# CONFIG_RAID_ATTRS is not set
-CONFIG_SCSI=m
-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=m
-# CONFIG_CHR_DEV_ST is not set
-# CONFIG_CHR_DEV_OSST is not set
-# CONFIG_BLK_DEV_SR is not set
-# CONFIG_CHR_DEV_SG is not set
-# CONFIG_CHR_DEV_SCH is not set
-
-#
-# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
-#
-CONFIG_SCSI_MULTI_LUN=y
-# CONFIG_SCSI_CONSTANTS is not set
-# CONFIG_SCSI_LOGGING is not set
-CONFIG_SCSI_SCAN_ASYNC=y
-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=y
-# CONFIG_BLK_DEV_MD is not set
-CONFIG_BLK_DEV_DM=m
-# CONFIG_DM_DEBUG is not set
-CONFIG_DM_CRYPT=m
-CONFIG_DM_LOOP=m
-# CONFIG_DM_SNAPSHOT is not set
-# CONFIG_DM_MIRROR is not set
-# CONFIG_DM_ZERO is not set
-# CONFIG_DM_MULTIPATH is not set
-# CONFIG_DM_DELAY is not set
-# CONFIG_DM_UEVENT is not set
-CONFIG_NETDEVICES=y
-# CONFIG_IFB is not set
-# CONFIG_DUMMY is not set
-# CONFIG_BONDING is not set
-# CONFIG_MACVLAN is not set
-# CONFIG_EQUALIZER is not set
-CONFIG_TUN=m
-# CONFIG_VETH is not set
-# CONFIG_PHYLIB is not set
-CONFIG_NET_ETHERNET=y
-CONFIG_MII=m
-# CONFIG_AX88796 is not set
-CONFIG_SMC91X=m
-# CONFIG_DM9000 is not set
-# CONFIG_ENC28J60 is not set
-# CONFIG_SMC911X is not set
-# CONFIG_IBM_NEW_EMAC_ZMII is not set
-# CONFIG_IBM_NEW_EMAC_RGMII is not set
-# CONFIG_IBM_NEW_EMAC_TAH is not set
-# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
-# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
-# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
-# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
-# CONFIG_B44 is not set
-# CONFIG_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 is not set
-# CONFIG_LIBERTAS_THINFIRM is not set
-# CONFIG_USB_ZD1201 is not set
-# CONFIG_USB_NET_RNDIS_WLAN is not set
-# CONFIG_RTL8187 is not set
-# CONFIG_MAC80211_HWSIM is not set
-# CONFIG_P54_COMMON is not set
-# CONFIG_IWLWIFI_LEDS is not set
-# CONFIG_HOSTAP is not set
-# CONFIG_B43 is not set
-# CONFIG_B43LEGACY is not set
-# CONFIG_ZD1211RW is not set
-# CONFIG_RT2X00 is not set
-CONFIG_WL12XX=y
-CONFIG_WL1251=m
-# CONFIG_WL1271 is not set
-
-#
-# USB Network Adapters
-#
-# CONFIG_USB_CATC is not set
-# CONFIG_USB_KAWETH is not set
-# CONFIG_USB_PEGASUS is not set
-# CONFIG_USB_RTL8150 is not set
-CONFIG_USB_USBNET=m
-CONFIG_USB_NET_AX8817X=m
-CONFIG_USB_NET_CDCETHER=m
-# CONFIG_USB_NET_DM9601 is not set
-# CONFIG_USB_NET_SMSC95XX is not set
-# CONFIG_USB_NET_GL620A is not set
-CONFIG_USB_NET_NET1080=m
-# CONFIG_USB_NET_PLUSB is not set
-CONFIG_USB_NET_MCS7830=m
-# CONFIG_USB_NET_RNDIS_HOST is not set
-CONFIG_USB_NET_CDC_SUBSET=m
-# CONFIG_USB_ALI_M5632 is not set
-# CONFIG_USB_AN2720 is not set
-CONFIG_USB_BELKIN=y
-CONFIG_USB_ARMLINUX=y
-# CONFIG_USB_EPSON2888 is not set
-# CONFIG_USB_KC2190 is not set
-CONFIG_USB_NET_ZAURUS=m
-# CONFIG_WAN is not set
-CONFIG_PPP=m
-# CONFIG_PPP_MULTILINK is not set
-CONFIG_PPP_FILTER=y
-CONFIG_PPP_ASYNC=m
-# CONFIG_PPP_SYNC_TTY is not set
-CONFIG_PPP_DEFLATE=m
-CONFIG_PPP_BSDCOMP=m
-CONFIG_PPP_MPPE=m
-CONFIG_PPPOE=m
-CONFIG_PPPOL2TP=m
-CONFIG_SLIP=m
-CONFIG_SLIP_COMPRESSED=y
-CONFIG_SLHC=m
-CONFIG_SLIP_SMART=y
-# CONFIG_SLIP_MODE_SLIP6 is not set
-# 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=m
-CONFIG_INPUT_MOUSEDEV_PSAUX=y
-CONFIG_INPUT_MOUSEDEV_SCREEN_X=800
-CONFIG_INPUT_MOUSEDEV_SCREEN_Y=480
-CONFIG_INPUT_JOYDEV=m
-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 is not set
-# CONFIG_INPUT_MOUSE is not set
-# CONFIG_INPUT_JOYSTICK is not set
-# CONFIG_INPUT_TABLET is not set
-CONFIG_INPUT_TOUCHSCREEN=y
-# CONFIG_TOUCHSCREEN_ADS7846 is not set
-# 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=m
-# CONFIG_TOUCHSCREEN_TSC210X is not set
-# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
-# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
-CONFIG_INPUT_LIRC=y
-CONFIG_LIRC_DEV=m
-CONFIG_LIRC_RX51=m
-CONFIG_INPUT_MISC=y
-# CONFIG_INPUT_ATI_REMOTE is not set
-# CONFIG_INPUT_ATI_REMOTE2 is not set
-# CONFIG_INPUT_KEYSPAN_REMOTE is not set
-# CONFIG_INPUT_POWERMATE is not set
-# CONFIG_INPUT_YEALINK is not set
-# CONFIG_INPUT_CM109 is not set
-CONFIG_INPUT_UINPUT=m
-
-#
-# Hardware I/O ports
-#
-# CONFIG_SERIO 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 is not set
-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=4
-CONFIG_SERIAL_8250_RUNTIME_UARTS=4
-# CONFIG_SERIAL_8250_EXTENDED is not set
-
-#
-# 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_HW_RANDOM_OMAP3_ROM=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 is not set
-CONFIG_TPA6130A2=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_TPS65010 is not set
-CONFIG_TWL4030_MADC=y
-CONFIG_TWL4030_PWRBUTTON=y
-CONFIG_TWL4030_POWEROFF=y
-# CONFIG_SENSORS_MAX6875 is not set
-# CONFIG_SENSORS_TSL2550 is not set
-CONFIG_SENSORS_TSL2563=m
-# CONFIG_LP5521 is not set
-CONFIG_LIS302DL=m
-# 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_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
-
-#
-# Memory mapped GPIO expanders:
-#
-
-#
-# 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=m
-# CONFIG_POWER_SUPPLY_DEBUG is not set
-# CONFIG_PDA_POWER is not set
-# CONFIG_BATTERY_DS2760 is not set
-# CONFIG_TWL4030_BCI_BATTERY is not set
-CONFIG_BATTERY_BQ27x00=m
-CONFIG_HWMON=y
-# CONFIG_HWMON_VID is not set
-# CONFIG_SENSORS_AD7414 is not set
-# CONFIG_SENSORS_AD7418 is not set
-# CONFIG_SENSORS_ADCXX is not set
-# CONFIG_SENSORS_ADM1021 is not set
-# CONFIG_SENSORS_ADM1025 is not set
-# CONFIG_SENSORS_ADM1026 is not set
-# CONFIG_SENSORS_ADM1029 is not set
-# CONFIG_SENSORS_ADM1031 is not set
-# CONFIG_SENSORS_ADM9240 is not set
-# CONFIG_SENSORS_ADT7462 is not set
-# CONFIG_SENSORS_ADT7470 is not set
-# CONFIG_SENSORS_ADT7473 is not set
-# CONFIG_SENSORS_ATXP1 is not set
-# CONFIG_SENSORS_DS1621 is not set
-# CONFIG_SENSORS_F71805F is not set
-# CONFIG_SENSORS_F71882FG is not set
-# CONFIG_SENSORS_F75375S is not set
-# CONFIG_SENSORS_GL518SM is not set
-# CONFIG_SENSORS_GL520SM is not set
-# CONFIG_SENSORS_IT87 is not set
-# CONFIG_SENSORS_LM63 is not set
-# CONFIG_SENSORS_LM70 is not set
-# CONFIG_SENSORS_LM75 is not set
-# CONFIG_SENSORS_LM77 is not set
-# CONFIG_SENSORS_LM78 is not set
-# CONFIG_SENSORS_LM80 is not set
-# CONFIG_SENSORS_LM83 is not set
-# CONFIG_SENSORS_LM85 is not set
-# CONFIG_SENSORS_LM87 is not set
-# CONFIG_SENSORS_LM90 is not set
-# CONFIG_SENSORS_LM92 is not set
-# CONFIG_SENSORS_LM93 is not set
-# CONFIG_SENSORS_MAX1111 is not set
-# CONFIG_SENSORS_MAX1619 is not set
-# CONFIG_SENSORS_MAX6650 is not set
-# CONFIG_SENSORS_PC87360 is not set
-# CONFIG_SENSORS_PC87427 is not set
-# CONFIG_SENSORS_DME1737 is not set
-# CONFIG_SENSORS_SMSC47M1 is not set
-# CONFIG_SENSORS_SMSC47M192 is not set
-# CONFIG_SENSORS_SMSC47B397 is not set
-# CONFIG_SENSORS_ADS7828 is not set
-# CONFIG_SENSORS_THMC50 is not set
-# CONFIG_SENSORS_VT1211 is not set
-# CONFIG_SENSORS_W83781D is not set
-# CONFIG_SENSORS_W83791D is not set
-# CONFIG_SENSORS_W83792D is not set
-# CONFIG_SENSORS_W83793 is not set
-# CONFIG_SENSORS_W83L785TS is not set
-# CONFIG_SENSORS_W83L786NG is not set
-# CONFIG_SENSORS_W83627HF is not set
-# CONFIG_SENSORS_W83627EHF is not set
-# CONFIG_SENSORS_TSC210X is not set
-CONFIG_SENSORS_OMAP34XX=y
-# CONFIG_HWMON_DEBUG_CHIP is not set
-# CONFIG_THERMAL is not set
-# CONFIG_THERMAL_HWMON is not set
-CONFIG_WATCHDOG=y
-# CONFIG_WATCHDOG_NOWAYOUT is not set
-
-#
-# Watchdog Device Drivers
-#
-# CONFIG_SOFT_WATCHDOG is not set
-CONFIG_OMAP_WATCHDOG=m
-CONFIG_TWL4030_WATCHDOG=m
-
-#
-# USB-based Watchdog Cards
-#
-# CONFIG_USBPCWATCHDOG is not set
-CONFIG_SSB_POSSIBLE=y
-
-#
-# Sonics Silicon Backplane
-#
-# 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
-# CONFIG_PMIC_DA903X is not set
-# CONFIG_MFD_WM8400 is not set
-# CONFIG_MFD_WM8350_I2C 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 is not set
-CONFIG_VIDEO_MEDIA=m
-
-#
-# Multimedia drivers
-#
-# CONFIG_MEDIA_ATTACH is not set
-CONFIG_MEDIA_TUNER=m
-CONFIG_MEDIA_TUNER_CUSTOMIZE=y
-# CONFIG_MEDIA_TUNER_SIMPLE is not set
-# CONFIG_MEDIA_TUNER_TDA8290 is not set
-# CONFIG_MEDIA_TUNER_TDA827X is not set
-# CONFIG_MEDIA_TUNER_TDA18271 is not set
-# CONFIG_MEDIA_TUNER_TDA9887 is not set
-# CONFIG_MEDIA_TUNER_TEA5761 is not set
-# CONFIG_MEDIA_TUNER_TEA5767 is not set
-# CONFIG_MEDIA_TUNER_MT20XX is not set
-# CONFIG_MEDIA_TUNER_MT2060 is not set
-# CONFIG_MEDIA_TUNER_MT2266 is not set
-# CONFIG_MEDIA_TUNER_MT2131 is not set
-# CONFIG_MEDIA_TUNER_QT1010 is not set
-# CONFIG_MEDIA_TUNER_XC2028 is not set
-# CONFIG_MEDIA_TUNER_XC5000 is not set
-# CONFIG_MEDIA_TUNER_MXL5005S is not set
-# CONFIG_MEDIA_TUNER_MXL5007T is not set
-CONFIG_VIDEO_V4L2=m
-CONFIG_VIDEO_V4L1=m
-CONFIG_VIDEOBUF_GEN=m
-CONFIG_VIDEOBUF_DMA_SG=m
-CONFIG_VIDEO_CAPTURE_DRIVERS=y
-# CONFIG_VIDEO_ADV_DEBUG is not set
-# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
-# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set
-
-#
-# Encoders/decoders and other helper chips
-#
-
-#
-# Audio decoders
-#
-# CONFIG_VIDEO_TVAUDIO is not set
-# CONFIG_VIDEO_TDA7432 is not set
-# CONFIG_VIDEO_TDA9840 is not set
-# CONFIG_VIDEO_TDA9875 is not set
-# CONFIG_VIDEO_TEA6415C is not set
-# CONFIG_VIDEO_TEA6420 is not set
-# CONFIG_VIDEO_MSP3400 is not set
-# CONFIG_VIDEO_CS5345 is not set
-# CONFIG_VIDEO_CS53L32A is not set
-# CONFIG_VIDEO_M52790 is not set
-# CONFIG_VIDEO_TLV320AIC23B is not set
-# CONFIG_VIDEO_WM8775 is not set
-# CONFIG_VIDEO_WM8739 is not set
-# CONFIG_VIDEO_VP27SMPX is not set
-
-#
-# Video decoders
-#
-# CONFIG_VIDEO_BT819 is not set
-# CONFIG_VIDEO_BT856 is not set
-# CONFIG_VIDEO_BT866 is not set
-# CONFIG_VIDEO_KS0127 is not set
-# CONFIG_VIDEO_OV7670 is not set
-# CONFIG_VIDEO_TCM825X is not set
-CONFIG_VIDEO_ET8EK8=m
-CONFIG_VIDEO_AD5820=m
-CONFIG_VIDEO_ADP1653=m
-# CONFIG_VIDEO_SAA7110 is not set
-# CONFIG_VIDEO_SAA7111 is not set
-# CONFIG_VIDEO_SAA7114 is not set
-# CONFIG_VIDEO_SAA711X is not set
-# CONFIG_VIDEO_SAA717X is not set
-# CONFIG_VIDEO_SAA7191 is not set
-# CONFIG_VIDEO_TVP5150 is not set
-# CONFIG_VIDEO_VPX3220 is not set
-CONFIG_VIDEO_SMIA_SENSOR=m
-
-#
-# Video and audio decoders
-#
-# CONFIG_VIDEO_CX25840 is not set
-
-#
-# MPEG video encoders
-#
-# CONFIG_VIDEO_CX2341X is not set
-
-#
-# Video encoders
-#
-# CONFIG_VIDEO_SAA7127 is not set
-# CONFIG_VIDEO_SAA7185 is not set
-# CONFIG_VIDEO_ADV7170 is not set
-# CONFIG_VIDEO_ADV7175 is not set
-
-#
-# Video improvement chips
-#
-# CONFIG_VIDEO_UPD64031A is not set
-# CONFIG_VIDEO_UPD64083 is not set
-# 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_VIDEO_OMAP3=m
-CONFIG_VIDEO_SMIAREGS=m
-# CONFIG_SOC_CAMERA is not set
-CONFIG_V4L_USB_DRIVERS=y
-CONFIG_USB_VIDEO_CLASS=m
-CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
-CONFIG_USB_GSPCA=m
-# CONFIG_USB_M5602 is not set
-# CONFIG_USB_GSPCA_CONEX is not set
-# CONFIG_USB_GSPCA_ETOMS is not set
-# CONFIG_USB_GSPCA_FINEPIX is not set
-# CONFIG_USB_GSPCA_MARS is not set
-# CONFIG_USB_GSPCA_OV519 is not set
-# CONFIG_USB_GSPCA_PAC207 is not set
-# CONFIG_USB_GSPCA_PAC7311 is not set
-# CONFIG_USB_GSPCA_SONIXB is not set
-# CONFIG_USB_GSPCA_SONIXJ is not set
-# CONFIG_USB_GSPCA_SPCA500 is not set
-# CONFIG_USB_GSPCA_SPCA501 is not set
-# CONFIG_USB_GSPCA_SPCA505 is not set
-# CONFIG_USB_GSPCA_SPCA506 is not set
-# CONFIG_USB_GSPCA_SPCA508 is not set
-# CONFIG_USB_GSPCA_SPCA561 is not set
-# CONFIG_USB_GSPCA_STK014 is not set
-# CONFIG_USB_GSPCA_SUNPLUS is not set
-# CONFIG_USB_GSPCA_T613 is not set
-# CONFIG_USB_GSPCA_TV8532 is not set
-# CONFIG_USB_GSPCA_VC032X is not set
-# CONFIG_USB_GSPCA_ZC3XX is not set
-# CONFIG_VIDEO_PVRUSB2 is not set
-# CONFIG_VIDEO_EM28XX is not set
-# CONFIG_VIDEO_USBVISION is not set
-# CONFIG_USB_VICAM is not set
-# CONFIG_USB_IBMCAM is not set
-# CONFIG_USB_KONICAWC is not set
-# CONFIG_USB_QUICKCAM_MESSENGER is not set
-# CONFIG_USB_ET61X251 is not set
-# CONFIG_VIDEO_OVCAMCHIP is not set
-# CONFIG_USB_OV511 is not set
-# CONFIG_USB_SE401 is not set
-# CONFIG_USB_SN9C102 is not set
-# CONFIG_USB_STV680 is not set
-# CONFIG_USB_ZC0301 is not set
-# CONFIG_USB_PWC is not set
-# CONFIG_USB_ZR364XX is not set
-# CONFIG_USB_STKWEBCAM is not set
-# CONFIG_USB_S2255 is not set
-CONFIG_RADIO_ADAPTERS=y
-CONFIG_I2C_SI4713=m
-# CONFIG_USB_DSBR is not set
-# CONFIG_USB_SI470X is not set
-CONFIG_I2C_BCM2048=m
-# CONFIG_USB_MR800 is not set
-# CONFIG_DAB is not set
-
-#
-# Graphics support
-#
-CONFIG_PVR=m
-CONFIG_PVR_RELEASE=y
-# CONFIG_PVR_DEBUG is not set
-# CONFIG_PVR_TIMING is not set
-# CONFIG_PVR_EXAMPLES is not set
-# 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_BOOT_VESA_SUPPORT 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_UVESA is not set
-# CONFIG_FB_S1D13XXX is not set
-# CONFIG_FB_VIRTUAL is not set
-# CONFIG_FB_METRONOME is not set
-# CONFIG_FB_MB862XX is not set
-CONFIG_FB_OMAP_BOOTLOADER_INIT=y
-CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE=14
-CONFIG_OMAP2_DSS=y
-CONFIG_OMAP2_DSS_VRAM_SIZE=0
-# CONFIG_OMAP2_DSS_DEBUG_SUPPORT is not set
-# CONFIG_OMAP2_DSS_RFBI is not set
-CONFIG_OMAP2_DSS_VENC=y
-CONFIG_OMAP2_DSS_SDI=y
-# CONFIG_OMAP2_DSS_DSI is not set
-# CONFIG_OMAP2_DSS_FAKE_VSYNC is not set
-CONFIG_OMAP2_DSS_MIN_FCK_PER_PCK=0
-
-#
-# OMAP2/3 Display Device Drivers
-#
-# CONFIG_PANEL_NEVADA is not set
-CONFIG_PANEL_ACX565AKM=y
-# CONFIG_PANEL_GENERIC is not set
-# CONFIG_PANEL_SAMSUNG_LTE430WQ_F0C is not set
-# CONFIG_PANEL_SHARP_LS037V7DW01 is not set
-CONFIG_FB_OMAP2=y
-# CONFIG_FB_OMAP2_DEBUG_SUPPORT is not set
-# CONFIG_FB_OMAP2_FORCE_AUTO_UPDATE is not set
-CONFIG_FB_OMAP2_NUM_FBS=3
-# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
-CONFIG_BACKLIGHT_CLASS_DEVICE=y
-# CONFIG_BACKLIGHT_CORGI is not set
-
-#
-# 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=m
-# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
-# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
-# CONFIG_FONTS is not set
-CONFIG_FONT_8x8=m
-CONFIG_FONT_8x16=m
-# CONFIG_LOGO is not set
-CONFIG_SOUND=y
-# CONFIG_SOUND_OSS_CORE is not set
-CONFIG_SND=y
-CONFIG_SND_TIMER=y
-CONFIG_SND_PCM=y
-CONFIG_SND_JACK=y
-# CONFIG_SND_SEQUENCER is not set
-# CONFIG_SND_MIXER_OSS is not set
-# CONFIG_SND_PCM_OSS is not set
-# CONFIG_SND_DYNAMIC_MINORS is not set
-CONFIG_SND_SUPPORT_OLD_API=y
-CONFIG_SND_VERBOSE_PROCFS=y
-# CONFIG_SND_VERBOSE_PRINTK is not set
-# CONFIG_SND_DEBUG is not set
-CONFIG_SND_DRIVERS=y
-# CONFIG_SND_DUMMY 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_SPI=y
-# CONFIG_SND_USB is not set
-CONFIG_SND_SOC=y
-CONFIG_SND_OMAP_SOC=y
-CONFIG_SND_OMAP_SOC_MCBSP=y
-CONFIG_SND_OMAP_SOC_RX51=y
-# CONFIG_SND_SOC_ALL_CODECS is not set
-CONFIG_SND_SOC_TLV320AIC3X=y
-# CONFIG_SOUND_PRIME is not set
-CONFIG_HID_SUPPORT=y
-CONFIG_HID=m
-# CONFIG_HID_DEBUG is not set
-# CONFIG_HIDRAW is not set
-
-#
-# USB Input Devices
-#
-CONFIG_USB_HID=m
-# CONFIG_HID_PID is not set
-# CONFIG_USB_HIDDEV is not set
-
-#
-# USB HID Boot Protocol drivers
-#
-# CONFIG_USB_KBD is not set
-# CONFIG_USB_MOUSE is not set
-
-#
-# Special HID drivers
-#
-# CONFIG_HID_COMPAT is not set
-# CONFIG_HID_A4TECH is not set
-# CONFIG_HID_APPLE is not set
-# CONFIG_HID_BELKIN is not set
-# CONFIG_HID_BRIGHT is not set
-# CONFIG_HID_CHERRY is not set
-# CONFIG_HID_CHICONY is not set
-# CONFIG_HID_CYPRESS is not set
-# CONFIG_HID_DELL is not set
-# CONFIG_HID_EZKEY is not set
-# CONFIG_HID_GYRATION is not set
-# CONFIG_HID_LOGITECH is not set
-# CONFIG_HID_MICROSOFT is not set
-# CONFIG_HID_MONTEREY is not set
-# CONFIG_HID_PANTHERLORD is not set
-# CONFIG_HID_PETALYNX is not set
-# CONFIG_HID_SAMSUNG is not set
-# CONFIG_HID_SONY is not set
-# CONFIG_HID_SUNPLUS is not set
-# CONFIG_THRUSTMASTER_FF is not set
-# CONFIG_ZEROPLUS_FF 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=y
-CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
-
-#
-# Miscellaneous USB options
-#
-CONFIG_USB_DEVICEFS=y
-# CONFIG_USB_DEVICE_CLASS is not set
-CONFIG_USB_DYNAMIC_MINORS=y
-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
-# CONFIG_USB_WUSB is not set
-# CONFIG_USB_WUSB_CBAF is not set
-
-#
-# USB Host Controller Drivers
-#
-# CONFIG_USB_C67X00_HCD is not set
-# CONFIG_USB_EHCI_HCD is not set
-# CONFIG_USB_ISP116X_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_HWA_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=y
-CONFIG_MUSB_PROC_FS=y
-
-#
-# USB Device Class drivers
-#
-CONFIG_USB_ACM=m
-CONFIG_USB_PRINTER=m
-CONFIG_USB_WDM=m
-CONFIG_USB_TMC=m
-
-#
-# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
-#
-
-#
-# see USB_STORAGE Help for more information
-#
-CONFIG_USB_STORAGE=m
-# 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=y
-
-#
-# 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 is not set
-CONFIG_USB_SERIAL_GENERIC=y
-# CONFIG_USB_SERIAL_AIRCABLE is not set
-# CONFIG_USB_SERIAL_ARK3116 is not set
-# CONFIG_USB_SERIAL_BELKIN is not set
-# CONFIG_USB_SERIAL_CH341 is not set
-# CONFIG_USB_SERIAL_WHITEHEAT is not set
-# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
-# CONFIG_USB_SERIAL_CP2101 is not set
-# CONFIG_USB_SERIAL_CYPRESS_M8 is not set
-# CONFIG_USB_SERIAL_EMPEG is not set
-CONFIG_USB_SERIAL_FTDI_SIO=m
-# CONFIG_USB_SERIAL_FUNSOFT is not set
-# CONFIG_USB_SERIAL_VISOR is not set
-# CONFIG_USB_SERIAL_IPAQ is not set
-# CONFIG_USB_SERIAL_IR is not set
-# CONFIG_USB_SERIAL_EDGEPORT is not set
-# CONFIG_USB_SERIAL_EDGEPORT_TI is not set
-# CONFIG_USB_SERIAL_GARMIN is not set
-# CONFIG_USB_SERIAL_IPW is not set
-# CONFIG_USB_SERIAL_IUU is not set
-# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set
-# CONFIG_USB_SERIAL_KEYSPAN is not set
-# CONFIG_USB_SERIAL_KLSI is not set
-# CONFIG_USB_SERIAL_KOBIL_SCT is not set
-# CONFIG_USB_SERIAL_MCT_U232 is not set
-# CONFIG_USB_SERIAL_MOS7720 is not set
-# CONFIG_USB_SERIAL_MOS7840 is not set
-# CONFIG_USB_SERIAL_MOTOROLA is not set
-# CONFIG_USB_SERIAL_NAVMAN is not set
-CONFIG_USB_SERIAL_PL2303=m
-# CONFIG_USB_SERIAL_OTI6858 is not set
-# CONFIG_USB_SERIAL_SPCP8X5 is not set
-# CONFIG_USB_SERIAL_HP4X is not set
-# CONFIG_USB_SERIAL_SAFE is not set
-# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set
-# CONFIG_USB_SERIAL_TI is not set
-# CONFIG_USB_SERIAL_CYBERJACK is not set
-# CONFIG_USB_SERIAL_XIRCOM is not set
-CONFIG_USB_SERIAL_OPTION=m
-# CONFIG_USB_SERIAL_OMNINET is not set
-# CONFIG_USB_SERIAL_DEBUG is not set
-
-#
-# USB Miscellaneous drivers
-#
-# CONFIG_USB_EMI62 is not set
-# CONFIG_USB_EMI26 is not set
-# CONFIG_USB_ADUTUX is not set
-# CONFIG_USB_SEVSEG is not set
-# CONFIG_USB_RIO500 is not set
-# CONFIG_USB_LEGOTOWER is not set
-# CONFIG_USB_LCD is not set
-# CONFIG_USB_BERRY_CHARGE is not set
-# CONFIG_USB_LED is not set
-# CONFIG_USB_CYPRESS_CY7C63 is not set
-# CONFIG_USB_CYTHERM is not set
-# CONFIG_USB_PHIDGET is not set
-# CONFIG_USB_IDMOUSE is not set
-# CONFIG_USB_FTDI_ELAN is not set
-# CONFIG_USB_APPLEDISPLAY 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_VST is not set
-CONFIG_USB_GADGET=m
-# 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_VBUS_DRAW=2
-CONFIG_USB_GADGET_SELECTED=y
-# CONFIG_USB_GADGET_AT91 is not set
-# CONFIG_USB_GADGET_ATMEL_USBA is not set
-# CONFIG_USB_GADGET_FSL_USB2 is not set
-# CONFIG_USB_GADGET_LH7A40X is not set
-# CONFIG_USB_GADGET_OMAP is not set
-# CONFIG_USB_GADGET_PXA25X is not set
-# CONFIG_USB_GADGET_PXA27X is not set
-# CONFIG_USB_GADGET_S3C2410 is not set
-# CONFIG_USB_GADGET_M66592 is not set
-# CONFIG_USB_GADGET_AMD5536UDC is not set
-# CONFIG_USB_GADGET_FSL_QE is not set
-# CONFIG_USB_GADGET_NET2280 is not set
-# CONFIG_USB_GADGET_GOKU is not set
-# CONFIG_USB_GADGET_DUMMY_HCD is not set
-CONFIG_USB_GADGET_DUALSPEED=y
-CONFIG_USB_ZERO=m
-CONFIG_USB_ZERO_HNPTEST=y
-CONFIG_USB_ETH=m
-CONFIG_USB_ETH_RNDIS=y
-# CONFIG_USB_GADGETFS is not set
-CONFIG_USB_FILE_STORAGE=m
-CONFIG_USB_FILE_STORAGE_TEST=y
-CONFIG_USB_G_SERIAL=m
-# CONFIG_USB_MIDI_GADGET is not set
-CONFIG_USB_G_PRINTER=m
-# CONFIG_USB_CDC_COMPOSITE is not set
-CONFIG_USB_G_NOKIA=m
-CONFIG_USB_G_SOFTUPD=m
-
-#
-# OTG and related infrastructure
-#
-CONFIG_USB_OTG_UTILS=y
-CONFIG_USB_GPIO_VBUS=m
-# CONFIG_ISP1301_OMAP is not set
-CONFIG_TWL4030_USB=y
-CONFIG_USB_IP_COMMON=m
-CONFIG_USB_IP_VHCI_HCD=m
-CONFIG_USB_IP_HOST=m
-CONFIG_MMC=m
-# CONFIG_MMC_DEBUG is not set
-CONFIG_MMC_UNSAFE_RESUME=y
-
-#
-# MMC/SD/SDIO Card Drivers
-#
-CONFIG_MMC_BLOCK=m
-# CONFIG_MMC_BLOCK_BOUNCE is not set
-# CONFIG_SDIO_UART is not set
-# CONFIG_MMC_TEST is not set
-
-#
-# MMC/SD/SDIO Host Controller Drivers
-#
-# CONFIG_MMC_SDHCI is not set
-CONFIG_MMC_OMAP_HS=m
-# CONFIG_MMC_SPI is not set
-# CONFIG_MEMSTICK is not set
-# CONFIG_ACCESSIBILITY is not set
-CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=m
-
-#
-# LED drivers
-#
-# CONFIG_LEDS_OMAP is not set
-# CONFIG_LEDS_OMAP_PWM is not set
-# CONFIG_LEDS_PCA9532 is not set
-# CONFIG_LEDS_GPIO is not set
-# CONFIG_LEDS_PCA955X is not set
-CONFIG_LEDS_TWL4030_VIBRA=m
-CONFIG_LEDS_LP5523=m
-
-#
-# LED Triggers
-#
-CONFIG_LEDS_TRIGGERS=y
-CONFIG_LEDS_TRIGGER_TIMER=y
-CONFIG_LEDS_TRIGGER_HEARTBEAT=y
-# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
-# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
-CONFIG_LEDS_TRIGGER_KEYB=y
-CONFIG_RTC_LIB=y
-CONFIG_RTC_CLASS=m
-
-#
-# 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=m
-# CONFIG_RTC_DRV_S35390A is not set
-# CONFIG_RTC_DRV_FM3130 is not set
-# CONFIG_RTC_DRV_RX8581 is not set
-
-#
-# SPI RTC drivers
-#
-# CONFIG_RTC_DRV_M41T94 is not set
-# CONFIG_RTC_DRV_DS1305 is not set
-# CONFIG_RTC_DRV_DS1390 is not set
-# CONFIG_RTC_DRV_MAX6902 is not set
-# CONFIG_RTC_DRV_R9701 is not set
-# CONFIG_RTC_DRV_RS5C348 is not set
-# CONFIG_RTC_DRV_DS3234 is not set
-
-#
-# Platform RTC drivers
-#
-# CONFIG_RTC_DRV_CMOS is not set
-# CONFIG_RTC_DRV_DS1286 is not set
-# CONFIG_RTC_DRV_DS1511 is not set
-# CONFIG_RTC_DRV_DS1553 is not set
-# CONFIG_RTC_DRV_DS1742 is not set
-# CONFIG_RTC_DRV_STK17TA8 is not set
-# CONFIG_RTC_DRV_M48T86 is not set
-# CONFIG_RTC_DRV_M48T35 is not set
-# CONFIG_RTC_DRV_M48T59 is not set
-# CONFIG_RTC_DRV_BQ4802 is not set
-# CONFIG_RTC_DRV_V3020 is not set
-
-#
-# on-CPU RTC drivers
-#
-# CONFIG_DMADEVICES is not set
-CONFIG_REGULATOR=y
-# CONFIG_REGULATOR_DEBUG is not set
-# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
-# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
-# CONFIG_REGULATOR_BQ24022 is not set
-CONFIG_REGULATOR_TWL4030=y
-# CONFIG_UIO is not set
-
-#
-# CBUS support
-#
-# CONFIG_CBUS is not set
-CONFIG_MPU_BRIDGE=m
-CONFIG_BRIDGE_DVFS=y
-CONFIG_BRIDGE_MEMPOOL_SIZE=0x412800
-# CONFIG_BRIDGE_DEBUG is not set
-
-#
-# File systems
-#
-CONFIG_EXT2_FS=m
-# CONFIG_EXT2_FS_XATTR is not set
-# CONFIG_EXT2_FS_XIP is not set
-CONFIG_EXT3_FS=m
-# CONFIG_EXT3_FS_XATTR is not set
-CONFIG_EXT4_FS=m
-# CONFIG_EXT4DEV_COMPAT is not set
-CONFIG_EXT4_FS_XATTR=y
-# CONFIG_EXT4_FS_POSIX_ACL is not set
-# CONFIG_EXT4_FS_SECURITY is not set
-CONFIG_JBD=m
-# CONFIG_JBD_DEBUG is not set
-CONFIG_JBD2=m
-# CONFIG_JBD2_DEBUG is not set
-CONFIG_FS_MBCACHE=m
-CONFIG_REISERFS_FS=m
-# CONFIG_REISERFS_CHECK is not set
-# CONFIG_REISERFS_PROC_INFO is not set
-# CONFIG_REISERFS_FS_XATTR is not set
-# CONFIG_JFS_FS is not set
-# CONFIG_FS_POSIX_ACL is not set
-CONFIG_FILE_LOCKING=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_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 is not set
-CONFIG_UDF_FS=m
-CONFIG_UDF_NLS=y
-
-#
-# DOS/FAT/NT Filesystems
-#
-CONFIG_FAT_FS=m
-CONFIG_MSDOS_FS=m
-CONFIG_VFAT_FS=m
-CONFIG_FAT_DEFAULT_CODEPAGE=437
-CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
-CONFIG_NTFS_FS=m
-# CONFIG_NTFS_DEBUG is not set
-# CONFIG_NTFS_RW is not set
-
-#
-# Pseudo filesystems
-#
-CONFIG_PROC_FS=y
-CONFIG_PROC_SYSCTL=y
-CONFIG_PROC_PAGE_MONITOR=y
-CONFIG_SYSFS=y
-CONFIG_TMPFS=y
-# CONFIG_TMPFS_POSIX_ACL is not set
-# CONFIG_HUGETLB_PAGE is not set
-# CONFIG_CONFIGFS_FS is not set
-
-#
-# Layered filesystems
-#
-CONFIG_UNION_FS=m
-# CONFIG_UNION_FS_XATTR is not set
-# CONFIG_UNION_FS_DEBUG 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=m
-# CONFIG_BEFS_FS is not set
-# CONFIG_BFS_FS is not set
-# CONFIG_EFS_FS is not set
-# CONFIG_JFFS2_FS is not set
-CONFIG_UBIFS_FS=y
-# CONFIG_UBIFS_FS_XATTR is not set
-# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
-CONFIG_UBIFS_FS_LZO=y
-CONFIG_UBIFS_FS_ZLIB=y
-# CONFIG_UBIFS_FS_DEBUG is not set
-CONFIG_CRAMFS=y
-CONFIG_SQUASHFS=m
-# CONFIG_SQUASHFS_EMBEDDED is not set
-CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
-# 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=m
-CONFIG_NFS_V3=y
-# CONFIG_NFS_V3_ACL is not set
-CONFIG_NFS_V4=y
-# CONFIG_NFSD is not set
-CONFIG_LOCKD=m
-CONFIG_LOCKD_V4=y
-CONFIG_NFS_COMMON=y
-CONFIG_SUNRPC=m
-CONFIG_SUNRPC_GSS=m
-# CONFIG_SUNRPC_REGISTER_V4 is not set
-CONFIG_RPCSEC_GSS_KRB5=m
-# CONFIG_RPCSEC_GSS_SPKM3 is not set
-# CONFIG_SMB_FS is not set
-CONFIG_CIFS=m
-# 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=y
-# CONFIG_SYSV68_PARTITION is not set
-CONFIG_NLS=y
-CONFIG_NLS_DEFAULT="iso8859-1"
-CONFIG_NLS_CODEPAGE_437=y
-# CONFIG_NLS_CODEPAGE_737 is not set
-# CONFIG_NLS_CODEPAGE_775 is not set
-CONFIG_NLS_CODEPAGE_850=m
-# 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=m
-# CONFIG_NLS_KOI8_R is not set
-# CONFIG_NLS_KOI8_U is not set
-CONFIG_NLS_UTF8=m
-# CONFIG_DLM is not set
-
-#
-# Kernel hacking
-#
-CONFIG_PRINTK_TIME=y
-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=y
-# CONFIG_HEADERS_CHECK is not set
-CONFIG_DEBUG_KERNEL=y
-# CONFIG_DEBUG_SHIRQ is not set
-# CONFIG_DETECT_SOFTLOCKUP is not set
-# CONFIG_SCHED_DEBUG is not set
-# CONFIG_SCHEDSTATS is not set
-CONFIG_TIMER_STATS=y
-# CONFIG_DEBUG_OBJECTS is not set
-# CONFIG_SLUB_DEBUG_ON is not set
-# CONFIG_SLUB_STATS is not set
-# CONFIG_DEBUG_PREEMPT 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 is not set
-# 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=y
-CONFIG_DEBUG_INFO=y
-# 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_RCU_CPU_STALL_DETECTOR is not set
-# CONFIG_KPROBES_SANITY_TEST is not set
-# CONFIG_BACKTRACE_SELF_TEST is not set
-# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
-# CONFIG_LKDTM is not set
-# CONFIG_FAULT_INJECTION is not set
-CONFIG_PANIC_INFO_BUFF=m
-# CONFIG_LATENCYTOP is not set
-# CONFIG_SYSCTL_SYSCALL_CHECK is not set
-CONFIG_HAVE_FUNCTION_TRACER=y
-
-#
-# Tracers
-#
-# CONFIG_FUNCTION_TRACER is not set
-# CONFIG_IRQSOFF_TRACER is not set
-# CONFIG_PREEMPT_TRACER is not set
-# CONFIG_SCHED_TRACER is not set
-# CONFIG_CONTEXT_SWITCH_TRACER is not set
-# CONFIG_BOOT_TRACER is not set
-# CONFIG_STACK_TRACER is not set
-# CONFIG_DYNAMIC_PRINTK_DEBUG 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=y
-# CONFIG_SECURITYFS is not set
-# CONFIG_SECURITY_NETWORK is not set
-# CONFIG_SECURITY_FILE_CAPABILITIES is not set
-# CONFIG_SECURITY_ROOTPLUG is not set
-CONFIG_SECURITY_LOWMEM=y
-CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=4096
-CONFIG_CRYPTO=y
-
-#
-# Crypto core or helper
-#
-# CONFIG_CRYPTO_FIPS is not set
-CONFIG_CRYPTO_ALGAPI=y
-CONFIG_CRYPTO_ALGAPI2=y
-CONFIG_CRYPTO_AEAD=m
-CONFIG_CRYPTO_AEAD2=y
-CONFIG_CRYPTO_BLKCIPHER=y
-CONFIG_CRYPTO_BLKCIPHER2=y
-CONFIG_CRYPTO_HASH=m
-CONFIG_CRYPTO_HASH2=y
-CONFIG_CRYPTO_RNG=m
-CONFIG_CRYPTO_RNG2=y
-CONFIG_CRYPTO_MANAGER=y
-CONFIG_CRYPTO_MANAGER2=y
-# CONFIG_CRYPTO_GF128MUL is not set
-# CONFIG_CRYPTO_NULL is not set
-CONFIG_CRYPTO_CRYPTD=m
-CONFIG_CRYPTO_AUTHENC=m
-# CONFIG_CRYPTO_TEST is not set
-
-#
-# Authenticated Encryption with Associated Data
-#
-# CONFIG_CRYPTO_CCM is not set
-# CONFIG_CRYPTO_GCM is not set
-CONFIG_CRYPTO_SEQIV=m
-
-#
-# Block modes
-#
-CONFIG_CRYPTO_CBC=y
-# CONFIG_CRYPTO_CTR is not set
-# CONFIG_CRYPTO_CTS is not set
-CONFIG_CRYPTO_ECB=y
-# CONFIG_CRYPTO_LRW is not set
-CONFIG_CRYPTO_PCBC=m
-# CONFIG_CRYPTO_XTS is not set
-
-#
-# Hash modes
-#
-CONFIG_CRYPTO_HMAC=m
-# CONFIG_CRYPTO_XCBC is not set
-
-#
-# Digest
-#
-# CONFIG_CRYPTO_CRC32C is not set
-# CONFIG_CRYPTO_MD4 is not set
-CONFIG_CRYPTO_MD5=y
-# CONFIG_CRYPTO_MICHAEL_MIC is not set
-# CONFIG_CRYPTO_RMD128 is not set
-# CONFIG_CRYPTO_RMD160 is not set
-# CONFIG_CRYPTO_RMD256 is not set
-# CONFIG_CRYPTO_RMD320 is not set
-CONFIG_CRYPTO_SHA1=m
-CONFIG_CRYPTO_SHA256=m
-CONFIG_CRYPTO_SHA512=m
-# CONFIG_CRYPTO_TGR192 is not set
-# CONFIG_CRYPTO_WP512 is not set
-
-#
-# Ciphers
-#
-CONFIG_CRYPTO_AES=y
-# CONFIG_CRYPTO_ANUBIS is not set
-CONFIG_CRYPTO_ARC4=y
-CONFIG_CRYPTO_BLOWFISH=m
-# CONFIG_CRYPTO_CAMELLIA is not set
-# CONFIG_CRYPTO_CAST5 is not set
-# CONFIG_CRYPTO_CAST6 is not set
-CONFIG_CRYPTO_DES=y
-# CONFIG_CRYPTO_FCRYPT is not set
-# CONFIG_CRYPTO_KHAZAD is not set
-# CONFIG_CRYPTO_SALSA20 is not set
-# CONFIG_CRYPTO_SEED is not set
-# CONFIG_CRYPTO_SERPENT is not set
-# CONFIG_CRYPTO_TEA is not set
-CONFIG_CRYPTO_TWOFISH=m
-CONFIG_CRYPTO_TWOFISH_COMMON=m
-
-#
-# Compression
-#
-CONFIG_CRYPTO_DEFLATE=y
-CONFIG_CRYPTO_LZO=y
-
-#
-# Random Number Generation
-#
-# CONFIG_CRYPTO_ANSI_CPRNG is not set
-CONFIG_CRYPTO_HW=y
-
-#
-# Library routines
-#
-CONFIG_BITREVERSE=y
-CONFIG_CRC_CCITT=y
-CONFIG_CRC16=y
-# CONFIG_CRC_T10DIF is not set
-CONFIG_CRC_ITU_T=m
-CONFIG_CRC32=y
-CONFIG_CRC7=m
-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