diff options
Diffstat (limited to 'packages/linux/linux-rt-2.6.24')
6 files changed, 934 insertions, 364 deletions
diff --git a/packages/linux/linux-rt-2.6.24/leds-cpu-activity-powerpc.patch b/packages/linux/linux-rt-2.6.24/leds-cpu-activity-powerpc.patch new file mode 100644 index 0000000000..d8b4d2d017 --- /dev/null +++ b/packages/linux/linux-rt-2.6.24/leds-cpu-activity-powerpc.patch @@ -0,0 +1,44 @@ +Index: linux-2.6.24.3/arch/powerpc/kernel/idle.c +=================================================================== +--- linux-2.6.24.3.orig/arch/powerpc/kernel/idle.c 2008-02-29 14:49:40.000000000 +0100 ++++ linux-2.6.24.3/arch/powerpc/kernel/idle.c 2008-02-29 16:29:23.000000000 +0100 +@@ -19,6 +19,7 @@ + * 2 of the License, or (at your option) any later version. + */ + ++#include <linux/leds.h> + #include <linux/sched.h> + #include <linux/kernel.h> + #include <linux/smp.h> +@@ -51,6 +52,12 @@ + __setup("powersave=off", powersave_off); + + /* ++ * CPU activity indicator. ++ */ ++void (*leds_idle)(int is_idle); ++EXPORT_SYMBOL(leds_idle); ++ ++/* + * The body of the idle task. + */ + void cpu_idle(void) +@@ -64,7 +71,8 @@ + while (!need_resched() && !need_resched_delayed() && + !cpu_should_die()) { + ppc64_runlatch_off(); +- ++ if (leds_idle) ++ leds_idle(1); + if (ppc_md.power_save) { + clear_thread_flag(TIF_POLLING_NRFLAG); + /* +@@ -99,6 +107,8 @@ + if (cpu_should_die()) + cpu_die(); + __preempt_enable_no_resched(); ++ if (leds_idle) ++ leds_idle(0); + schedule(); + preempt_disable(); + } diff --git a/packages/linux/linux-rt-2.6.24/leds-cpu-activity.patch b/packages/linux/linux-rt-2.6.24/leds-cpu-activity.patch new file mode 100644 index 0000000000..2495b9b3f7 --- /dev/null +++ b/packages/linux/linux-rt-2.6.24/leds-cpu-activity.patch @@ -0,0 +1,554 @@ +Index: linux-2.6.24.3/drivers/leds/Kconfig +=================================================================== +--- linux-2.6.24.3.orig/drivers/leds/Kconfig 2008-02-29 13:56:08.000000000 +0100 ++++ linux-2.6.24.3/drivers/leds/Kconfig 2008-02-29 13:56:11.000000000 +0100 +@@ -130,6 +130,15 @@ + This allows LEDs to be controlled by a programmable timer + via sysfs. If unsure, say Y. + ++config LEDS_TRIGGER_CPU_ACTIVITY ++ tristate "LED CPU Activity Trigger" ++ depends on LEDS_TRIGGERS ++ help ++ This allows LEDs to be set to show cpu activity via sysfs. ++ The LED will blink when the cpu is active and stay steady ++ (on or off according to the trigger selected) when idle. ++ Platform support is needed for this to work. If unsure, say Y. ++ + config LEDS_TRIGGER_IDE_DISK + bool "LED IDE Disk Trigger" + depends on LEDS_TRIGGERS && BLK_DEV_IDEDISK +Index: linux-2.6.24.3/drivers/leds/ledtrig-cpu.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ linux-2.6.24.3/drivers/leds/ledtrig-cpu.c 2008-02-29 13:56:11.000000000 +0100 +@@ -0,0 +1,502 @@ ++/* ++ * LEDs CPU activity trigger ++ * ++ * Author: John Bowler <jbowler@acm.org> ++ * ++ * Copyright (c) 2006 John Bowler ++ * ++ * Permission is hereby granted, free of charge, to any ++ * person obtaining a copy of this software and associated ++ * documentation files (the "Software"), to deal in the ++ * Software without restriction, including without ++ * limitation the rights to use, copy, modify, merge, ++ * publish, distribute, sublicense, and/or sell copies of ++ * the Software, and to permit persons to whom the ++ * Software is furnished to do so, subject to the ++ * following conditions: ++ * ++ * The above copyright notice and this permission notice ++ * shall be included in all copies or substantial portions ++ * of the Software. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ++ * ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED ++ * TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A ++ * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT ++ * SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ++ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ++ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ++ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR ++ * OTHER DEALINGS IN THE SOFTWARE. ++ * ++ */ ++ ++#include <linux/ctype.h> ++#include <linux/kernel.h> ++#include <linux/module.h> ++#include <linux/init.h> ++#include <linux/spinlock.h> ++#include <linux/timer.h> ++#include <linux/device.h> ++ ++#include <linux/leds.h> ++#include "leds.h" ++ ++//#include <linux/list.h> ++//#include <linux/sysdev.h> ++ ++ ++/* ++ * To simplify this the LED state is given for each case of ++ * CPU state - idle or active. The LED can be: ++ * ++ * off ++ * flash - slow for idle, fast (flicker) for active ++ * on ++ * ++ * This gives two useless states - off/off and on/on ++ */ ++typedef enum cpu_trigger_led_state { ++ cpu_led_off, ++ cpu_led_flash, ++ cpu_led_on, ++ cpu_led_invalid ++} cpu_trigger_led_state; ++ ++static const char *const cpu_trigger_names[] = { ++ "off", ++ "flash", ++ "on", ++ "invalid" ++}; ++ ++/* Forward declaration - this is called back when an LED property ++ * is changed. ++ */ ++static void leds_cpu_trigger_state_change(void); ++ ++/* ++ * These constants define the actual mark/space of the flashing ++ * in jiffies. msecs_to_jiffies rounds up and is compile time ++ * evaluable for constant arguments. Writing the ?: stuff below ++ * this way ensures the compiler doesn't think it needs to ++ * compile in the math of msecs_to_jiffies. ++ * ++ * These values have been determined by experiment to work well ++ * for the ready/status LED on a LinkSys NSLU2 (light piped) and ++ * for the user LED on a Loft (Gateway Avila variant) board where ++ * the LED was directly visible. Light Output Varies Everywhere. ++ */ ++#define LEDS_CPU_ACTIVE_MARK msecs_to_jiffies(40) ++#define LEDS_CPU_IDLE_MARK msecs_to_jiffies(800) ++#define LEDS_CPU_ACTIVE_SPACE msecs_to_jiffies(60) ++#define LEDS_CPU_IDLE_SPACE msecs_to_jiffies(800) ++ ++ ++/* ++ * Individual LEDs ------------------------------------------------------------ ++ */ ++struct cpu_trigger_data { ++ cpu_trigger_led_state active; /* Behaviour when the CPU is active. */ ++ cpu_trigger_led_state idle; /* Behaviour when the CPU is idle. */ ++}; ++ ++/* ++ * LED state change - called when the state of a single LED might ++ * have changed. Returns true if the LED is blinking. The argument ++ * is the blink state - the brightness of the blinking LED. ++ */ ++static int leds_cpu_trigger_led_state_change(struct led_classdev *led, ++ int is_active, enum led_brightness brightness) ++{ ++ int is_blinking = 0; ++ ++ struct cpu_trigger_data *data = led->trigger_data; ++ ++ /* Find the new brightness for the LED, if the LED is ++ * set to flash then the brightness passed in is the ++ * required value. ++ */ ++ if (likely(data != 0)) ++ switch (is_active ? data->active : data->idle) { ++ case cpu_led_off: brightness = LED_OFF; break; ++ case cpu_led_flash: is_blinking = 1; break; ++ case cpu_led_on: brightness = LED_FULL; break; ++ } ++ else ++ brightness = is_active ? LED_FULL : LED_OFF; ++ ++ led_set_brightness(led, brightness); ++ ++ return is_blinking; ++} ++ ++/* ++ * sysfs properties, the property is output at an list of the ++ * values with the current setting enclosed in [] ++ */ ++static ssize_t leds_cpu_trigger_show_prop(struct device *dev, ++ struct device_attribute *attr, char *buf, size_t where) ++{ ++ struct led_classdev *led = dev_get_drvdata(dev); ++ cpu_trigger_led_state item = cpu_led_invalid, i; ++ char *next; ++ ++ if (likely(led->trigger_data != 0)) ++ item = *(const cpu_trigger_led_state*)( ++ led->trigger_data + where); ++ ++ for (i=0, next=buf; i<cpu_led_invalid; ++i) { ++ const char *name = cpu_trigger_names[i]; ++ size_t len = strlen(name); ++ ++ if (i == item) ++ *next++ = '['; ++ memcpy(next, name, len); ++ next += len; ++ if (i == item) ++ *next++ = ']'; ++ *next++ = ' '; ++ } ++ ++ next[-1] = '\n'; ++ *next++ = 0; ++ ++ return next - buf; ++} ++ ++static ssize_t leds_cpu_trigger_show_active(struct device *dev, ++ struct device_attribute *attr, char *buf) ++{ ++ return leds_cpu_trigger_show_prop(dev, attr, buf, ++ offsetof(struct cpu_trigger_data, active)); ++} ++ ++static ssize_t leds_cpu_trigger_show_idle(struct device *dev, ++ struct device_attribute *attr, char *buf) ++{ ++ return leds_cpu_trigger_show_prop(dev, attr, buf, ++ offsetof(struct cpu_trigger_data, idle)); ++} ++ ++/* ++ * Any matching leading substring selects a property - so "onoffonoff" ++ * sets the property to off. ++ */ ++static ssize_t leds_cpu_trigger_store_prop(struct device *dev, ++ struct device_attribute *attr, const char *buf, ++ size_t size, size_t where) ++{ ++ size_t rc = 0; ++ cpu_trigger_led_state value = 0/*sic*/; ++ struct led_classdev *led; ++ ++ /* ignore space characters before the value. */ ++ while (rc < size && isspace(buf[rc])) ++ ++rc; ++ if (rc >= size) ++ return rc; ++ ++ /* look for a simple match against the trigger name, case ++ * sensitive. ++ */ ++ do { ++ const char *name = cpu_trigger_names[value]; ++ size_t len = strlen(name); ++ if (len <= size && memcmp(buf+rc, name, len) == 0) { ++ rc = len; ++ break; ++ } ++ if (++value >= cpu_led_invalid) ++ return -EINVAL; ++ } while (1); ++ ++ led = dev_get_drvdata(dev); ++ if (likely(led->trigger_data != 0)) ++ *(cpu_trigger_led_state*)( ++ led->trigger_data + where) = value; ++ ++ return rc; ++} ++ ++static ssize_t leds_cpu_trigger_store_active(struct device *dev, ++ struct device_attribute *attr, const char *buf, size_t size) ++{ ++ ssize_t rc = leds_cpu_trigger_store_prop(dev, attr, buf, size, ++ offsetof(struct cpu_trigger_data, active)); ++ /* ++ * At least one CPU must be active (otherwise who is doing this?) ++ * Call down into the global state below to cause an update ++ * to happen now. ++ */ ++ leds_cpu_trigger_state_change(); ++ return rc; ++} ++ ++static ssize_t leds_cpu_trigger_store_idle(struct device *dev, ++ struct device_attribute *attr, const char *buf, size_t size) ++{ ++ return leds_cpu_trigger_store_prop(dev, attr, buf, size, ++ offsetof(struct cpu_trigger_data, idle)); ++} ++ ++static DEVICE_ATTR(active, 0644, leds_cpu_trigger_show_active, ++ leds_cpu_trigger_store_active); ++ ++static DEVICE_ATTR(idle, 0644, leds_cpu_trigger_show_idle, ++ leds_cpu_trigger_store_idle); ++ ++/* ++ * Activate and deactivate are called on individual LEDs when the ++ * LED trigger property is changed. ++ */ ++static void leds_cpu_trigger_activate(struct led_classdev *led) ++{ ++ /* ++ * The initial setting of the trigger is simple CPU activity ++ * with the LED off for idle and on for active. Consequently ++ * there is no need to mess with the global state initially, ++ * we know the CPU is active at this moment! ++ */ ++ int rc; ++ struct cpu_trigger_data *data = kmalloc(sizeof *data, GFP_KERNEL); ++ if (unlikely(data == 0)) ++ return; ++ ++ data->active = cpu_led_on; ++ data->idle = cpu_led_off; ++ led->trigger_data = data; ++ ++ rc = device_create_file(led->dev, &dev_attr_active); ++ if (rc) ++ goto err_out; ++ rc = device_create_file(led->dev, &dev_attr_idle); ++ if (rc) ++ goto err_out_active; ++ ++ led_set_brightness(led, LED_FULL); ++ return; ++ ++err_out_active: ++ device_remove_file(led->dev, &dev_attr_active); ++err_out: ++ led->trigger_data = NULL; ++ kfree(data); ++} ++ ++static void leds_cpu_trigger_deactivate(struct led_classdev *led) ++{ ++ struct cpu_trigger_data *data = led->trigger_data; ++ if (likely(data != 0)) { ++ led_set_brightness(led, LED_OFF); ++ ++ device_remove_file(led->dev, &dev_attr_idle); ++ device_remove_file(led->dev, &dev_attr_active); ++ ++ led->trigger_data = 0; ++ kfree(data); ++ } ++} ++ ++ ++/* ++ * Global state -------------------------------------------------------------- ++ * ++ * This is global because the CPU state is global and we only need one timer to ++ * do this stuff. ++ */ ++typedef struct leds_cpu_trigger_data { ++ struct led_trigger trigger; /* the lock in here protects everything */ ++ struct timer_list timer; ++ unsigned long last_active_time; /* record of last jiffies */ ++ unsigned long last_idle_time; /* record of last jiffies */ ++ int count_active; /* number of active CPUs */ ++} leds_cpu_trigger_data; ++ ++/* ++ * Mark state - uses the current time (jiffies) to work out ++ * whether this is a mark or space. ++ */ ++static int leds_cpu_trigger_mark(struct leds_cpu_trigger_data *data, ++ unsigned long now) { ++ if (data->count_active > 0) { ++ unsigned long elapsed = now - data->last_active_time; ++ elapsed %= LEDS_CPU_ACTIVE_SPACE + LEDS_CPU_ACTIVE_MARK; ++ data->last_active_time = now - elapsed; ++ return elapsed > LEDS_CPU_ACTIVE_SPACE; ++ } else { ++ unsigned long elapsed = now - data->last_idle_time; ++ elapsed %= LEDS_CPU_IDLE_SPACE + LEDS_CPU_IDLE_MARK; ++ data->last_idle_time = now - elapsed; ++ return elapsed > LEDS_CPU_IDLE_SPACE; ++ } ++} ++ ++ ++/* ++ * State change - given information about the nature of the ++ * (possible) state change call up to each LED to adjust its ++ * state. Returns true if any LED is blinking. The lock ++ * must be held (a read lock is adequate). ++ */ ++static int leds_cpu_trigger_scan_leds(struct leds_cpu_trigger_data *data, ++ unsigned long now) ++{ ++ int blinking = 0; ++ const int active = data->count_active > 0; ++ const enum led_brightness brightness = ++ leds_cpu_trigger_mark(data, now) ? LED_FULL : LED_OFF; ++ struct list_head *entry; ++ ++ list_for_each(entry, &data->trigger.led_cdevs) { ++ struct led_classdev *led = ++ list_entry(entry, struct led_classdev, trig_list); ++ ++ blinking |= leds_cpu_trigger_led_state_change(led, ++ active, brightness); ++ } ++ ++ return blinking; ++} ++ ++/* ++ * Set the timer correctly according to the current state, the lock ++ * must be held for write. ++ */ ++static void leds_cpu_trigger_set_timer(struct leds_cpu_trigger_data *state, ++ unsigned long now) ++{ ++ unsigned long next; ++ if (state->count_active > 0) { ++ next = state->last_active_time; ++ if (now - next > LEDS_CPU_ACTIVE_SPACE) ++ next += LEDS_CPU_ACTIVE_MARK; ++ next += LEDS_CPU_ACTIVE_SPACE; ++ } else { ++ next = state->last_idle_time; ++ if (now - next > LEDS_CPU_IDLE_SPACE) ++ next += LEDS_CPU_IDLE_MARK; ++ next += LEDS_CPU_IDLE_SPACE; ++ } ++ mod_timer(&state->timer, next); ++} ++ ++/* ++ * The timer callback if the LED is currently flashing, the callback ++ * calls the state change function and, if that returns true, meaning ++ * that at least one LED is still blinking, the timer is restarted ++ * with the correct timeout. ++ */ ++static void leds_cpu_trigger_timer_callback(unsigned long data) ++{ ++ struct leds_cpu_trigger_data *state = ++ (struct leds_cpu_trigger_data *)data; ++ ++ write_lock(&state->trigger.leddev_list_lock); ++ { ++ unsigned long now = jiffies; ++ ++ /* If at least one LED is set to flash; set the timer ++ * again (this won't reset the timer set within the ++ * idle loop). ++ */ ++ if (leds_cpu_trigger_scan_leds(state, now)) ++ leds_cpu_trigger_set_timer(state, now); ++ } ++ write_unlock(&state->trigger.leddev_list_lock); ++} ++ ++ ++/* ++ * There is one global control structure, one timer and one set ++ * of state for active CPUs shared across all the LEDs. Individual ++ * LEDs say how this state to be handled. It is currently *not* ++ * possible to show per-cpu activity on individual LEDs, the code ++ * maintains a count of active CPUs and the state is only 'idle' ++ * if all CPUs are idle. ++ */ ++static struct leds_cpu_trigger_data leds_cpu_trigger = { ++ .trigger = { ++ .name = "cpu", ++ .activate = leds_cpu_trigger_activate, ++ .deactivate = leds_cpu_trigger_deactivate, ++ } , ++ .timer = TIMER_INITIALIZER(leds_cpu_trigger_timer_callback, 0, ++ (unsigned long)&leds_cpu_trigger), ++ .last_active_time = 0, ++ .last_idle_time = 0, ++ .count_active = 0, ++}; ++ ++/* ++ * State change - callback from an individual LED on a property change which ++ * might require a redisplay. ++ */ ++static void leds_cpu_trigger_state_change() { ++ write_lock(&leds_cpu_trigger.trigger.leddev_list_lock); ++ { ++ unsigned long now = jiffies; ++ ++ if (leds_cpu_trigger_scan_leds(&leds_cpu_trigger, now) && ++ !timer_pending(&leds_cpu_trigger.timer)) ++ leds_cpu_trigger_set_timer(&leds_cpu_trigger, now); ++ } ++ write_unlock(&leds_cpu_trigger.trigger.leddev_list_lock); ++} ++ ++/* ++ * Called from every CPU at the start and end of the idle loop. ++ * The active count is initially 0, even though CPUs are running, ++ * so the code below must check for the resultant underflow. ++ * ++ * If the idle behaviour is 'flash' then when the timer times out ++ * it will take the CPU out of idle, set the active state (which ++ * may also be flash), drop back into idle and reset the timer to ++ * the idle timeout... ++ */ ++static void leds_cpu_trigger_idle(int is_idle) ++{ ++ write_lock(&leds_cpu_trigger.trigger.leddev_list_lock); ++ if ((is_idle && leds_cpu_trigger.count_active > 0 && ++ --leds_cpu_trigger.count_active == 0) || ++ (!is_idle && leds_cpu_trigger.count_active < num_online_cpus() && ++ ++leds_cpu_trigger.count_active == 1)) { ++ unsigned long now = jiffies; ++ ++ /* State change - the system just became idle or active, ++ * call the del_timer first in an attempt to minimise ++ * getting a timer interrupt which will take us unnecessarily ++ * out of idle (this doesn't matter). ++ */ ++ del_timer(&leds_cpu_trigger.timer); ++ if (leds_cpu_trigger_scan_leds(&leds_cpu_trigger, now)) ++ leds_cpu_trigger_set_timer(&leds_cpu_trigger, now); ++ } ++ write_unlock(&leds_cpu_trigger.trigger.leddev_list_lock); ++} ++ ++/* ++ * Module init and exit - register the trigger, then store ++ * the idle callback in the arch-specific global. For this ++ * module to link (into the kernel) or load (into a running ++ * kernel) the architecture must define the leds_idle global. ++ */ ++static int __init leds_cpu_trigger_init(void) ++{ ++ int rc = led_trigger_register(&leds_cpu_trigger.trigger); ++ leds_idle = leds_cpu_trigger_idle; ++ return rc; ++} ++module_init(leds_cpu_trigger_init); ++ ++static void __exit leds_cpu_trigger_exit(void) ++{ ++ leds_idle = 0; ++ del_timer_sync(&leds_cpu_trigger.timer); ++ led_trigger_unregister(&leds_cpu_trigger.trigger); ++} ++module_exit(leds_cpu_trigger_exit); ++ ++MODULE_AUTHOR("John Bowler <jbowler@acm.org>"); ++MODULE_DESCRIPTION("CPU activity LED trigger"); ++MODULE_LICENSE("Dual MIT/GPL"); +Index: linux-2.6.24.3/drivers/leds/Makefile +=================================================================== +--- linux-2.6.24.3.orig/drivers/leds/Makefile 2008-02-29 13:56:08.000000000 +0100 ++++ linux-2.6.24.3/drivers/leds/Makefile 2008-02-29 13:56:11.000000000 +0100 +@@ -24,3 +24,4 @@ + obj-$(CONFIG_LEDS_TRIGGER_TIMER) += ledtrig-timer.o + obj-$(CONFIG_LEDS_TRIGGER_IDE_DISK) += ledtrig-ide-disk.o + obj-$(CONFIG_LEDS_TRIGGER_HEARTBEAT) += ledtrig-heartbeat.o ++obj-$(CONFIG_LEDS_TRIGGER_CPU_ACTIVITY) += ledtrig-cpu.o +Index: linux-2.6.24.3/include/linux/leds.h +=================================================================== +--- linux-2.6.24.3.orig/include/linux/leds.h 2008-02-29 13:56:08.000000000 +0100 ++++ linux-2.6.24.3/include/linux/leds.h 2008-02-29 13:56:11.000000000 +0100 +@@ -124,4 +124,13 @@ + }; + + ++/* ++ * CPU activity indication. ++ */ ++/* Idle callback - call with is_idle==1 at the start of the idle loop ++ * and with is_idle==0 at the end. This symbol must be defined by ++ * the arch core to be able to use LEDS_TRIGGER_CPU_ACTIVITY ++ */ ++extern void (*leds_idle)(int is_idle); ++ + #endif /* __LINUX_LEDS_H_INCLUDED */ diff --git a/packages/linux/linux-rt-2.6.24/mpc8313e-rdb/defconfig b/packages/linux/linux-rt-2.6.24/mpc8313e-rdb/defconfig index 9fecb47fa3..a49497ccb2 100644 --- a/packages/linux/linux-rt-2.6.24/mpc8313e-rdb/defconfig +++ b/packages/linux/linux-rt-2.6.24/mpc8313e-rdb/defconfig @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.24-rt1 -# Thu Feb 14 00:07:12 2008 +# Linux kernel version: 2.6.24.3-rt3 +# Fri Feb 29 13:59:05 2008 # # CONFIG_PPC64 is not set @@ -60,7 +60,7 @@ CONFIG_LOCK_KERNEL=y CONFIG_INIT_ENV_ARG_LIMIT=32 CONFIG_LOCALVERSION="" CONFIG_LOCALVERSION_AUTO=y -CONFIG_SWAP=y +# CONFIG_SWAP is not set CONFIG_SYSVIPC=y CONFIG_SYSVIPC_SYSCTL=y # CONFIG_POSIX_MQUEUE is not set @@ -72,10 +72,8 @@ CONFIG_SYSVIPC_SYSCTL=y # CONFIG_IKCONFIG is not set CONFIG_LOG_BUF_SHIFT=14 # CONFIG_CGROUPS is not set -CONFIG_FAIR_GROUP_SCHED=y -CONFIG_FAIR_USER_SCHED=y -# CONFIG_FAIR_CGROUP_SCHED is not set -CONFIG_SYSFS_DEPRECATED=y +# CONFIG_FAIR_GROUP_SCHED is not set +# CONFIG_SYSFS_DEPRECATED is not set # CONFIG_RELAY is not set CONFIG_BLK_DEV_INITRD=y CONFIG_INITRAMFS_SOURCE="" @@ -95,14 +93,14 @@ CONFIG_ANON_INODES=y # CONFIG_EPOLL is not set CONFIG_SIGNALFD=y CONFIG_EVENTFD=y -CONFIG_SHMEM=y -CONFIG_VM_EVENT_COUNTERS=y +# CONFIG_SHMEM is not set +# CONFIG_VM_EVENT_COUNTERS is not set CONFIG_SLAB=y # CONFIG_SLUB is not set # CONFIG_SLOB is not set CONFIG_SLABINFO=y CONFIG_RT_MUTEXES=y -# CONFIG_TINY_SHMEM is not set +CONFIG_TINY_SHMEM=y CONFIG_BASE_SMALL=0 CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y @@ -120,14 +118,14 @@ CONFIG_BLOCK=y # IO Schedulers # CONFIG_IOSCHED_NOOP=y -CONFIG_IOSCHED_AS=y -CONFIG_IOSCHED_DEADLINE=y +# CONFIG_IOSCHED_AS is not set +# CONFIG_IOSCHED_DEADLINE is not set CONFIG_IOSCHED_CFQ=y -CONFIG_DEFAULT_AS=y +# CONFIG_DEFAULT_AS is not set # CONFIG_DEFAULT_DEADLINE is not set -# CONFIG_DEFAULT_CFQ is not set +CONFIG_DEFAULT_CFQ=y # CONFIG_DEFAULT_NOOP is not set -CONFIG_DEFAULT_IOSCHED="anticipatory" +CONFIG_DEFAULT_IOSCHED="cfq" # # Platform support @@ -166,7 +164,7 @@ CONFIG_PPC_MPC831x=y # # CONFIG_HIGHMEM is not set CONFIG_TICK_ONESHOT=y -# CONFIG_NO_HZ is not set +CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y CONFIG_GENERIC_CLOCKEVENTS_BUILD=y # CONFIG_HZ_100 is not set @@ -211,7 +209,7 @@ CONFIG_PROC_DEVICETREE=y # CONFIG_PM is not set CONFIG_SUSPEND_UP_POSSIBLE=y CONFIG_HIBERNATION_UP_POSSIBLE=y -CONFIG_SECCOMP=y +# CONFIG_SECCOMP is not set CONFIG_WANT_DEVICE_TREE=y CONFIG_DEVICE_TREE="" CONFIG_ISA_DMA_API=y @@ -237,15 +235,15 @@ CONFIG_PCI_LEGACY=y # # Advanced setup # -# CONFIG_ADVANCED_OPTIONS is not set - -# -# Default settings for advanced configuration options are used -# +CONFIG_ADVANCED_OPTIONS=y CONFIG_HIGHMEM_START=0xfe000000 +# CONFIG_LOWMEM_SIZE_BOOL is not set CONFIG_LOWMEM_SIZE=0x30000000 +# CONFIG_KERNEL_START_BOOL is not set CONFIG_KERNEL_START=0xc0000000 +# CONFIG_TASK_SIZE_BOOL is not set CONFIG_TASK_SIZE=0xc0000000 +# CONFIG_BOOT_LOAD_BOOL is not set CONFIG_BOOT_LOAD=0x00800000 # @@ -276,7 +274,7 @@ CONFIG_IP_ROUTE_VERBOSE=y CONFIG_IP_PNP=y CONFIG_IP_PNP_DHCP=y CONFIG_IP_PNP_BOOTP=y -CONFIG_IP_PNP_RARP=y +# CONFIG_IP_PNP_RARP is not set CONFIG_NET_IPIP=m CONFIG_NET_IPGRE=m # CONFIG_NET_IPGRE_BROADCAST is not set @@ -456,25 +454,18 @@ CONFIG_IP6_NF_RAW=m # CONFIG_IP_DCCP is not set # CONFIG_IP_SCTP is not set # CONFIG_TIPC is not set -CONFIG_ATM=m -CONFIG_ATM_CLIP=m -# CONFIG_ATM_CLIP_NO_ICMP is not set -CONFIG_ATM_LANE=m -CONFIG_ATM_MPOA=m -CONFIG_ATM_BR2684=m -# CONFIG_ATM_BR2684_IPFILTER is not set +# CONFIG_ATM is not set CONFIG_BRIDGE=m CONFIG_VLAN_8021Q=m # CONFIG_DECNET is not set CONFIG_LLC=m CONFIG_LLC2=m -CONFIG_IPX=m -# CONFIG_IPX_INTERN 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=m +# CONFIG_WAN_ROUTER is not set CONFIG_NET_SCHED=y # @@ -483,7 +474,6 @@ CONFIG_NET_SCHED=y CONFIG_NET_SCH_CBQ=m CONFIG_NET_SCH_HTB=m CONFIG_NET_SCH_HFSC=m -CONFIG_NET_SCH_ATM=m CONFIG_NET_SCH_PRIO=m CONFIG_NET_SCH_RR=m CONFIG_NET_SCH_RED=m @@ -535,31 +525,7 @@ CONFIG_NET_SCH_FIFO=y # CONFIG_NET_PKTGEN is not set # CONFIG_HAMRADIO 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_CMTP is not set -CONFIG_BT_HIDP=m - -# -# Bluetooth device drivers -# -CONFIG_BT_HCIUSB=m -CONFIG_BT_HCIUSB_SCO=y -# CONFIG_BT_HCIBTSDIO is not set -CONFIG_BT_HCIUART=m -CONFIG_BT_HCIUART_H4=y -CONFIG_BT_HCIUART_BCSP=y -# CONFIG_BT_HCIUART_LL is not set -CONFIG_BT_HCIBCM203X=m -CONFIG_BT_HCIBPA10X=m -CONFIG_BT_HCIBFUSB=m -CONFIG_BT_HCIVHCI=m +# CONFIG_BT is not set # CONFIG_AF_RXRPC is not set CONFIG_FIB_RULES=y @@ -581,9 +547,7 @@ CONFIG_IEEE80211_CRYPT_CCMP=m CONFIG_IEEE80211_CRYPT_TKIP=m CONFIG_IEEE80211_SOFTMAC=m # CONFIG_IEEE80211_SOFTMAC_DEBUG is not set -CONFIG_RFKILL=m -CONFIG_RFKILL_INPUT=m -CONFIG_RFKILL_LEDS=y +# CONFIG_RFKILL is not set # CONFIG_NET_9P is not set # @@ -710,7 +674,7 @@ CONFIG_BLK_DEV_RAM_COUNT=16 CONFIG_BLK_DEV_RAM_SIZE=32768 CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 # CONFIG_CDROM_PKTCDVD is not set -CONFIG_ATA_OVER_ETH=m +# CONFIG_ATA_OVER_ETH is not set CONFIG_MISC_DEVICES=y # CONFIG_PHANTOM is not set CONFIG_EEPROM_93CX6=m @@ -755,42 +719,7 @@ CONFIG_SCSI_SPI_ATTRS=y # 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_BLK_DEV_3W_XXXX_RAID is not set -# CONFIG_SCSI_3W_9XXX is not set -# CONFIG_SCSI_ACARD is not set -# CONFIG_SCSI_AACRAID is not set -# CONFIG_SCSI_AIC7XXX is not set -# CONFIG_SCSI_AIC7XXX_OLD is not set -# CONFIG_SCSI_AIC79XX is not set -# CONFIG_SCSI_AIC94XX is not set -# CONFIG_SCSI_DPT_I2O is not set -# CONFIG_SCSI_ADVANSYS is not set -# CONFIG_SCSI_ARCMSR is not set -# CONFIG_MEGARAID_NEWGEN is not set -# CONFIG_MEGARAID_LEGACY is not set -# CONFIG_MEGARAID_SAS is not set -# CONFIG_SCSI_HPTIOP is not set -# CONFIG_SCSI_BUSLOGIC is not set -# CONFIG_SCSI_DMX3191D is not set -# CONFIG_SCSI_EATA is not set -# CONFIG_SCSI_FUTURE_DOMAIN is not set -# CONFIG_SCSI_GDTH is not set -# CONFIG_SCSI_IPS is not set -# CONFIG_SCSI_INITIO is not set -# CONFIG_SCSI_INIA100 is not set -# CONFIG_SCSI_STEX is not set -# CONFIG_SCSI_SYM53C8XX_2 is not set -# CONFIG_SCSI_QLOGIC_1280 is not set -# CONFIG_SCSI_QLA_FC is not set -# CONFIG_SCSI_QLA_ISCSI is not set -# CONFIG_SCSI_LPFC is not set -# CONFIG_SCSI_DC395x is not set -# CONFIG_SCSI_DC390T is not set -# CONFIG_SCSI_NSP32 is not set -# CONFIG_SCSI_DEBUG is not set -# CONFIG_SCSI_SRP is not set +# CONFIG_SCSI_LOWLEVEL is not set # CONFIG_ATA is not set # CONFIG_MD is not set # CONFIG_FUSION is not set @@ -952,20 +881,6 @@ CONFIG_ZD1211RW=m # CONFIG_USB_RTL8150 is not set # CONFIG_USB_USBNET is not set # CONFIG_WAN is not set -CONFIG_ATM_DRIVERS=y -# CONFIG_ATM_DUMMY is not set -# CONFIG_ATM_TCP is not set -# CONFIG_ATM_LANAI is not set -# CONFIG_ATM_ENI is not set -# CONFIG_ATM_FIRESTREAM is not set -# CONFIG_ATM_ZATM is not set -# CONFIG_ATM_NICSTAR is not set -# CONFIG_ATM_IDT77252 is not set -# CONFIG_ATM_AMBASSADOR is not set -# CONFIG_ATM_HORIZON is not set -# CONFIG_ATM_IA is not set -# CONFIG_ATM_FORE200E_MAYBE is not set -# CONFIG_ATM_HE is not set # CONFIG_FDDI is not set # CONFIG_HIPPI is not set CONFIG_PPP=m @@ -977,7 +892,6 @@ CONFIG_PPP_DEFLATE=m CONFIG_PPP_BSDCOMP=m CONFIG_PPP_MPPE=m CONFIG_PPPOE=m -CONFIG_PPPOATM=m CONFIG_PPPOL2TP=m # CONFIG_SLIP is not set CONFIG_SLHC=m @@ -986,103 +900,7 @@ CONFIG_SLHC=m # CONFIG_NETCONSOLE is not set # CONFIG_NETPOLL is not set # CONFIG_NET_POLL_CONTROLLER is not set -CONFIG_ISDN=m -CONFIG_ISDN_I4L=m -# CONFIG_ISDN_PPP is not set -# CONFIG_ISDN_AUDIO is not set - -# -# ISDN feature submodules -# -CONFIG_ISDN_DRV_LOOP=m -CONFIG_ISDN_DIVERSION=m - -# -# ISDN4Linux hardware drivers -# - -# -# Passive cards -# -CONFIG_ISDN_DRV_HISAX=m - -# -# D-channel protocol features -# -CONFIG_HISAX_EURO=y -CONFIG_DE_AOC=y -# CONFIG_HISAX_NO_SENDCOMPLETE is not set -# CONFIG_HISAX_NO_LLC is not set -# CONFIG_HISAX_NO_KEYPAD is not set -CONFIG_HISAX_1TR6=y -CONFIG_HISAX_NI1=y -CONFIG_HISAX_MAX_CARDS=8 - -# -# HiSax supported cards -# -CONFIG_HISAX_16_3=y -CONFIG_HISAX_S0BOX=y -CONFIG_HISAX_FRITZPCI=y -CONFIG_HISAX_AVM_A1_PCMCIA=y -CONFIG_HISAX_ELSA=y -CONFIG_HISAX_DIEHLDIVA=y -CONFIG_HISAX_SEDLBAUER=y -CONFIG_HISAX_NICCY=y -CONFIG_HISAX_BKM_A4T=y -CONFIG_HISAX_SCT_QUADRO=y -CONFIG_HISAX_GAZEL=y -CONFIG_HISAX_W6692=y -CONFIG_HISAX_HFC_SX=y -# CONFIG_HISAX_DEBUG is not set - -# -# HiSax PCMCIA card service modules -# - -# -# HiSax sub driver modules -# -CONFIG_HISAX_ST5481=m -CONFIG_HISAX_HFCUSB=m -CONFIG_HISAX_HFC4S8S=m -CONFIG_HISAX_FRITZ_PCIPNP=m -CONFIG_HISAX_HDLC=y - -# -# Active cards -# -CONFIG_HYSDN=m -CONFIG_HYSDN_CAPI=y -CONFIG_ISDN_DRV_GIGASET=m -CONFIG_GIGASET_BASE=m -CONFIG_GIGASET_M105=m -CONFIG_GIGASET_M101=m -# CONFIG_GIGASET_DEBUG is not set -CONFIG_GIGASET_UNDOCREQ=y -CONFIG_ISDN_CAPI=m -CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y -CONFIG_CAPI_TRACE=y -# CONFIG_ISDN_CAPI_MIDDLEWARE is not set -CONFIG_ISDN_CAPI_CAPI20=m -# CONFIG_ISDN_CAPI_CAPIDRV is not set - -# -# CAPI hardware drivers -# -CONFIG_CAPI_AVM=y -CONFIG_ISDN_DRV_AVMB1_B1PCI=m -# CONFIG_ISDN_DRV_AVMB1_B1PCIV4 is not set -CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m -CONFIG_ISDN_DRV_AVMB1_T1PCI=m -CONFIG_ISDN_DRV_AVMB1_C4=m -CONFIG_CAPI_EICON=y -CONFIG_ISDN_DIVAS=m -CONFIG_ISDN_DIVAS_BRIPCI=y -CONFIG_ISDN_DIVAS_PRIPCI=y -CONFIG_ISDN_DIVAS_DIVACAPI=m -CONFIG_ISDN_DIVAS_USERIDI=m -CONFIG_ISDN_DIVAS_MAINT=m +# CONFIG_ISDN is not set # CONFIG_PHONE is not set # @@ -1229,8 +1047,23 @@ CONFIG_SPI_MPC83xx=y # CONFIG_SPI_AT25=m CONFIG_SPI_SPIDEV=m -CONFIG_SPI_TLE62X0=m -# CONFIG_W1 is not set +# CONFIG_SPI_TLE62X0 is not set +CONFIG_W1=y + +# +# 1-wire Bus Masters +# +# CONFIG_W1_MASTER_MATROX is not set +# CONFIG_W1_MASTER_DS2490 is not set +# CONFIG_W1_MASTER_DS2482 is not set + +# +# 1-wire Slaves +# +# CONFIG_W1_SLAVE_THERM is not set +# CONFIG_W1_SLAVE_SMEM is not set +# CONFIG_W1_SLAVE_DS2433 is not set +# CONFIG_W1_SLAVE_DS2760 is not set # CONFIG_POWER_SUPPLY is not set CONFIG_HWMON=y # CONFIG_HWMON_VID is not set @@ -1320,8 +1153,7 @@ CONFIG_SSB_POSSIBLE=y # # CONFIG_VIDEO_DEV is not set # CONFIG_DVB_CORE is not set -CONFIG_DAB=y -# CONFIG_USB_DABUSB is not set +# CONFIG_DAB is not set # # Graphics support @@ -1329,7 +1161,7 @@ CONFIG_DAB=y # CONFIG_AGP is not set # CONFIG_DRM is not set # CONFIG_VGASTATE is not set -CONFIG_VIDEO_OUTPUT_CONTROL=m +# CONFIG_VIDEO_OUTPUT_CONTROL is not set # CONFIG_FB is not set # CONFIG_BACKLIGHT_LCD_SUPPORT is not set @@ -1341,128 +1173,7 @@ CONFIG_VIDEO_OUTPUT_CONTROL=m # # Sound # -CONFIG_SOUND=m - -# -# Advanced Linux Sound Architecture -# -CONFIG_SND=m -CONFIG_SND_TIMER=m -CONFIG_SND_PCM=m -CONFIG_SND_HWDEP=m -CONFIG_SND_RAWMIDI=m -# CONFIG_SND_SEQUENCER is not set -CONFIG_SND_OSSEMUL=y -CONFIG_SND_MIXER_OSS=m -CONFIG_SND_PCM_OSS=m -CONFIG_SND_PCM_OSS_PLUGINS=y -# CONFIG_SND_DYNAMIC_MINORS is not set -CONFIG_SND_SUPPORT_OLD_API=y -CONFIG_SND_VERBOSE_PROCFS=y -# CONFIG_SND_VERBOSE_PRINTK is not set -# CONFIG_SND_DEBUG is not set - -# -# Generic devices -# -# 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 - -# -# PCI devices -# -# CONFIG_SND_AD1889 is not set -# CONFIG_SND_ALS300 is not set -# CONFIG_SND_ALS4000 is not set -# CONFIG_SND_ALI5451 is not set -# CONFIG_SND_ATIIXP is not set -# CONFIG_SND_ATIIXP_MODEM is not set -# CONFIG_SND_AU8810 is not set -# CONFIG_SND_AU8820 is not set -# CONFIG_SND_AU8830 is not set -# CONFIG_SND_AZT3328 is not set -# CONFIG_SND_BT87X is not set -# CONFIG_SND_CA0106 is not set -# CONFIG_SND_CMIPCI is not set -# CONFIG_SND_CS4281 is not set -# CONFIG_SND_CS46XX is not set -# CONFIG_SND_CS5530 is not set -# CONFIG_SND_DARLA20 is not set -# CONFIG_SND_GINA20 is not set -# CONFIG_SND_LAYLA20 is not set -# CONFIG_SND_DARLA24 is not set -# CONFIG_SND_GINA24 is not set -# CONFIG_SND_LAYLA24 is not set -# CONFIG_SND_MONA is not set -# CONFIG_SND_MIA is not set -# CONFIG_SND_ECHO3G is not set -# CONFIG_SND_INDIGO is not set -# CONFIG_SND_INDIGOIO is not set -# CONFIG_SND_INDIGODJ is not set -# CONFIG_SND_EMU10K1 is not set -# CONFIG_SND_EMU10K1X is not set -# CONFIG_SND_ENS1370 is not set -# CONFIG_SND_ENS1371 is not set -# CONFIG_SND_ES1938 is not set -# CONFIG_SND_ES1968 is not set -# CONFIG_SND_FM801 is not set -# CONFIG_SND_HDA_INTEL is not set -# CONFIG_SND_HDSP is not set -# CONFIG_SND_HDSPM is not set -# CONFIG_SND_ICE1712 is not set -# CONFIG_SND_ICE1724 is not set -# CONFIG_SND_INTEL8X0 is not set -# CONFIG_SND_INTEL8X0M is not set -# CONFIG_SND_KORG1212 is not set -# CONFIG_SND_MAESTRO3 is not set -# CONFIG_SND_MIXART is not set -# CONFIG_SND_NM256 is not set -# CONFIG_SND_PCXHR is not set -# CONFIG_SND_RIPTIDE is not set -# CONFIG_SND_RME32 is not set -# CONFIG_SND_RME96 is not set -# CONFIG_SND_RME9652 is not set -# CONFIG_SND_SONICVIBES is not set -# CONFIG_SND_TRIDENT is not set -# CONFIG_SND_VIA82XX is not set -# CONFIG_SND_VIA82XX_MODEM is not set -# CONFIG_SND_VX222 is not set -# CONFIG_SND_YMFPCI is not set - -# -# ALSA PowerMac devices -# - -# -# ALSA PowerPC devices -# - -# -# SPI devices -# - -# -# USB devices -# -CONFIG_SND_USB_AUDIO=m -# CONFIG_SND_USB_USX2Y is not set -# CONFIG_SND_USB_CAIAQ is not set - -# -# System on Chip audio support -# -# CONFIG_SND_SOC is not set - -# -# SoC Audio support for SuperH -# - -# -# Open Sound System -# -# CONFIG_SOUND_PRIME is not set +# CONFIG_SOUND is not set CONFIG_HID_SUPPORT=y CONFIG_HID=y # CONFIG_HID_DEBUG is not set @@ -1584,7 +1295,6 @@ CONFIG_USB_MON=y # # USB DSL modem support # -# CONFIG_USB_ATM is not set # # USB Gadget Support @@ -1634,17 +1344,19 @@ CONFIG_MMC_BLOCK_BOUNCE=y # CONFIG_MMC_TIFM_SD is not set # CONFIG_MMC_SPI is not set CONFIG_NEW_LEDS=y -CONFIG_LEDS_CLASS=y +CONFIG_LEDS_CLASS=m # # LED drivers # +CONFIG_LEDS_MPC8313E_RDB=m # # LED Triggers # CONFIG_LEDS_TRIGGERS=y CONFIG_LEDS_TRIGGER_TIMER=m +CONFIG_LEDS_TRIGGER_CPU_ACTIVITY=m CONFIG_LEDS_TRIGGER_HEARTBEAT=m # CONFIG_INFINIBAND is not set # CONFIG_EDAC is not set @@ -1707,9 +1419,7 @@ CONFIG_UIO_CIF=m # # File systems # -CONFIG_EXT2_FS=y -# CONFIG_EXT2_FS_XATTR is not set -# CONFIG_EXT2_FS_XIP is not set +# CONFIG_EXT2_FS is not set CONFIG_EXT3_FS=y CONFIG_EXT3_FS_XATTR=y # CONFIG_EXT3_FS_POSIX_ACL is not set @@ -1743,14 +1453,9 @@ CONFIG_AUTOFS4_FS=y # # DOS/FAT/NT Filesystems # -CONFIG_FAT_FS=y -CONFIG_MSDOS_FS=y -CONFIG_VFAT_FS=y -CONFIG_FAT_DEFAULT_CODEPAGE=437 -CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" -CONFIG_NTFS_FS=m -# CONFIG_NTFS_DEBUG is not set -CONFIG_NTFS_RW=y +# CONFIG_MSDOS_FS is not set +# CONFIG_VFAT_FS is not set +# CONFIG_NTFS_FS is not set # # Pseudo filesystems @@ -1785,7 +1490,11 @@ CONFIG_JFFS2_ZLIB=y # CONFIG_JFFS2_LZO is not set CONFIG_JFFS2_RTIME=y # CONFIG_JFFS2_RUBIN is not set -CONFIG_CRAMFS=y +# CONFIG_CRAMFS is not set +CONFIG_SQUASHFS=y +CONFIG_SQUASHFS_EMBEDDED=y +CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=1 +# CONFIG_SQUASHFS_VMALLOC is not set # CONFIG_VXFS_FS is not set # CONFIG_HPFS_FS is not set # CONFIG_QNX4FS_FS is not set @@ -1797,13 +1506,10 @@ CONFIG_NFS_V3=y # CONFIG_NFS_V3_ACL is not set CONFIG_NFS_V4=y # CONFIG_NFS_DIRECTIO is not set -CONFIG_NFSD=m -# CONFIG_NFSD_V3 is not set -CONFIG_NFSD_TCP=y +# CONFIG_NFSD is not set CONFIG_ROOT_NFS=y CONFIG_LOCKD=y CONFIG_LOCKD_V4=y -CONFIG_EXPORTFS=m CONFIG_NFS_COMMON=y CONFIG_SUNRPC=y CONFIG_SUNRPC_GSS=y @@ -1927,8 +1633,8 @@ 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 is not set +CONFIG_SCHEDSTATS=y +CONFIG_TIMER_STATS=y # CONFIG_DEBUG_SLAB is not set # CONFIG_DEBUG_PREEMPT is not set # CONFIG_DEBUG_RT_MUTEXES is not set @@ -1936,11 +1642,6 @@ CONFIG_DEBUG_KERNEL=y # CONFIG_DEBUG_SPINLOCK is not set # CONFIG_DEBUG_SPINLOCK_SLEEP is not set # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set -# CONFIG_EVENT_TRACE is not set -# CONFIG_FUNCTION_TRACE is not set -# CONFIG_WAKEUP_TIMING is not set -# CONFIG_CRITICAL_PREEMPT_TIMING is not set -# CONFIG_CRITICAL_IRQSOFF_TIMING is not set # CONFIG_DEBUG_KOBJECT is not set CONFIG_DEBUG_BUGVERBOSE=y # CONFIG_DEBUG_INFO is not set @@ -1951,7 +1652,12 @@ CONFIG_DEBUG_BUGVERBOSE=y # CONFIG_BOOT_PRINTK_DELAY is not set # CONFIG_RCU_TORTURE_TEST is not set # CONFIG_FAULT_INJECTION is not set -CONFIG_HAVE_MCOUNT=y +# CONFIG_IRQSOFF_TRACER is not set +# CONFIG_PREEMPT_TRACER is not set +# CONFIG_SCHED_TRACER is not set +# CONFIG_EVENT_TRACER is not set +# CONFIG_CONTEXT_SWITCH_TRACER is not set +# CONFIG_PREEMPT_TRACE is not set # CONFIG_SAMPLES is not set CONFIG_TRACE_IRQFLAGS_SUPPORT=y # CONFIG_DEBUG_STACKOVERFLOW is not set diff --git a/packages/linux/linux-rt-2.6.24/mpc8313e-rdb/mpc8313e-rdb-leds.patch b/packages/linux/linux-rt-2.6.24/mpc8313e-rdb/mpc8313e-rdb-leds.patch new file mode 100644 index 0000000000..157df51c04 --- /dev/null +++ b/packages/linux/linux-rt-2.6.24/mpc8313e-rdb/mpc8313e-rdb-leds.patch @@ -0,0 +1,207 @@ +Index: linux-2.6.24.3/drivers/leds/Kconfig +=================================================================== +--- linux-2.6.24.3.orig/drivers/leds/Kconfig 2008-02-26 01:20:20.000000000 +0100 ++++ linux-2.6.24.3/drivers/leds/Kconfig 2008-02-29 00:43:28.000000000 +0100 +@@ -114,6 +114,12 @@ + help + This option enables support for the CM-X270 LEDs. + ++config LEDS_MPC8313E_RDB ++ tristate "LED Support for MPC8313E-RDB LEDs" ++ depends on LEDS_CLASS && PPC_83xx ++ help ++ This option enables support for the LEDs on MPC8313E-RDB board. ++ + comment "LED Triggers" + + config LEDS_TRIGGERS +Index: linux-2.6.24.3/drivers/leds/leds-mpc8313e-rdb.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ linux-2.6.24.3/drivers/leds/leds-mpc8313e-rdb.c 2008-02-29 01:36:07.000000000 +0100 +@@ -0,0 +1,173 @@ ++/* ++ * drivers/leds/leds-mpc8313e-rdb.c ++ * Copyright (C) 2007-2008 Jeremy Laine <jeremy.laine@bolloretelecom.eu> ++ * Copyright (C) 2007-2008 Leon Woestenberg <leon@sidebranch.com> ++ * ++ * This file is subject to the terms and conditions of the GNU General Public ++ * License. See the file COPYING in the main directory of this archive for ++ * more details. ++ * ++ * MPC8313E-RDB LEDs driver ++ * ++ */ ++ ++#include <linux/module.h> ++#include <linux/platform_device.h> ++#include <linux/ioport.h> ++#include <linux/leds.h> ++#include <linux/err.h> ++#include <asm/io.h> ++ ++/* note the board is not wired for read access from the LED buffer */ ++#define LEDS_BASE 0xfa000000 ++#define LEDS_SIZE 0x2 ++ ++static struct platform_device *leds_pdev = NULL; ++static struct resource *led_mem = NULL; ++static void *led_io = NULL; ++static u8 led_state = 0xff; ++ ++struct mpc8313_led { ++ struct led_classdev cdev; ++ u8 bitmask; ++}; ++ ++static void mpc8313leds_set(struct led_classdev *led_cdev, enum led_brightness value) ++{ ++ struct mpc8313_led *led_dev = container_of(led_cdev, struct mpc8313_led, cdev); ++ if (value) ++ led_state &= ~led_dev->bitmask; ++ else ++ led_state |= led_dev->bitmask; ++ iowrite8(led_state, led_io); ++} ++ ++/* led0 is red, led1 is yellow, led2-7 are green */ ++static struct mpc8313_led mpc8313_leds[] = { ++ { ++ .cdev = { ++ .name = "mpc8313:led0", ++ .brightness_set = mpc8313leds_set, ++ }, ++ .bitmask = 128, ++ }, ++ { ++ .cdev = { ++ .name = "mpc8313:led1", ++ .brightness_set = mpc8313leds_set, ++ }, ++ .bitmask = 64, ++ }, ++ { ++ .cdev = { ++ .name = "mpc8313:led2", ++ .brightness_set = mpc8313leds_set, ++ }, ++ .bitmask = 32, ++ }, ++ { ++ .cdev = { ++ .name = "mpc8313:led3", ++ .brightness_set = mpc8313leds_set, ++ }, ++ .bitmask = 16, ++ }, ++ { ++ .cdev = { ++ .name = "mpc8313:led4", ++ .brightness_set = mpc8313leds_set, ++ }, ++ .bitmask = 8, ++ }, ++ { ++ .cdev = { ++ .name = "mpc8313:led5", ++ .brightness_set = mpc8313leds_set, ++ }, ++ .bitmask = 4, ++ }, ++ { ++ .cdev = { ++ .name = "mpc8313:led6", ++ .brightness_set = mpc8313leds_set, ++ }, ++ .bitmask = 2, ++ }, ++ { ++ .cdev = { ++ .name = "mpc8313:led7", ++ .brightness_set = mpc8313leds_set, ++ }, ++ .bitmask = 1, ++ }, ++}; ++ ++static int mpc8313leds_probe(struct platform_device *pdev) ++{ ++ int i; ++ int ret; ++ ++ for (i = ret = 0; ret >= 0 && i < ARRAY_SIZE(mpc8313_leds); i++) { ++ ret = led_classdev_register(&pdev->dev, ++ &mpc8313_leds[i].cdev); ++ } ++ ++ if (ret < 0 && i > 1) { ++ for (i = i - 2; i >= 0; i--) ++ led_classdev_unregister(&mpc8313_leds[i].cdev); ++ } ++ ++ return ret; ++} ++ ++static int mpc8313leds_remove(struct platform_device *pdev) ++{ ++ int i; ++ ++ for (i = ARRAY_SIZE(mpc8313_leds) - 1; i >= 0; i--) ++ led_classdev_unregister(&mpc8313_leds[i].cdev); ++ ++ return 0; ++} ++ ++static struct platform_driver mpc8313leds_driver = { ++ .driver = { ++ .name = "mpc8313-leds", ++ .owner = THIS_MODULE, ++ }, ++ .probe = mpc8313leds_probe, ++ .remove = mpc8313leds_remove, ++}; ++ ++static int __init mpc8313leds_init(void) ++{ ++ if (!(led_mem = request_mem_region(LEDS_BASE, LEDS_SIZE, "mpc8313-leds"))) ++ return -ENOMEM; ++ if (!(led_io = ioremap(LEDS_BASE, LEDS_SIZE))) ++ { ++ release_mem_region(LEDS_BASE, LEDS_SIZE); ++ led_mem = NULL; ++ return -ENOMEM; ++ } ++ iowrite8(led_state, led_io); ++ ++ leds_pdev = platform_device_register_simple("mpc8313-leds", -1, NULL, 0); ++ ++ return platform_driver_register(&mpc8313leds_driver); ++} ++ ++static void __exit mpc8313leds_exit(void) ++{ ++ if (led_mem) release_mem_region(LEDS_BASE, LEDS_SIZE); ++ led_mem = NULL; ++ platform_driver_unregister(&mpc8313leds_driver); ++ ++ platform_device_unregister(leds_pdev); ++} ++ ++module_init(mpc8313leds_init); ++module_exit(mpc8313leds_exit); ++ ++MODULE_AUTHOR("Jeremy Laine <jeremy.laine@bolloretelecom.eu>"); ++MODULE_DESCRIPTION("MPC8313E-RDB LED driver"); ++MODULE_LICENSE("GPL"); +Index: linux-2.6.24.3/drivers/leds/Makefile +=================================================================== +--- linux-2.6.24.3.orig/drivers/leds/Makefile 2008-02-26 01:20:20.000000000 +0100 ++++ linux-2.6.24.3/drivers/leds/Makefile 2008-02-29 00:43:28.000000000 +0100 +@@ -19,6 +19,7 @@ + obj-$(CONFIG_LEDS_COBALT_RAQ) += leds-cobalt-raq.o + obj-$(CONFIG_LEDS_GPIO) += leds-gpio.o + obj-$(CONFIG_LEDS_CM_X270) += leds-cm-x270.o ++obj-$(CONFIG_LEDS_MPC8313E_RDB) += leds-mpc8313e-rdb.o + + # LED Triggers + obj-$(CONFIG_LEDS_TRIGGER_TIMER) += ledtrig-timer.o diff --git a/packages/linux/linux-rt-2.6.24/powerpc-clockres.patch b/packages/linux/linux-rt-2.6.24/powerpc-clockres.patch new file mode 100644 index 0000000000..a0cf05b44e --- /dev/null +++ b/packages/linux/linux-rt-2.6.24/powerpc-clockres.patch @@ -0,0 +1,47 @@ +Index: linux-2.6.24/arch/powerpc/kernel/asm-offsets.c +=================================================================== +--- linux-2.6.24.orig/arch/powerpc/kernel/asm-offsets.c 2008-02-16 13:54:09.000000000 +0100 ++++ linux-2.6.24/arch/powerpc/kernel/asm-offsets.c 2008-02-16 13:54:30.000000000 +0100 +@@ -312,7 +312,7 @@ + DEFINE(CLOCK_REALTIME, CLOCK_REALTIME); + DEFINE(CLOCK_MONOTONIC, CLOCK_MONOTONIC); + DEFINE(NSEC_PER_SEC, NSEC_PER_SEC); +- DEFINE(CLOCK_REALTIME_RES, TICK_NSEC); ++ DEFINE(CLOCK_REALTIME_RES, MONOTONIC_RES_NSEC); + + #ifdef CONFIG_BUG + DEFINE(BUG_ENTRY_SIZE, sizeof(struct bug_entry)); +Index: linux-2.6.24/include/linux/hrtimer.h +=================================================================== +--- linux-2.6.24.orig/include/linux/hrtimer.h 2008-02-16 13:54:09.000000000 +0100 ++++ linux-2.6.24/include/linux/hrtimer.h 2008-02-16 13:54:33.000000000 +0100 +@@ -223,11 +223,13 @@ + * idea of the (in)accuracy of timers. Timer values are rounded up to + * this resolution values. + */ +-# define KTIME_HIGH_RES (ktime_t) { .tv64 = 1 } ++# define HIGH_RES_NSEC 1 ++# define KTIME_HIGH_RES (ktime_t) { .tv64 = HIGH_RES_NSEC } ++# define MONOTONIC_RES_NSEC HIGH_RES_NSEC + # define KTIME_MONOTONIC_RES KTIME_HIGH_RES + + #else +- ++# define MONOTONIC_RES_NSEC LOW_RES_NSEC + # define KTIME_MONOTONIC_RES KTIME_LOW_RES + + /* +Index: linux-2.6.24/include/linux/ktime.h +=================================================================== +--- linux-2.6.24.orig/include/linux/ktime.h 2008-02-16 13:54:09.000000000 +0100 ++++ linux-2.6.24/include/linux/ktime.h 2008-02-16 13:54:36.000000000 +0100 +@@ -316,7 +316,8 @@ + * idea of the (in)accuracy of timers. Timer values are rounded up to + * this resolution values. + */ +-#define KTIME_LOW_RES (ktime_t){ .tv64 = TICK_NSEC } ++#define LOW_RES_NSEC TICK_NSEC ++#define KTIME_LOW_RES (ktime_t){ .tv64 = LOW_RES_NSEC } + + /* Get the monotonic time in timespec format: */ + extern void ktime_get_ts(struct timespec *ts); diff --git a/packages/linux/linux-rt-2.6.24/sysctl_missing_include.patch b/packages/linux/linux-rt-2.6.24/sysctl_missing_include.patch new file mode 100644 index 0000000000..2949374818 --- /dev/null +++ b/packages/linux/linux-rt-2.6.24/sysctl_missing_include.patch @@ -0,0 +1,12 @@ +Index: linux-2.6.24.3/kernel/sysctl.c +=================================================================== +--- linux-2.6.24.3.orig/kernel/sysctl.c 2008-02-29 00:52:45.000000000 +0100 ++++ linux-2.6.24.3/kernel/sysctl.c 2008-02-29 00:52:59.000000000 +0100 +@@ -47,6 +47,7 @@ + #include <linux/acpi.h> + #include <linux/reboot.h> + #include <linux/ftrace.h> ++#include <linux/profile.h> + + #include <asm/uaccess.h> + #include <asm/processor.h> |