[kernel] r7658 - in dists/trunk/linux-2.6/debian: . arch/arm patches/bugfix/arm patches/series

Martin Michlmayr tbm at alioth.debian.org
Sun Oct 29 11:38:36 UTC 2006


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 <khilman at mvista.com>
+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 <khilman at mvista.com>
+Acked-by: John Stultz <johnstul at us.ibm.com>
+Signed-off-by: Deepak Saxena <dsaxena at plexity.net>
+Signed-off-by: Russell King <rmk+kernel at arm.linux.org.uk>
+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



More information about the Kernel-svn-changes mailing list