diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-09-23 14:25:16 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-09-23 14:25:16 -0400 |
| commit | a724eada8c2a7b62463b73ccf73fd0bb6e928aeb (patch) | |
| tree | 9fbf124022944cba2fdd6aa468f1bad8adc6b2ab | |
| parent | 1b9894f342a39601bb0420b7b8c7e445670c1b51 (diff) | |
| parent | dfdd8cc903288bb2e2ad6731545be3db7304c133 (diff) | |
Merge branch 'ixp4xx' of git://git.kernel.org/pub/scm/linux/kernel/git/chris/linux-2.6
* 'ixp4xx' of git://git.kernel.org/pub/scm/linux/kernel/git/chris/linux-2.6:
Add MAINTAINERS entry for ARM/INTEL IXP4xx arch support.
ixp4xx: arch_idle() documentation fixup
ixp4xx: timer and clocks cleanups
| -rw-r--r-- | MAINTAINERS | 7 | ||||
| -rw-r--r-- | arch/arm/mach-ixp4xx/common.c | 16 | ||||
| -rw-r--r-- | arch/arm/mach-ixp4xx/include/mach/system.h | 6 |
3 files changed, 18 insertions, 11 deletions
diff --git a/MAINTAINERS b/MAINTAINERS index 8f6297881077..7c1c0b05b298 100644 --- a/MAINTAINERS +++ b/MAINTAINERS | |||
| @@ -686,6 +686,13 @@ M: Lennert Buytenhek <kernel@wantstofly.org> | |||
| 686 | L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) | 686 | L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) |
| 687 | S: Maintained | 687 | S: Maintained |
| 688 | 688 | ||
| 689 | ARM/INTEL IXP4XX ARM ARCHITECTURE | ||
| 690 | M: Imre Kaloz <kaloz@openwrt.org> | ||
| 691 | M: Krzysztof Halasa <khc@pm.waw.pl> | ||
| 692 | L: linux-arm-kernel@lists.infradead.org | ||
| 693 | S: Maintained | ||
| 694 | F: arch/arm/mach-ixp4xx/ | ||
| 695 | |||
| 689 | ARM/INTEL XSC3 (MANZANO) ARM CORE | 696 | ARM/INTEL XSC3 (MANZANO) ARM CORE |
| 690 | M: Lennert Buytenhek <kernel@wantstofly.org> | 697 | M: Lennert Buytenhek <kernel@wantstofly.org> |
| 691 | M: Dan Williams <dan.j.williams@intel.com> | 698 | M: Dan Williams <dan.j.williams@intel.com> |
diff --git a/arch/arm/mach-ixp4xx/common.c b/arch/arm/mach-ixp4xx/common.c index 5083f03e9b5e..cfd52fb341cb 100644 --- a/arch/arm/mach-ixp4xx/common.c +++ b/arch/arm/mach-ixp4xx/common.c | |||
| @@ -41,8 +41,8 @@ | |||
| 41 | #include <asm/mach/irq.h> | 41 | #include <asm/mach/irq.h> |
| 42 | #include <asm/mach/time.h> | 42 | #include <asm/mach/time.h> |
| 43 | 43 | ||
| 44 | static int __init ixp4xx_clocksource_init(void); | 44 | static void __init ixp4xx_clocksource_init(void); |
| 45 | static int __init ixp4xx_clockevent_init(void); | 45 | static void __init ixp4xx_clockevent_init(void); |
| 46 | static struct clock_event_device clockevent_ixp4xx; | 46 | static struct clock_event_device clockevent_ixp4xx; |
| 47 | 47 | ||
| 48 | /************************************************************************* | 48 | /************************************************************************* |
| @@ -267,7 +267,7 @@ void __init ixp4xx_init_irq(void) | |||
| 267 | 267 | ||
| 268 | static irqreturn_t ixp4xx_timer_interrupt(int irq, void *dev_id) | 268 | static irqreturn_t ixp4xx_timer_interrupt(int irq, void *dev_id) |
| 269 | { | 269 | { |
| 270 | struct clock_event_device *evt = &clockevent_ixp4xx; | 270 | struct clock_event_device *evt = dev_id; |
| 271 | 271 | ||
| 272 | /* Clear Pending Interrupt by writing '1' to it */ | 272 | /* Clear Pending Interrupt by writing '1' to it */ |
| 273 | *IXP4XX_OSST = IXP4XX_OSST_TIMER_1_PEND; | 273 | *IXP4XX_OSST = IXP4XX_OSST_TIMER_1_PEND; |
| @@ -281,6 +281,7 @@ static struct irqaction ixp4xx_timer_irq = { | |||
| 281 | .name = "timer1", | 281 | .name = "timer1", |
| 282 | .flags = IRQF_DISABLED | IRQF_TIMER | IRQF_IRQPOLL, | 282 | .flags = IRQF_DISABLED | IRQF_TIMER | IRQF_IRQPOLL, |
| 283 | .handler = ixp4xx_timer_interrupt, | 283 | .handler = ixp4xx_timer_interrupt, |
| 284 | .dev_id = &clockevent_ixp4xx, | ||
| 284 | }; | 285 | }; |
| 285 | 286 | ||
| 286 | void __init ixp4xx_timer_init(void) | 287 | void __init ixp4xx_timer_init(void) |
| @@ -401,7 +402,7 @@ void __init ixp4xx_sys_init(void) | |||
| 401 | /* | 402 | /* |
| 402 | * clocksource | 403 | * clocksource |
| 403 | */ | 404 | */ |
| 404 | cycle_t ixp4xx_get_cycles(struct clocksource *cs) | 405 | static cycle_t ixp4xx_get_cycles(struct clocksource *cs) |
| 405 | { | 406 | { |
| 406 | return *IXP4XX_OSTS; | 407 | return *IXP4XX_OSTS; |
| 407 | } | 408 | } |
| @@ -417,14 +418,12 @@ static struct clocksource clocksource_ixp4xx = { | |||
| 417 | 418 | ||
| 418 | unsigned long ixp4xx_timer_freq = FREQ; | 419 | unsigned long ixp4xx_timer_freq = FREQ; |
| 419 | EXPORT_SYMBOL(ixp4xx_timer_freq); | 420 | EXPORT_SYMBOL(ixp4xx_timer_freq); |
| 420 | static int __init ixp4xx_clocksource_init(void) | 421 | static void __init ixp4xx_clocksource_init(void) |
| 421 | { | 422 | { |
| 422 | clocksource_ixp4xx.mult = | 423 | clocksource_ixp4xx.mult = |
| 423 | clocksource_hz2mult(ixp4xx_timer_freq, | 424 | clocksource_hz2mult(ixp4xx_timer_freq, |
| 424 | clocksource_ixp4xx.shift); | 425 | clocksource_ixp4xx.shift); |
| 425 | clocksource_register(&clocksource_ixp4xx); | 426 | clocksource_register(&clocksource_ixp4xx); |
| 426 | |||
| 427 | return 0; | ||
| 428 | } | 427 | } |
| 429 | 428 | ||
| 430 | /* | 429 | /* |
| @@ -480,7 +479,7 @@ static struct clock_event_device clockevent_ixp4xx = { | |||
| 480 | .set_next_event = ixp4xx_set_next_event, | 479 | .set_next_event = ixp4xx_set_next_event, |
| 481 | }; | 480 | }; |
| 482 | 481 | ||
| 483 | static int __init ixp4xx_clockevent_init(void) | 482 | static void __init ixp4xx_clockevent_init(void) |
| 484 | { | 483 | { |
| 485 | clockevent_ixp4xx.mult = div_sc(FREQ, NSEC_PER_SEC, | 484 | clockevent_ixp4xx.mult = div_sc(FREQ, NSEC_PER_SEC, |
| 486 | clockevent_ixp4xx.shift); | 485 | clockevent_ixp4xx.shift); |
| @@ -491,5 +490,4 @@ static int __init ixp4xx_clockevent_init(void) | |||
| 491 | clockevent_ixp4xx.cpumask = cpumask_of(0); | 490 | clockevent_ixp4xx.cpumask = cpumask_of(0); |
| 492 | 491 | ||
| 493 | clockevents_register_device(&clockevent_ixp4xx); | 492 | clockevents_register_device(&clockevent_ixp4xx); |
| 494 | return 0; | ||
| 495 | } | 493 | } |
diff --git a/arch/arm/mach-ixp4xx/include/mach/system.h b/arch/arm/mach-ixp4xx/include/mach/system.h index d2aa26f5acd7..54c0af7fa2d4 100644 --- a/arch/arm/mach-ixp4xx/include/mach/system.h +++ b/arch/arm/mach-ixp4xx/include/mach/system.h | |||
| @@ -13,9 +13,11 @@ | |||
| 13 | 13 | ||
| 14 | static inline void arch_idle(void) | 14 | static inline void arch_idle(void) |
| 15 | { | 15 | { |
| 16 | /* ixp4xx does not implement the XScale PWRMODE register, | ||
| 17 | * so it must not call cpu_do_idle() here. | ||
| 18 | */ | ||
| 16 | #if 0 | 19 | #if 0 |
| 17 | if (!hlt_counter) | 20 | cpu_do_idle(); |
| 18 | cpu_do_idle(0); | ||
| 19 | #endif | 21 | #endif |
| 20 | } | 22 | } |
| 21 | 23 | ||
