From: Pali Rohár Date: Tue, 3 May 2011 19:38:04 +0000 (+0200) Subject: Added missing patches X-Git-Tag: kernel-power-settings-0.12~29 X-Git-Url: http://git.maemo.org/git/?p=kernel-power;a=commitdiff_plain;h=89670afd104bc9fad445889ca406fcb3e81d042d Added missing patches Cleaned patch names Make rx51_defconfig as patch --- 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 index 0000000..9e5c7e3 --- /dev/null +++ b/kernel-power-2.6.28/debian/patches/arm-proc-v7.diff @@ -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 index 0000000..92e0619 --- /dev/null +++ b/kernel-power-2.6.28/debian/patches/board-rx51-peripherals.diff @@ -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 index 92e0619..0000000 --- a/kernel-power-2.6.28/debian/patches/board-rx51-peripherals.patch +++ /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 index 0000000..b46ed98 --- /dev/null +++ b/kernel-power-2.6.28/debian/patches/bq27x00_battery.diff @@ -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 + * Copyright (C) 2008 Eurotech S.p.A. ++ * Copyright (C) 2010-2011 Lars-Peter Clausen ++ * Copyright (C) 2011 Pali Rohár + * + * 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 + #include + #include +@@ -24,144 +33,407 @@ + #include + #include + #include ++#include + #include + +-#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 = ® ++ 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 index b46ed98..0000000 --- a/kernel-power-2.6.28/debian/patches/bq27x00_battery.patch +++ /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 - * Copyright (C) 2008 Eurotech S.p.A. -+ * Copyright (C) 2010-2011 Lars-Peter Clausen -+ * Copyright (C) 2011 Pali Rohár - * - * 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 - #include - #include -@@ -24,144 +33,407 @@ - #include - #include - #include -+#include - #include - --#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 = ® -+ 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 index 0000000..872a2a2 --- /dev/null +++ b/kernel-power-2.6.28/debian/patches/l2cap_parent.diff @@ -0,0 +1,33 @@ +From 62c3e306f2d9466f539679dd7357676b19fd5600 Mon Sep 17 00:00:00 2001 +From: David Fries +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 index 0000000..9228ae7 --- /dev/null +++ b/kernel-power-2.6.28/debian/patches/rx51_defconfig.diff @@ -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 diff --git a/kernel-power-2.6.28/debian/patches/series b/kernel-power-2.6.28/debian/patches/series index 4ae2339..7431183 100644 --- a/kernel-power-2.6.28/debian/patches/series +++ b/kernel-power-2.6.28/debian/patches/series @@ -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 index 0000000..1eb82e3 --- /dev/null +++ b/kernel-power-2.6.28/debian/patches/vanilla-2.6.28-anti-io-stalling.diff @@ -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 index 1eb82e3..0000000 --- a/kernel-power-2.6.28/debian/patches/vanilla-2.6.28-anti-io-stalling.patch +++ /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 index ed60d5e..0000000 --- a/kernel-power-2.6.28/debian/rx51power_defconfig +++ /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