bk://bk.arm.linux.org.uk/linux-2.6-rmk rmk@flint.arm.linux.org.uk|ChangeSet|20040623234038|55147 rmk # This is a BitKeeper generated diff -Nru style patch. # # ChangeSet # 2004/06/24 00:40:38+01:00 rmk@flint.arm.linux.org.uk # [ARM] Fix acornfb build error. # # drivers/video/acornfb.c # 2004/06/24 00:37:55+01:00 rmk@flint.arm.linux.org.uk +3 -1 # Fix acornfb build error. # # ChangeSet # 2004/06/24 00:23:46+01:00 rmk@flint.arm.linux.org.uk # [ARM] Fix Footbridge timer functions. # # arch/arm/mach-footbridge/time.c # 2004/06/24 00:21:20+01:00 rmk@flint.arm.linux.org.uk +3 -3 # Fix couple of typo's. # The ISA IRQ number is IRQ_ISA_TIMER. # # ChangeSet # 2004/06/24 00:15:06+01:00 rmk@flint.arm.linux.org.uk # [ARM] Fix EBSA110 timer functions. # # Unfortunately this broke in Deepak's merge. Fix it. # # arch/arm/mach-ebsa110/core.c # 2004/06/24 00:12:38+01:00 rmk@flint.arm.linux.org.uk +2 -1 # Needs linux/interrupt.h # ebsa110_time_init should be ebsa110_init_time, and can be static. # # BitKeeper/deleted/.del-time.c~80f13e5e859789c2 # 2004/06/24 00:06:48+01:00 rmk@flint.arm.linux.org.uk +0 -0 # Delete: arch/arm/mach-ebsa110/time.c # # ChangeSet # 2004/06/23 23:26:14+01:00 tony@com.rmk.(none) # [ARM PATCH] 1943/1: OMAP compile fix # # Patch from Tony Lindgren # # This patch fixes OMAP compile after the ARM timer changes # in cset 1.1821.5.3 and dma-mapping device address translation # in cset 1.1821.5.3. # # arch/arm/mach-omap/time.c # 2004/06/23 15:56:02+01:00 tony@com.rmk.(none) +5 -0 # [PATCH] 1943/1: OMAP compile fix # # arch/arm/mach-omap/bus.c # 2004/06/23 15:55:21+01:00 tony@com.rmk.(none) +0 -39 # [PATCH] 1943/1: OMAP compile fix # # ChangeSet # 2004/06/23 19:13:37+01:00 rmk@flint.arm.linux.org.uk # [ARM] Fix platform device registration. # # Since the platform device registration is now merged into the driver # model, remove it from the ARM specific code. # # arch/arm/mach-versatile/core.c # 2004/06/23 19:11:04+01:00 rmk@flint.arm.linux.org.uk +2 -2 # Use platform_device_register not platform_add_device # # arch/arm/mach-integrator/integrator_ap.c # 2004/06/23 19:11:04+01:00 rmk@flint.arm.linux.org.uk +1 -1 # Use platform_device_register not platform_add_device # # arch/arm/common/Makefile # 2004/06/23 19:11:04+01:00 rmk@flint.arm.linux.org.uk +0 -1 # Remove platform.o # # BitKeeper/deleted/.del-platform.c~ecafa76df502a094 # 2004/06/23 18:21:25+01:00 rmk@flint.arm.linux.org.uk +0 -0 # Delete: arch/arm/common/platform.c # # ChangeSet # 2004/06/23 18:09:17+01:00 rmk@flint.arm.linux.org.uk # [ARM] Fix Integrator/CP timer support. # # arch/arm/mach-integrator/time.c # 2004/06/23 18:04:47+01:00 rmk@flint.arm.linux.org.uk +0 -144 # Remove timer setup/interrupt support. # # arch/arm/mach-integrator/integrator_cp.c # 2004/06/23 18:04:47+01:00 rmk@flint.arm.linux.org.uk +2 -0 # Integrator/CP needs TIMER_CTRL_IE # # arch/arm/mach-integrator/core.c # 2004/06/23 18:04:47+01:00 rmk@flint.arm.linux.org.uk +139 -0 # Move timer support from time.c # # ChangeSet # 2004/06/23 01:45:03-07:00 akpm@bix.(none) # Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-arm # # arch/arm/Kconfig # 2004/06/23 01:45:00-07:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2004/06/18 15:32:04-07:00 akpm@bix.(none) # Merge bk://bk.arm.linux.org.uk/linux-2.6-rmk # into bix.(none):/usr/src/bk-arm # # arch/arm/Kconfig # 2004/06/18 15:32:00-07:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2004/06/18 11:42:46-07:00 akpm@bix.(none) # Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-arm # # include/linux/pci_ids.h # 2004/06/18 11:42:42-07:00 akpm@bix.(none) +0 -0 # Auto merged # # arch/arm/Kconfig # 2004/06/18 11:42:42-07:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2004/06/17 20:06:30-07:00 akpm@bix.(none) # Merge bk://bk.arm.linux.org.uk/linux-2.6-rmk # into bix.(none):/usr/src/dead-bk-arm # # arch/arm/Kconfig # 2004/06/17 20:06:27-07:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2004/06/15 21:03:06-07:00 akpm@bix.(none) # Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-arm # # include/linux/pci_ids.h # 2004/06/15 21:03:02-07:00 akpm@bix.(none) +0 -0 # Auto merged # # arch/arm/Kconfig # 2004/06/15 21:03:02-07:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2004/06/06 22:44:22-07:00 akpm@bix.(none) # Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-arm # # include/asm-arm/cacheflush.h # 2004/06/06 22:44:19-07:00 akpm@bix.(none) +0 -0 # Auto merged # # arch/arm/mm/fault-armv.c # 2004/06/06 22:44:19-07:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2004/06/03 10:19:08-07:00 akpm@bix.(none) # Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-arm # # include/linux/pci_ids.h # 2004/06/03 10:19:05-07:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2004/06/02 13:16:03-07:00 akpm@bix.(none) # Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-arm # # include/linux/pci_ids.h # 2004/06/02 13:16:00-07:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2004/05/28 16:59:44-07:00 akpm@bix.(none) # Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-arm # # include/linux/pci_ids.h # 2004/05/28 16:59:40-07:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2004/05/28 13:17:09-07:00 akpm@bix.(none) # Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-arm # # include/linux/pci_ids.h # 2004/05/28 13:17:06-07:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2004/05/24 11:23:36-07:00 akpm@bix.(none) # Merge bk://bk.arm.linux.org.uk/linux-2.6-rmk # into bix.(none):/usr/src/bk-arm # # arch/arm/Kconfig # 2004/05/24 11:23:32-07:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2004/05/24 11:21:47-07:00 akpm@bix.(none) # Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-arm # # include/linux/pci_ids.h # 2004/05/24 11:21:43-07:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2004/05/22 23:26:13-07:00 akpm@bix.(none) # Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-arm # # include/linux/pci_ids.h # 2004/05/22 23:26:09-07:00 akpm@bix.(none) +0 -0 # Auto merged # # include/asm-arm/cacheflush.h # 2004/05/22 23:26:09-07:00 akpm@bix.(none) +0 -0 # Auto merged # # arch/arm/mm/fault-armv.c # 2004/05/22 23:26:09-07:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2004/05/21 18:48:26-07:00 akpm@bix.(none) # Merge bk://bk.arm.linux.org.uk/linux-2.6-rmk # into bix.(none):/usr/src/bk-arm # # arch/arm/Kconfig # 2004/05/21 18:48:22-07:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2004/05/19 13:23:38-07:00 akpm@bix.(none) # Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-arm # # arch/arm/Kconfig # 2004/05/19 13:23:35-07:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2004/05/18 23:42:05-07:00 akpm@bix.(none) # Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-arm # # include/linux/pci_ids.h # 2004/05/18 23:42:03-07:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2004/05/18 14:28:02-07:00 akpm@bix.(none) # Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-arm # # include/linux/pci_ids.h # 2004/05/18 14:27:59-07:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2004/05/16 01:23:53-07:00 akpm@bix.(none) # Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-arm # # include/linux/pci_ids.h # 2004/05/16 01:23:50-07:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2004/05/14 21:19:47-07:00 akpm@bix.(none) # Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-arm # # include/linux/pci_ids.h # 2004/05/14 21:19:44-07:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2004/05/14 01:37:50-07:00 akpm@bix.(none) # Merge bk://bk.arm.linux.org.uk/linux-2.6-rmk # into bix.(none):/usr/src/bk-arm # # arch/arm/Kconfig # 2004/05/14 01:37:45-07:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2004/05/09 21:06:39-07:00 akpm@bix.(none) # Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-arm # # arch/arm/Kconfig # 2004/05/09 21:06:36-07:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2004/04/29 15:40:20-07:00 akpm@bix.(none) # Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-arm # # arch/arm/mm/fault-armv.c # 2004/04/29 15:40:17-07:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2004/04/24 23:41:39-07:00 akpm@bix.(none) # Merge bk://bk.arm.linux.org.uk/linux-2.6-rmk # into bix.(none):/usr/src/bk-arm # # arch/arm/Kconfig # 2004/04/24 23:41:36-07:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2004/04/21 21:45:04-07:00 akpm@bix.(none) # Merge bk://bk.arm.linux.org.uk/linux-2.6-rmk # into bix.(none):/usr/src/bk-arm # # arch/arm/Kconfig # 2004/04/21 21:45:01-07:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2004/04/19 19:21:35-07:00 akpm@bix.(none) # Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-arm # # include/asm-arm/cacheflush.h # 2004/04/19 19:21:32-07:00 akpm@bix.(none) +0 -0 # Auto merged # # arch/arm/mm/fault-armv.c # 2004/04/19 19:21:32-07:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2004/04/12 20:39:35-07:00 akpm@bix.(none) # Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-arm # # include/asm-arm/cacheflush.h # 2004/04/12 20:39:33-07:00 akpm@bix.(none) +0 -0 # Auto merged # # arch/arm/mm/fault-armv.c # 2004/04/12 20:39:33-07:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2004/04/12 17:00:01-07:00 akpm@bix.(none) # Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-arm # # include/asm-arm/cacheflush.h # 2004/04/12 16:59:58-07:00 akpm@bix.(none) +0 -0 # Auto merged # # arch/arm/mm/fault-armv.c # 2004/04/12 16:59:58-07:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2004/04/08 14:53:48-07:00 akpm@bix.(none) # Merge bk://bk.arm.linux.org.uk/linux-2.6-rmk # into bix.(none):/usr/src/bk-arm # # arch/arm/Kconfig # 2004/04/08 14:53:46-07:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2004/04/05 15:36:29-07:00 akpm@bix.(none) # Merge bk://bk.arm.linux.org.uk/linux-2.6-rmk # into bix.(none):/usr/src/bk-arm # # arch/arm/Kconfig # 2004/04/05 15:36:26-07:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2004/04/04 16:01:39-07:00 akpm@bix.(none) # Merge bk://bk.arm.linux.org.uk/linux-2.6-rmk # into bix.(none):/usr/src/bk-arm # # arch/arm/Kconfig # 2004/04/04 16:01:36-07:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2004/03/27 02:24:52-08:00 akpm@bix.(none) # Merge bk://bk.arm.linux.org.uk/linux-2.6-rmk # into bix.(none):/usr/src/dead-bk-arm # # arch/arm/Kconfig # 2004/03/27 02:24:49-08:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2004/03/25 10:54:20-08:00 akpm@bix.(none) # Merge bk://bk.arm.linux.org.uk/linux-2.6-rmk # into bix.(none):/usr/src/bk-arm # # arch/arm/Kconfig # 2004/03/25 10:54:18-08:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2004/03/19 10:00:02-08:00 akpm@bix.(none) # Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-arm # # arch/arm/Kconfig # 2004/03/19 09:59:59-08:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2004/03/15 22:29:04-08:00 akpm@bix.(none) # Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-arm # # arch/arm/Kconfig # 2004/03/15 22:28:51-08:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2004/02/26 11:28:15-08:00 akpm@mnm.(none) # Merge mnm.(none):/usr/src/bk25 into mnm.(none):/usr/src/bk-arm # # arch/arm/Kconfig # 2004/02/26 11:28:09-08:00 akpm@mnm.(none) +0 -0 # Auto merged # # ChangeSet # 2004/02/23 20:16:50-08:00 akpm@mnm.(none) # Merge mnm.(none):/usr/src/bk25 into mnm.(none):/usr/src/bk-arm # # arch/arm/Kconfig # 2004/02/23 20:16:44-08:00 akpm@mnm.(none) +0 -0 # Auto merged # # ChangeSet # 2004/02/20 18:41:24-08:00 akpm@mnm.(none) # Merge mnm.(none):/usr/src/bk25 into mnm.(none):/usr/src/bk-arm # # arch/arm/Kconfig # 2004/02/20 18:41:17-08:00 akpm@mnm.(none) +0 -0 # Auto merged # # ChangeSet # 2004/02/20 13:48:13-08:00 akpm@mnm.(none) # Merge bk://bk.arm.linux.org.uk/linux-2.6-rmk # into mnm.(none):/usr/src/bk-arm # # include/asm-arm/pci.h # 2004/02/20 13:48:07-08:00 akpm@mnm.(none) +0 -0 # Auto merged # # ChangeSet # 2004/02/20 13:45:54-08:00 akpm@mnm.(none) # Merge mnm.(none):/usr/src/bk25 into mnm.(none):/usr/src/bk-arm # # arch/arm/Kconfig # 2004/02/20 13:45:48-08:00 akpm@mnm.(none) +0 -0 # Auto merged # # ChangeSet # 2004/02/10 12:08:32-08:00 akpm@mnm.(none) # Merge mnm.(none):/usr/src/bk25 into mnm.(none):/usr/src/bk-arm # # include/asm-arm/pci.h # 2004/02/10 12:08:26-08:00 akpm@mnm.(none) +0 -0 # Auto merged # # ChangeSet # 2004/02/06 13:18:37-08:00 akpm@mnm.(none) # Merge mnm.(none):/usr/src/bk25 into mnm.(none):/usr/src/bk-arm # # include/asm-arm/pci.h # 2004/02/06 13:18:30-08:00 akpm@mnm.(none) +0 -0 # Auto merged # # ChangeSet # 2004/02/06 10:43:46-08:00 akpm@mnm.(none) # Merge bk://bk.arm.linux.org.uk/linux-2.6-rmk # into mnm.(none):/usr/src/bk-arm # # include/asm-arm/pci.h # 2004/02/06 10:43:40-08:00 akpm@mnm.(none) +0 -0 # Auto merged # diff -Nru a/arch/arm/common/Makefile b/arch/arm/common/Makefile --- a/arch/arm/common/Makefile 2004-06-23 20:22:00 -07:00 +++ b/arch/arm/common/Makefile 2004-06-23 20:22:00 -07:00 @@ -2,7 +2,6 @@ # Makefile for the linux kernel. # -obj-y += platform.o obj-$(CONFIG_ARM_AMBA) += amba.o obj-$(CONFIG_ICST525) += icst525.o obj-$(CONFIG_SA1111) += sa1111.o diff -Nru a/arch/arm/common/platform.c b/arch/arm/common/platform.c --- a/arch/arm/common/platform.c 2004-06-23 20:22:00 -07:00 +++ /dev/null Wed Dec 31 16:00:00 196900 @@ -1,35 +0,0 @@ -#include -#include -#include - -int __init platform_add_device(struct platform_device *dev) -{ - int i; - - for (i = 0; i < dev->num_resources; i++) { - struct resource *r = &dev->resource[i]; - - r->name = dev->dev.bus_id; - - if (r->flags & IORESOURCE_MEM && - request_resource(&iomem_resource, r)) { - printk(KERN_ERR - "%s%d: failed to claim resource %d\n", - dev->name, dev->id, i); - break; - } - } - if (i == dev->num_resources) - platform_device_register(dev); - return 0; -} - -int __init platform_add_devices(struct platform_device **devs, int num) -{ - int i; - - for (i = 0; i < num; i++) - platform_add_device(devs[i]); - - return 0; -} diff -Nru a/arch/arm/mach-ebsa110/core.c b/arch/arm/mach-ebsa110/core.c --- a/arch/arm/mach-ebsa110/core.c 2004-06-23 20:22:00 -07:00 +++ b/arch/arm/mach-ebsa110/core.c 2004-06-23 20:22:00 -07:00 @@ -11,6 +11,7 @@ */ #include #include +#include #include #include @@ -174,7 +175,7 @@ /* * Set up timer interrupt. */ -void __init ebsa110_time_init(void) +static void __init ebsa110_init_time(void) { /* * Timer 1, mode 2, LSB/MSB diff -Nru a/arch/arm/mach-ebsa110/time.c b/arch/arm/mach-ebsa110/time.c --- a/arch/arm/mach-ebsa110/time.c 2004-06-23 20:22:00 -07:00 +++ /dev/null Wed Dec 31 16:00:00 196900 @@ -1,118 +0,0 @@ -/* - * linux/include/asm-arm/arch-ebsa110/time.h - * - * Copyright (C) 1996,1997,1998 Russell King. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * No real time clock on the evalulation board! - * - * Changelog: - * 10-Oct-1996 RMK Created - * 04-Dec-1997 RMK Updated for new arch/arm/kernel/time.c - * 07-Aug-1998 RMK Updated for arch/arm/kernel/leds.c - * 28-Dec-1998 APH Made leds code optional - */ - -#include -#include - -extern unsigned long (*gettimeoffset)(void); - -#define PIT_CTRL (PIT_BASE + 0x0d) -#define PIT_T2 (PIT_BASE + 0x09) -#define PIT_T1 (PIT_BASE + 0x05) -#define PIT_T0 (PIT_BASE + 0x01) - -/* - * This is the rate at which your MCLK signal toggles (in Hz) - * This was measured on a 10 digit frequency counter sampling - * over 1 second. - */ -#define MCLK 47894000 - -/* - * This is the rate at which the PIT timers get clocked - */ -#define CLKBY7 (MCLK / 7) - -/* - * This is the counter value. We tick at 200Hz on this platform. - */ -#define COUNT ((CLKBY7 + (HZ / 2)) / HZ) - -/* - * Get the time offset from the system PIT. Note that if we have missed an - * interrupt, then the PIT counter will roll over (ie, be negative). - * This actually works out to be convenient. - */ -static unsigned long ebsa110_gettimeoffset(void) -{ - unsigned long offset, count; - - __raw_writeb(0x40, PIT_CTRL); - count = __raw_readb(PIT_T1); - count |= __raw_readb(PIT_T1) << 8; - - /* - * If count > COUNT, make the number negative. - */ - if (count > COUNT) - count |= 0xffff0000; - - offset = COUNT; - offset -= count; - - /* - * `offset' is in units of timer counts. Convert - * offset to units of microseconds. - */ - offset = offset * (1000000 / HZ) / COUNT; - - return offset; -} - -static irqreturn_t -timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) -{ - u32 count; - - /* latch and read timer 1 */ - __raw_writeb(0x40, PIT_CTRL); - count = __raw_readb(PIT_T1); - count |= __raw_readb(PIT_T1) << 8; - - count += COUNT; - - __raw_writeb(count & 0xff, PIT_T1); - __raw_writeb(count >> 8, PIT_T1); - - do_leds(); - do_timer(regs); - do_profile(regs); - - return IRQ_HANDLED; -} - -/* - * Set up timer interrupt. - */ -void __init time_init(void) -{ - /* - * Timer 1, mode 2, LSB/MSB - */ - __raw_writeb(0x70, PIT_CTRL); - __raw_writeb(COUNT & 0xff, PIT_T1); - __raw_writeb(COUNT >> 8, PIT_T1); - - gettimeoffset = ebsa110_gettimeoffset; - - timer_irq.handler = timer_interrupt; - - setup_irq(IRQ_EBSA110_TIMER0, &timer_irq); -} - - diff -Nru a/arch/arm/mach-footbridge/time.c b/arch/arm/mach-footbridge/time.c --- a/arch/arm/mach-footbridge/time.c 2004-06-23 20:22:00 -07:00 +++ b/arch/arm/mach-footbridge/time.c 2004-06-23 20:22:00 -07:00 @@ -275,7 +275,7 @@ *CSR_TIMER1_CNTL = TIMER_CNTL_ENABLE | TIMER_CNTL_AUTORELOAD | TIMER_CNTL_DIV16; footbridge_timer_irq.name = "Timer1 Timer Tick"; - footbrdige_timer_irq.handler = timer1_interrupt; + footbridge_timer_irq.handler = timer1_interrupt; setup_irq(IRQ_TIMER1, &footbridge_timer_irq); @@ -289,8 +289,8 @@ gettimeoffset = isa_gettimeoffset; footbridge_timer_irq.name = "ISA Timer Tick"; - footbrdige_timer_irq.handler = isa_timer_interrupt; + footbridge_timer_irq.handler = isa_timer_interrupt; - setup_irq(IRQ_ISA, &footbridge_timer_irq); + setup_irq(IRQ_ISA_TIMER, &footbridge_timer_irq); } } diff -Nru a/arch/arm/mach-integrator/core.c b/arch/arm/mach-integrator/core.c --- a/arch/arm/mach-integrator/core.c 2004-06-23 20:22:00 -07:00 +++ b/arch/arm/mach-integrator/core.c 2004-06-23 20:22:00 -07:00 @@ -12,12 +12,17 @@ #include #include #include +#include +#include #include #include #include #include #include +#include +#include +#include static struct amba_device rtc_device = { .dev = { @@ -127,3 +132,137 @@ } EXPORT_SYMBOL(cm_control); + +/* + * Where is the timer (VA)? + */ +#define TIMER0_VA_BASE (IO_ADDRESS(INTEGRATOR_CT_BASE)+0x00000000) +#define TIMER1_VA_BASE (IO_ADDRESS(INTEGRATOR_CT_BASE)+0x00000100) +#define TIMER2_VA_BASE (IO_ADDRESS(INTEGRATOR_CT_BASE)+0x00000200) +#define VA_IC_BASE IO_ADDRESS(INTEGRATOR_IC_BASE) + +/* + * How long is the timer interval? + */ +#define TIMER_INTERVAL (TICKS_PER_uSEC * mSEC_10) +#if TIMER_INTERVAL >= 0x100000 +#define TICKS2USECS(x) (256 * (x) / TICKS_PER_uSEC) +#elif TIMER_INTERVAL >= 0x10000 +#define TICKS2USECS(x) (16 * (x) / TICKS_PER_uSEC) +#else +#define TICKS2USECS(x) ((x) / TICKS_PER_uSEC) +#endif + +/* + * What does it look like? + */ +typedef struct TimerStruct { + unsigned long TimerLoad; + unsigned long TimerValue; + unsigned long TimerControl; + unsigned long TimerClear; +} TimerStruct_t; + +extern unsigned long (*gettimeoffset)(void); + +static unsigned long timer_reload; + +/* + * Returns number of ms since last clock interrupt. Note that interrupts + * will have been disabled by do_gettimeoffset() + */ +static unsigned long integrator_gettimeoffset(void) +{ + volatile TimerStruct_t *timer1 = (TimerStruct_t *)TIMER1_VA_BASE; + unsigned long ticks1, ticks2, status; + + /* + * Get the current number of ticks. Note that there is a race + * condition between us reading the timer and checking for + * an interrupt. We get around this by ensuring that the + * counter has not reloaded between our two reads. + */ + ticks2 = timer1->TimerValue & 0xffff; + do { + ticks1 = ticks2; + status = __raw_readl(VA_IC_BASE + IRQ_RAW_STATUS); + ticks2 = timer1->TimerValue & 0xffff; + } while (ticks2 > ticks1); + + /* + * Number of ticks since last interrupt. + */ + ticks1 = timer_reload - ticks2; + + /* + * Interrupt pending? If so, we've reloaded once already. + */ + if (status & (1 << IRQ_TIMERINT1)) + ticks1 += timer_reload; + + /* + * Convert the ticks to usecs + */ + return TICKS2USECS(ticks1); +} + +/* + * IRQ handler for the timer + */ +static irqreturn_t +integrator_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) +{ + volatile TimerStruct_t *timer1 = (volatile TimerStruct_t *)TIMER1_VA_BASE; + + // ...clear the interrupt + timer1->TimerClear = 1; + + timer_tick(regs); + + return IRQ_HANDLED; +} + +static struct irqaction integrator_timer_irq = { + .name = "Integrator Timer Tick", + .flags = SA_INTERRUPT, + .handler = integrator_timer_interrupt +}; + +/* + * Set up timer interrupt, and return the current time in seconds. + */ +void __init integrator_time_init(unsigned long reload, unsigned int ctrl) +{ + volatile TimerStruct_t *timer0 = (volatile TimerStruct_t *)TIMER0_VA_BASE; + volatile TimerStruct_t *timer1 = (volatile TimerStruct_t *)TIMER1_VA_BASE; + volatile TimerStruct_t *timer2 = (volatile TimerStruct_t *)TIMER2_VA_BASE; + unsigned int timer_ctrl = 0x80 | 0x40; /* periodic */ + + timer_reload = reload; + timer_ctrl |= ctrl; + + if (timer_reload > 0x100000) { + timer_reload >>= 8; + timer_ctrl |= 0x08; /* /256 */ + } else if (timer_reload > 0x010000) { + timer_reload >>= 4; + timer_ctrl |= 0x04; /* /16 */ + } + + /* + * Initialise to a known state (all timers off) + */ + timer0->TimerControl = 0; + timer1->TimerControl = 0; + timer2->TimerControl = 0; + + timer1->TimerLoad = timer_reload; + timer1->TimerValue = timer_reload; + timer1->TimerControl = timer_ctrl; + + /* + * Make irqs happen for the system timer + */ + setup_irq(IRQ_TIMERINT1, &integrator_timer_irq); + gettimeoffset = integrator_gettimeoffset; +} diff -Nru a/arch/arm/mach-integrator/integrator_ap.c b/arch/arm/mach-integrator/integrator_ap.c --- a/arch/arm/mach-integrator/integrator_ap.c 2004-06-23 20:22:00 -07:00 +++ b/arch/arm/mach-integrator/integrator_ap.c 2004-06-23 20:22:00 -07:00 @@ -256,7 +256,7 @@ unsigned long sc_dec; int i; - platform_add_device(&cfi_flash_device); + platform_device_register(&cfi_flash_device); sc_dec = readl(VA_SC_BASE + INTEGRATOR_SC_DEC_OFFSET); for (i = 0; i < 4; i++) { diff -Nru a/arch/arm/mach-integrator/integrator_cp.c b/arch/arm/mach-integrator/integrator_cp.c --- a/arch/arm/mach-integrator/integrator_cp.c 2004-06-23 20:22:00 -07:00 +++ b/arch/arm/mach-integrator/integrator_cp.c 2004-06-23 20:22:00 -07:00 @@ -419,6 +419,8 @@ } } +#define TIMER_CTRL_IE (1 << 5) /* Interrupt Enable */ + static void __init intcp_init_time(void) { integrator_time_init(1000000 / HZ, TIMER_CTRL_IE); diff -Nru a/arch/arm/mach-integrator/time.c b/arch/arm/mach-integrator/time.c --- a/arch/arm/mach-integrator/time.c 2004-06-23 20:22:00 -07:00 +++ b/arch/arm/mach-integrator/time.c 2004-06-23 20:22:00 -07:00 @@ -10,16 +10,9 @@ #include #include #include -#include -#include #include #include -#include -#include -#include - -#include #define RTC_DR (IO_ADDRESS(INTEGRATOR_RTC_BASE) + 0) #define RTC_MR (IO_ADDRESS(INTEGRATOR_RTC_BASE) + 4) @@ -51,140 +44,3 @@ } __initcall(integrator_rtc_init); - - -/* - * Where is the timer (VA)? - */ -#define TIMER0_VA_BASE (IO_ADDRESS(INTEGRATOR_CT_BASE)+0x00000000) -#define TIMER1_VA_BASE (IO_ADDRESS(INTEGRATOR_CT_BASE)+0x00000100) -#define TIMER2_VA_BASE (IO_ADDRESS(INTEGRATOR_CT_BASE)+0x00000200) -#define VA_IC_BASE IO_ADDRESS(INTEGRATOR_IC_BASE) - -/* - * How long is the timer interval? - */ -#define TIMER_INTERVAL (TICKS_PER_uSEC * mSEC_10) -#if TIMER_INTERVAL >= 0x100000 -#define TICKS2USECS(x) (256 * (x) / TICKS_PER_uSEC) -#elif TIMER_INTERVAL >= 0x10000 -#define TICKS2USECS(x) (16 * (x) / TICKS_PER_uSEC) -#else -#define TICKS2USECS(x) ((x) / TICKS_PER_uSEC) -#endif - -#define TIMER_CTRL_IE (1 << 5) /* Interrupt Enable */ - -/* - * What does it look like? - */ -typedef struct TimerStruct { - unsigned long TimerLoad; - unsigned long TimerValue; - unsigned long TimerControl; - unsigned long TimerClear; -} TimerStruct_t; - -extern unsigned long (*gettimeoffset)(void); - -static unsigned long timer_reload; - -/* - * Returns number of ms since last clock interrupt. Note that interrupts - * will have been disabled by do_gettimeoffset() - */ -static unsigned long integrator_gettimeoffset(void) -{ - volatile TimerStruct_t *timer1 = (TimerStruct_t *)TIMER1_VA_BASE; - unsigned long ticks1, ticks2, status; - - /* - * Get the current number of ticks. Note that there is a race - * condition between us reading the timer and checking for - * an interrupt. We get around this by ensuring that the - * counter has not reloaded between our two reads. - */ - ticks2 = timer1->TimerValue & 0xffff; - do { - ticks1 = ticks2; - status = __raw_readl(VA_IC_BASE + IRQ_RAW_STATUS); - ticks2 = timer1->TimerValue & 0xffff; - } while (ticks2 > ticks1); - - /* - * Number of ticks since last interrupt. - */ - ticks1 = timer_reload - ticks2; - - /* - * Interrupt pending? If so, we've reloaded once already. - */ - if (status & (1 << IRQ_TIMERINT1)) - ticks1 += timer_reload; - - /* - * Convert the ticks to usecs - */ - return TICKS2USECS(ticks1); -} - -/* - * IRQ handler for the timer - */ -static irqreturn_t -integrator_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) -{ - volatile TimerStruct_t *timer1 = (volatile TimerStruct_t *)TIMER1_VA_BASE; - - // ...clear the interrupt - timer1->TimerClear = 1; - - timer_tick(regs); - - return IRQ_HANDLED; -} - -static struct irqaction integrator_timer_irq = { - .name = "Integrator Timer Tick", - .flags = SA_INTERRUPT, - .handler = integrator_timer_interrupt -}; - -/* - * Set up timer interrupt, and return the current time in seconds. - */ -void __init integrator_time_init(unsigned long reload, unsigned int ctrl) -{ - volatile TimerStruct_t *timer0 = (volatile TimerStruct_t *)TIMER0_VA_BASE; - volatile TimerStruct_t *timer1 = (volatile TimerStruct_t *)TIMER1_VA_BASE; - volatile TimerStruct_t *timer2 = (volatile TimerStruct_t *)TIMER2_VA_BASE; - unsigned int timer_ctrl = 0x80 | 0x40; /* periodic */ - - timer_reload = reload; - timer_ctrl |= ctrl; - - if (timer_reload > 0x100000) { - timer_reload >>= 8; - timer_ctrl |= 0x08; /* /256 */ - } else if (timer_reload > 0x010000) { - timer_reload >>= 4; - timer_ctrl |= 0x04; /* /16 */ - } - - /* - * Initialise to a known state (all timers off) - */ - timer0->TimerControl = 0; - timer1->TimerControl = 0; - timer2->TimerControl = 0; - - timer1->TimerLoad = timer_reload; - timer1->TimerValue = timer_reload; - timer1->TimerControl = timer_ctrl; - - /* - * Make irqs happen for the system timer - */ - setup_irq(IRQ_TIMERINT1, &integrator_timer_irq); - gettimeoffset = integrator_gettimeoffset; -} diff -Nru a/arch/arm/mach-omap/bus.c b/arch/arm/mach-omap/bus.c --- a/arch/arm/mach-omap/bus.c 2004-06-23 20:22:00 -07:00 +++ b/arch/arm/mach-omap/bus.c 2004-06-23 20:22:00 -07:00 @@ -81,40 +81,6 @@ }, }; -#ifdef CONFIG_ARCH_OMAP1510 -/* - * NOTE: This code _should_ go somewhere else. But let's wait for the - * dma-mapping code to settle down first. - */ - -/* - * Test for Local Bus device in order to do address translation between - * dma_handle and Local Bus address. - */ -inline int dmadev_uses_omap_lbus(struct device * dev) -{ - if (dev == NULL || !cpu_is_omap1510()) - return 0; - return dev->bus == &omap_bus_types[OMAP_BUS_LBUS] ? 1 : 0; -} - -/* - * Translate bus address to Local Bus address for dma-mapping - */ -inline int dmadev_to_lbus(dma_addr_t addr) -{ - return bus_to_lbus(addr); -} - -/* - * Translate Local Bus address to bus address for dma-mapping - */ -inline int lbus_to_dmadev(dma_addr_t addr) -{ - return lbus_to_bus(addr); -} -#endif - static int omap_bus_match(struct device *dev, struct device_driver *drv) { struct omap_dev *omapdev = OMAP_DEV(dev); @@ -278,8 +244,3 @@ EXPORT_SYMBOL(omap_device_register); EXPORT_SYMBOL(omap_device_unregister); -#ifdef CONFIG_ARCH_OMAP1510 -EXPORT_SYMBOL(dmadev_uses_omap_lbus); -EXPORT_SYMBOL(dmadev_to_lbus); -EXPORT_SYMBOL(lbus_to_dmadev); -#endif diff -Nru a/arch/arm/mach-omap/time.c b/arch/arm/mach-omap/time.c --- a/arch/arm/mach-omap/time.c 2004-06-23 20:22:00 -07:00 +++ b/arch/arm/mach-omap/time.c 2004-06-23 20:22:00 -07:00 @@ -28,7 +28,12 @@ */ #include +#include +#include #include +#include +#include + #include #include #include diff -Nru a/arch/arm/mach-versatile/core.c b/arch/arm/mach-versatile/core.c --- a/arch/arm/mach-versatile/core.c 2004-06-23 20:22:00 -07:00 +++ b/arch/arm/mach-versatile/core.c 2004-06-23 20:22:00 -07:00 @@ -503,8 +503,8 @@ { int i; - platform_add_device(&versatile_flash_device); - platform_add_device(&smc91x_device); + platform_device_register(&versatile_flash_device); + platform_device_register(&smc91x_device); for (i = 0; i < ARRAY_SIZE(amba_devs); i++) { struct amba_device *d = amba_devs[i]; diff -Nru a/drivers/video/acornfb.c b/drivers/video/acornfb.c --- a/drivers/video/acornfb.c 2004-06-23 20:22:00 -07:00 +++ b/drivers/video/acornfb.c 2004-06-23 20:22:00 -07:00 @@ -1246,6 +1246,8 @@ /* * This enables the unused memory to be freed on older Acorn machines. + * We are freeing memory on behalf of the architecture initialisation + * code here. */ static inline void free_unused_pages(unsigned int virtual_start, unsigned int virtual_end) @@ -1268,7 +1270,7 @@ */ page = virt_to_page(virtual_start); ClearPageReserved(page); - atomic_set(&page->count, 1); + set_page_count(page, 1); free_page(virtual_start); virtual_start += PAGE_SIZE;