diff options
Diffstat (limited to 'arch/arm/mach-footbridge')
-rw-r--r-- | arch/arm/mach-footbridge/Kconfig | 1 | ||||
-rw-r--r-- | arch/arm/mach-footbridge/cats-pci.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-footbridge/dc21285.c | 3 | ||||
-rw-r--r-- | arch/arm/mach-footbridge/ebsa285-pci.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-footbridge/include/mach/hardware.h | 5 | ||||
-rw-r--r-- | arch/arm/mach-footbridge/isa-timer.c | 59 | ||||
-rw-r--r-- | arch/arm/mach-footbridge/netwinder-pci.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-footbridge/personal-pci.c | 3 |
8 files changed, 13 insertions, 64 deletions
diff --git a/arch/arm/mach-footbridge/Kconfig b/arch/arm/mach-footbridge/Kconfig index 46adca068f2c..dc26fff22cf0 100644 --- a/arch/arm/mach-footbridge/Kconfig +++ b/arch/arm/mach-footbridge/Kconfig | |||
@@ -5,6 +5,7 @@ menu "Footbridge Implementations" | |||
5 | config ARCH_CATS | 5 | config ARCH_CATS |
6 | bool "CATS" | 6 | bool "CATS" |
7 | select CLKSRC_I8253 | 7 | select CLKSRC_I8253 |
8 | select CLKEVT_I8253 | ||
8 | select FOOTBRIDGE_HOST | 9 | select FOOTBRIDGE_HOST |
9 | select ISA | 10 | select ISA |
10 | select ISA_DMA | 11 | select ISA_DMA |
diff --git a/arch/arm/mach-footbridge/cats-pci.c b/arch/arm/mach-footbridge/cats-pci.c index ae3e1c8c7583..32321f66dec4 100644 --- a/arch/arm/mach-footbridge/cats-pci.c +++ b/arch/arm/mach-footbridge/cats-pci.c | |||
@@ -16,7 +16,7 @@ | |||
16 | /* cats host-specific stuff */ | 16 | /* cats host-specific stuff */ |
17 | static int irqmap_cats[] __initdata = { IRQ_PCI, IRQ_IN0, IRQ_IN1, IRQ_IN3 }; | 17 | static int irqmap_cats[] __initdata = { IRQ_PCI, IRQ_IN0, IRQ_IN1, IRQ_IN3 }; |
18 | 18 | ||
19 | static int __init cats_map_irq(struct pci_dev *dev, u8 slot, u8 pin) | 19 | static int __init cats_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) |
20 | { | 20 | { |
21 | if (dev->irq >= 255) | 21 | if (dev->irq >= 255) |
22 | return -1; /* not a valid interrupt. */ | 22 | return -1; /* not a valid interrupt. */ |
diff --git a/arch/arm/mach-footbridge/dc21285.c b/arch/arm/mach-footbridge/dc21285.c index 3ffa54841ec5..1331fff51ae2 100644 --- a/arch/arm/mach-footbridge/dc21285.c +++ b/arch/arm/mach-footbridge/dc21285.c | |||
@@ -295,6 +295,9 @@ void __init dc21285_preinit(void) | |||
295 | unsigned int mem_size, mem_mask; | 295 | unsigned int mem_size, mem_mask; |
296 | int cfn_mode; | 296 | int cfn_mode; |
297 | 297 | ||
298 | pcibios_min_mem = 0x81000000; | ||
299 | vga_base = PCIMEM_BASE; | ||
300 | |||
298 | mem_size = (unsigned int)high_memory - PAGE_OFFSET; | 301 | mem_size = (unsigned int)high_memory - PAGE_OFFSET; |
299 | for (mem_mask = 0x00100000; mem_mask < 0x10000000; mem_mask <<= 1) | 302 | for (mem_mask = 0x00100000; mem_mask < 0x10000000; mem_mask <<= 1) |
300 | if (mem_mask >= mem_size) | 303 | if (mem_mask >= mem_size) |
diff --git a/arch/arm/mach-footbridge/ebsa285-pci.c b/arch/arm/mach-footbridge/ebsa285-pci.c index e5ab5bddbc8c..511c673ffa9d 100644 --- a/arch/arm/mach-footbridge/ebsa285-pci.c +++ b/arch/arm/mach-footbridge/ebsa285-pci.c | |||
@@ -15,7 +15,7 @@ | |||
15 | 15 | ||
16 | static int irqmap_ebsa285[] __initdata = { IRQ_IN3, IRQ_IN1, IRQ_IN0, IRQ_PCI }; | 16 | static int irqmap_ebsa285[] __initdata = { IRQ_IN3, IRQ_IN1, IRQ_IN0, IRQ_PCI }; |
17 | 17 | ||
18 | static int __init ebsa285_map_irq(struct pci_dev *dev, u8 slot, u8 pin) | 18 | static int __init ebsa285_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) |
19 | { | 19 | { |
20 | if (dev->vendor == PCI_VENDOR_ID_CONTAQ && | 20 | if (dev->vendor == PCI_VENDOR_ID_CONTAQ && |
21 | dev->device == PCI_DEVICE_ID_CONTAQ_82C693) | 21 | dev->device == PCI_DEVICE_ID_CONTAQ_82C693) |
diff --git a/arch/arm/mach-footbridge/include/mach/hardware.h b/arch/arm/mach-footbridge/include/mach/hardware.h index b6fdf23ecf6c..15d54981674c 100644 --- a/arch/arm/mach-footbridge/include/mach/hardware.h +++ b/arch/arm/mach-footbridge/include/mach/hardware.h | |||
@@ -100,9 +100,4 @@ extern unsigned int nw_gpio_read(void); | |||
100 | extern void nw_cpld_modify(unsigned int mask, unsigned int set); | 100 | extern void nw_cpld_modify(unsigned int mask, unsigned int set); |
101 | #endif | 101 | #endif |
102 | 102 | ||
103 | #define pcibios_assign_all_busses() 1 | ||
104 | |||
105 | #define PCIBIOS_MIN_IO 0x1000 | ||
106 | #define PCIBIOS_MIN_MEM 0x81000000 | ||
107 | |||
108 | #endif | 103 | #endif |
diff --git a/arch/arm/mach-footbridge/isa-timer.c b/arch/arm/mach-footbridge/isa-timer.c index 7020f1a3feca..c40bb415f4b5 100644 --- a/arch/arm/mach-footbridge/isa-timer.c +++ b/arch/arm/mach-footbridge/isa-timer.c | |||
@@ -5,64 +5,18 @@ | |||
5 | * Copyright (C) 1998 Phil Blundell | 5 | * Copyright (C) 1998 Phil Blundell |
6 | */ | 6 | */ |
7 | #include <linux/clockchips.h> | 7 | #include <linux/clockchips.h> |
8 | #include <linux/clocksource.h> | 8 | #include <linux/i8253.h> |
9 | #include <linux/init.h> | 9 | #include <linux/init.h> |
10 | #include <linux/interrupt.h> | 10 | #include <linux/interrupt.h> |
11 | #include <linux/irq.h> | 11 | #include <linux/irq.h> |
12 | #include <linux/io.h> | ||
13 | #include <linux/spinlock.h> | 12 | #include <linux/spinlock.h> |
14 | #include <linux/timex.h> | 13 | #include <linux/timex.h> |
15 | 14 | ||
16 | #include <asm/irq.h> | 15 | #include <asm/irq.h> |
17 | #include <asm/i8253.h> | ||
18 | #include <asm/mach/time.h> | 16 | #include <asm/mach/time.h> |
19 | 17 | ||
20 | #include "common.h" | 18 | #include "common.h" |
21 | 19 | ||
22 | DEFINE_RAW_SPINLOCK(i8253_lock); | ||
23 | |||
24 | static void pit_set_mode(enum clock_event_mode mode, | ||
25 | struct clock_event_device *evt) | ||
26 | { | ||
27 | unsigned long flags; | ||
28 | |||
29 | raw_local_irq_save(flags); | ||
30 | |||
31 | switch (mode) { | ||
32 | case CLOCK_EVT_MODE_PERIODIC: | ||
33 | outb_p(0x34, PIT_MODE); | ||
34 | outb_p(PIT_LATCH & 0xff, PIT_CH0); | ||
35 | outb_p(PIT_LATCH >> 8, PIT_CH0); | ||
36 | break; | ||
37 | |||
38 | case CLOCK_EVT_MODE_SHUTDOWN: | ||
39 | case CLOCK_EVT_MODE_UNUSED: | ||
40 | outb_p(0x30, PIT_MODE); | ||
41 | outb_p(0, PIT_CH0); | ||
42 | outb_p(0, PIT_CH0); | ||
43 | break; | ||
44 | |||
45 | case CLOCK_EVT_MODE_ONESHOT: | ||
46 | case CLOCK_EVT_MODE_RESUME: | ||
47 | break; | ||
48 | } | ||
49 | local_irq_restore(flags); | ||
50 | } | ||
51 | |||
52 | static int pit_set_next_event(unsigned long delta, | ||
53 | struct clock_event_device *evt) | ||
54 | { | ||
55 | return 0; | ||
56 | } | ||
57 | |||
58 | static struct clock_event_device pit_ce = { | ||
59 | .name = "pit", | ||
60 | .features = CLOCK_EVT_FEAT_PERIODIC, | ||
61 | .set_mode = pit_set_mode, | ||
62 | .set_next_event = pit_set_next_event, | ||
63 | .shift = 32, | ||
64 | }; | ||
65 | |||
66 | static irqreturn_t pit_timer_interrupt(int irq, void *dev_id) | 20 | static irqreturn_t pit_timer_interrupt(int irq, void *dev_id) |
67 | { | 21 | { |
68 | struct clock_event_device *ce = dev_id; | 22 | struct clock_event_device *ce = dev_id; |
@@ -74,20 +28,15 @@ static struct irqaction pit_timer_irq = { | |||
74 | .name = "pit", | 28 | .name = "pit", |
75 | .handler = pit_timer_interrupt, | 29 | .handler = pit_timer_interrupt, |
76 | .flags = IRQF_DISABLED | IRQF_TIMER | IRQF_IRQPOLL, | 30 | .flags = IRQF_DISABLED | IRQF_TIMER | IRQF_IRQPOLL, |
77 | .dev_id = &pit_ce, | 31 | .dev_id = &i8253_clockevent, |
78 | }; | 32 | }; |
79 | 33 | ||
80 | static void __init isa_timer_init(void) | 34 | static void __init isa_timer_init(void) |
81 | { | 35 | { |
82 | pit_ce.cpumask = cpumask_of(smp_processor_id()); | ||
83 | pit_ce.mult = div_sc(PIT_TICK_RATE, NSEC_PER_SEC, pit_ce.shift); | ||
84 | pit_ce.max_delta_ns = clockevent_delta2ns(0x7fff, &pit_ce); | ||
85 | pit_ce.min_delta_ns = clockevent_delta2ns(0x000f, &pit_ce); | ||
86 | |||
87 | clocksource_i8253_init(); | 36 | clocksource_i8253_init(); |
88 | 37 | ||
89 | setup_irq(pit_ce.irq, &pit_timer_irq); | 38 | setup_irq(i8253_clockevent.irq, &pit_timer_irq); |
90 | clockevents_register_device(&pit_ce); | 39 | clockevent_i8253_init(false); |
91 | } | 40 | } |
92 | 41 | ||
93 | struct sys_timer isa_timer = { | 42 | struct sys_timer isa_timer = { |
diff --git a/arch/arm/mach-footbridge/netwinder-pci.c b/arch/arm/mach-footbridge/netwinder-pci.c index e263d6d54a0f..62187610e17e 100644 --- a/arch/arm/mach-footbridge/netwinder-pci.c +++ b/arch/arm/mach-footbridge/netwinder-pci.c | |||
@@ -17,7 +17,7 @@ | |||
17 | * We now use the slot ID instead of the device identifiers to select | 17 | * We now use the slot ID instead of the device identifiers to select |
18 | * which interrupt is routed where. | 18 | * which interrupt is routed where. |
19 | */ | 19 | */ |
20 | static int __init netwinder_map_irq(struct pci_dev *dev, u8 slot, u8 pin) | 20 | static int __init netwinder_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) |
21 | { | 21 | { |
22 | switch (slot) { | 22 | switch (slot) { |
23 | case 0: /* host bridge */ | 23 | case 0: /* host bridge */ |
diff --git a/arch/arm/mach-footbridge/personal-pci.c b/arch/arm/mach-footbridge/personal-pci.c index d5fca95afdad..aeb651d914a6 100644 --- a/arch/arm/mach-footbridge/personal-pci.c +++ b/arch/arm/mach-footbridge/personal-pci.c | |||
@@ -18,7 +18,8 @@ static int irqmap_personal_server[] __initdata = { | |||
18 | IRQ_DOORBELLHOST, IRQ_DMA1, IRQ_DMA2, IRQ_PCI | 18 | IRQ_DOORBELLHOST, IRQ_DMA1, IRQ_DMA2, IRQ_PCI |
19 | }; | 19 | }; |
20 | 20 | ||
21 | static int __init personal_server_map_irq(struct pci_dev *dev, u8 slot, u8 pin) | 21 | static int __init personal_server_map_irq(const struct pci_dev *dev, u8 slot, |
22 | u8 pin) | ||
22 | { | 23 | { |
23 | unsigned char line; | 24 | unsigned char line; |
24 | 25 | ||