Author: tbm Date: Sun Oct 29 12:38:36 2006 New Revision: 7658 Added: dists/trunk/linux-2.6/debian/patches/bugfix/arm/arm-generic-time.patch dists/trunk/linux-2.6/debian/patches/bugfix/arm/ixp4xx-clocksource.patch Modified: dists/trunk/linux-2.6/debian/arch/arm/config dists/trunk/linux-2.6/debian/arch/arm/config.ixp4xx dists/trunk/linux-2.6/debian/changelog dists/trunk/linux-2.6/debian/patches/series/4 Log: Add clocksource for Intel IXP4xx platforms. This fixes time on NSLU2.
Modified: dists/trunk/linux-2.6/debian/arch/arm/config ============================================================================== --- dists/trunk/linux-2.6/debian/arch/arm/config (original) +++ dists/trunk/linux-2.6/debian/arch/arm/config Sun Oct 29 12:38:36 2006 @@ -1,4 +1,5 @@ CONFIG_ARM=y +# CONFIG_GENERIC_TIME is not set # CONFIG_CIFS_EXPERIMENTAL is not set CONFIG_SLIP_SMART=y CONFIG_SUNRPC_GSS=m Modified: dists/trunk/linux-2.6/debian/arch/arm/config.ixp4xx ============================================================================== --- dists/trunk/linux-2.6/debian/arch/arm/config.ixp4xx (original) +++ dists/trunk/linux-2.6/debian/arch/arm/config.ixp4xx Sun Oct 29 12:38:36 2006 @@ -1,3 +1,4 @@ +CONFIG_GENERIC_TIME=y CONFIG_RWSEM_GENERIC_SPINLOCK=y CONFIG_GENERIC_HWEIGHT=y CONFIG_GENERIC_CALIBRATE_DELAY=y Modified: dists/trunk/linux-2.6/debian/changelog ============================================================================== --- dists/trunk/linux-2.6/debian/changelog (original) +++ dists/trunk/linux-2.6/debian/changelog Sun Oct 29 12:38:36 2006 @@ -22,6 +22,7 @@ [ Martin Michlmayr ] * arm/iop32x: Fix the interrupt of the 2nd Ethernet slot on N2100. * arm/iop32x: Allow USB and serial to co-exist on N2100. + * arm/ixp4xx: Add clocksource for Intel IXP4xx platforms. [ maximilian attems ] * Add netpoll leak fix. Added: dists/trunk/linux-2.6/debian/patches/bugfix/arm/arm-generic-time.patch ============================================================================== --- (empty file) +++ dists/trunk/linux-2.6/debian/patches/bugfix/arm/arm-generic-time.patch Sun Oct 29 12:38:36 2006 @@ -0,0 +1,84 @@ +Backported from 2.6.19-rc3, needed for ixp4xx-clocksource.patch + +Index: linux-2.6.18/arch/arm/Kconfig +=================================================================== +--- linux-2.6.18.orig/arch/arm/Kconfig 2006-09-19 20:42:06.000000000 -0700 ++++ linux-2.6.18/arch/arm/Kconfig 2006-10-29 01:59:14.000000000 -0700 +@@ -17,6 +17,10 @@ + Europe. There is an ARM Linux project with a web page at + <http://www.arm.linux.org.uk/>. + ++config GENERIC_TIME ++ bool ++ default n ++ + config MMU + bool + default y +Index: linux-2.6.18/arch/arm/kernel/time.c +=================================================================== +--- linux-2.6.18.orig/arch/arm/kernel/time.c 2006-09-19 20:42:06.000000000 -0700 ++++ linux-2.6.18/arch/arm/kernel/time.c 2006-10-29 01:59:14.000000000 -0700 +@@ -69,10 +69,12 @@ + */ + int (*set_rtc)(void); + ++#ifndef CONFIG_GENERIC_TIME + static unsigned long dummy_gettimeoffset(void) + { + return 0; + } ++#endif + + /* + * Scheduler clock - returns current time in nanosec units. +@@ -230,6 +232,7 @@ + #define do_leds() + #endif + ++#ifndef CONFIG_GENERIC_TIME + void do_gettimeofday(struct timeval *tv) + { + unsigned long flags; +@@ -291,6 +294,7 @@ + } + + EXPORT_SYMBOL(do_settimeofday); ++#endif /* !CONFIG_GENERIC_TIME */ + + /** + * save_time_delta - Save the offset between system time and RTC time +@@ -500,8 +504,10 @@ + + void __init time_init(void) + { ++#ifndef CONFIG_GENERIC_TIME + if (system_timer->offset == NULL) + system_timer->offset = dummy_gettimeoffset; ++#endif + system_timer->init(); + + #ifdef CONFIG_NO_IDLE_HZ +Index: linux-2.6.18/include/asm-arm/mach/time.h +=================================================================== +--- linux-2.6.18.orig/include/asm-arm/mach/time.h 2006-09-19 20:42:06.000000000 -0700 ++++ linux-2.6.18/include/asm-arm/mach/time.h 2006-10-29 01:59:14.000000000 -0700 +@@ -38,7 +38,9 @@ + void (*init)(void); + void (*suspend)(void); + void (*resume)(void); ++#ifndef CONFIG_GENERIC_TIME + unsigned long (*offset)(void); ++#endif + + #ifdef CONFIG_NO_IDLE_HZ + struct dyn_tick_timer *dyn_tick; +Index: linux-2.6.18/include/asm-arm/timeofday.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ linux-2.6.18/include/asm-arm/timeofday.h 2006-10-29 01:59:14.000000000 -0700 +@@ -0,0 +1,4 @@ ++#ifndef _ASM_ARM_TIMEOFDAY_H ++#define _ASM_ARM_TIMEOFDAY_H ++#include <asm-generic/timeofday.h> ++#endif Added: dists/trunk/linux-2.6/debian/patches/bugfix/arm/ixp4xx-clocksource.patch ============================================================================== --- (empty file) +++ dists/trunk/linux-2.6/debian/patches/bugfix/arm/ixp4xx-clocksource.patch Sun Oct 29 12:38:36 2006 @@ -0,0 +1,121 @@ +From: Kevin Hilman <[EMAIL PROTECTED]> +Date: Thu, 21 Sep 2006 23:58:57 +0000 (+0100) +Subject: [ARM] 3856/1: Add clocksource for Intel IXP4xx platforms +X-Git-Url: http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=84904d0ead0a8c419abd45c7b2ac8d76d50a0d48 + +[ARM] 3856/1: Add clocksource for Intel IXP4xx platforms + +Enables the ixp4xx platforms to use Generic time-of-day. + +Signed-off-by: Kevin Hilman <[EMAIL PROTECTED]> +Acked-by: John Stultz <[EMAIL PROTECTED]> +Signed-off-by: Deepak Saxena <[EMAIL PROTECTED]> +Signed-off-by: Russell King <[EMAIL PROTECTED]> +Index: linux-2.6.18/arch/arm/Kconfig +=================================================================== +--- linux-2.6.18.orig/arch/arm/Kconfig 2006-10-29 01:59:14.000000000 -0700 ++++ linux-2.6.18/arch/arm/Kconfig 2006-10-29 01:59:38.000000000 -0700 +@@ -212,6 +212,7 @@ + config ARCH_IXP4XX + bool "IXP4xx-based" + depends on MMU ++ select GENERIC_TIME + help + Support for Intel's IXP4XX (XScale) family of processors. + +Index: linux-2.6.18/arch/arm/mach-ixp4xx/common.c +=================================================================== +--- linux-2.6.18.orig/arch/arm/mach-ixp4xx/common.c 2006-09-19 20:42:06.000000000 -0700 ++++ linux-2.6.18/arch/arm/mach-ixp4xx/common.c 2006-10-29 01:00:08.000000000 -0800 +@@ -26,6 +26,7 @@ + #include <linux/bitops.h> + #include <linux/time.h> + #include <linux/timex.h> ++#include <linux/clocksource.h> + + #include <asm/hardware.h> + #include <asm/uaccess.h> +@@ -255,16 +256,6 @@ + + #define CLOCK_TICKS_PER_USEC ((CLOCK_TICK_RATE + USEC_PER_SEC/2) / USEC_PER_SEC) + +-/* IRQs are disabled before entering here from do_gettimeofday() */ +-static unsigned long ixp4xx_gettimeoffset(void) +-{ +- u32 elapsed; +- +- elapsed = *IXP4XX_OSTS - last_jiffy_time; +- +- return elapsed / CLOCK_TICKS_PER_USEC; +-} +- + static irqreturn_t ixp4xx_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) + { + write_seqlock(&xtime_lock); +@@ -309,7 +300,6 @@ + + struct sys_timer ixp4xx_timer = { + .init = ixp4xx_timer_init, +- .offset = ixp4xx_gettimeoffset, + }; + + static struct resource ixp46x_i2c_resources[] = { +@@ -365,3 +355,29 @@ + ixp4xx_exp_bus_size >> 20); + } + ++cycle_t ixp4xx_get_cycles(void) ++{ ++ return *IXP4XX_OSTS; ++} ++ ++static struct clocksource clocksource_ixp4xx = { ++ .name = "OSTS", ++ .rating = 200, ++ .read = ixp4xx_get_cycles, ++ .mask = CLOCKSOURCE_MASK(32), ++ .shift = 20, ++ .is_continuous = 1, ++}; ++ ++unsigned long ixp4xx_timer_freq = FREQ; ++static int __init ixp4xx_clocksource_init(void) ++{ ++ clocksource_ixp4xx.mult = ++ clocksource_hz2mult(ixp4xx_timer_freq, ++ clocksource_ixp4xx.shift); ++ clocksource_register(&clocksource_ixp4xx); ++ ++ return 0; ++} ++ ++device_initcall(ixp4xx_clocksource_init); +Index: linux-2.6.18/arch/arm/mach-ixp4xx/nslu2-setup.c +=================================================================== +--- linux-2.6.18.orig/arch/arm/mach-ixp4xx/nslu2-setup.c 2006-09-19 20:42:06.000000000 -0700 ++++ linux-2.6.18/arch/arm/mach-ixp4xx/nslu2-setup.c 2006-10-29 01:00:08.000000000 -0800 +@@ -159,6 +159,8 @@ + + static void __init nslu2_init(void) + { ++ ixp4xx_timer_freq = NSLU2_FREQ; ++ + ixp4xx_sys_init(); + + nslu2_flash_resource.start = IXP4XX_EXP_BUS_BASE(0); +Index: linux-2.6.18/include/asm-arm/arch-ixp4xx/platform.h +=================================================================== +--- linux-2.6.18.orig/include/asm-arm/arch-ixp4xx/platform.h 2006-09-19 20:42:06.000000000 -0700 ++++ linux-2.6.18/include/asm-arm/arch-ixp4xx/platform.h 2006-10-29 01:00:08.000000000 -0800 +@@ -90,6 +90,11 @@ + struct sys_timer; + + /* ++ * Frequency of clock used for primary clocksource ++ */ ++extern unsigned long ixp4xx_timer_freq; ++ ++/* + * Functions used by platform-level setup code + */ + extern void ixp4xx_map_io(void); Modified: dists/trunk/linux-2.6/debian/patches/series/4 ============================================================================== --- dists/trunk/linux-2.6/debian/patches/series/4 (original) +++ dists/trunk/linux-2.6/debian/patches/series/4 Sun Oct 29 12:38:36 2006 @@ -10,3 +10,5 @@ + bugfix/net-r8169-mmio8167.patch + features/net-r8169-pci_id-corega.patch + bugfix/net-r8169-hotplug_loop.patch ++ bugfix/arm/arm-generic-time.patch ++ bugfix/arm/ixp4xx-clocksource.patch _______________________________________________ Kernel-svn-changes mailing list [email protected] http://lists.alioth.debian.org/mailman/listinfo/kernel-svn-changes

