Commit a724eada authored by Linus Torvalds's avatar Linus Torvalds

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
parents 1b9894f3 dfdd8cc9
...@@ -686,6 +686,13 @@ M: Lennert Buytenhek <kernel@wantstofly.org> ...@@ -686,6 +686,13 @@ M: Lennert Buytenhek <kernel@wantstofly.org>
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
S: Maintained S: Maintained
ARM/INTEL IXP4XX ARM ARCHITECTURE
M: Imre Kaloz <kaloz@openwrt.org>
M: Krzysztof Halasa <khc@pm.waw.pl>
L: linux-arm-kernel@lists.infradead.org
S: Maintained
F: arch/arm/mach-ixp4xx/
ARM/INTEL XSC3 (MANZANO) ARM CORE ARM/INTEL XSC3 (MANZANO) ARM CORE
M: Lennert Buytenhek <kernel@wantstofly.org> M: Lennert Buytenhek <kernel@wantstofly.org>
M: Dan Williams <dan.j.williams@intel.com> M: Dan Williams <dan.j.williams@intel.com>
......
...@@ -41,8 +41,8 @@ ...@@ -41,8 +41,8 @@
#include <asm/mach/irq.h> #include <asm/mach/irq.h>
#include <asm/mach/time.h> #include <asm/mach/time.h>
static int __init ixp4xx_clocksource_init(void); static void __init ixp4xx_clocksource_init(void);
static int __init ixp4xx_clockevent_init(void); static void __init ixp4xx_clockevent_init(void);
static struct clock_event_device clockevent_ixp4xx; static struct clock_event_device clockevent_ixp4xx;
/************************************************************************* /*************************************************************************
...@@ -267,7 +267,7 @@ void __init ixp4xx_init_irq(void) ...@@ -267,7 +267,7 @@ void __init ixp4xx_init_irq(void)
static irqreturn_t ixp4xx_timer_interrupt(int irq, void *dev_id) static irqreturn_t ixp4xx_timer_interrupt(int irq, void *dev_id)
{ {
struct clock_event_device *evt = &clockevent_ixp4xx; struct clock_event_device *evt = dev_id;
/* Clear Pending Interrupt by writing '1' to it */ /* Clear Pending Interrupt by writing '1' to it */
*IXP4XX_OSST = IXP4XX_OSST_TIMER_1_PEND; *IXP4XX_OSST = IXP4XX_OSST_TIMER_1_PEND;
...@@ -281,6 +281,7 @@ static struct irqaction ixp4xx_timer_irq = { ...@@ -281,6 +281,7 @@ static struct irqaction ixp4xx_timer_irq = {
.name = "timer1", .name = "timer1",
.flags = IRQF_DISABLED | IRQF_TIMER | IRQF_IRQPOLL, .flags = IRQF_DISABLED | IRQF_TIMER | IRQF_IRQPOLL,
.handler = ixp4xx_timer_interrupt, .handler = ixp4xx_timer_interrupt,
.dev_id = &clockevent_ixp4xx,
}; };
void __init ixp4xx_timer_init(void) void __init ixp4xx_timer_init(void)
...@@ -401,7 +402,7 @@ void __init ixp4xx_sys_init(void) ...@@ -401,7 +402,7 @@ void __init ixp4xx_sys_init(void)
/* /*
* clocksource * clocksource
*/ */
cycle_t ixp4xx_get_cycles(struct clocksource *cs) static cycle_t ixp4xx_get_cycles(struct clocksource *cs)
{ {
return *IXP4XX_OSTS; return *IXP4XX_OSTS;
} }
...@@ -417,14 +418,12 @@ static struct clocksource clocksource_ixp4xx = { ...@@ -417,14 +418,12 @@ static struct clocksource clocksource_ixp4xx = {
unsigned long ixp4xx_timer_freq = FREQ; unsigned long ixp4xx_timer_freq = FREQ;
EXPORT_SYMBOL(ixp4xx_timer_freq); EXPORT_SYMBOL(ixp4xx_timer_freq);
static int __init ixp4xx_clocksource_init(void) static void __init ixp4xx_clocksource_init(void)
{ {
clocksource_ixp4xx.mult = clocksource_ixp4xx.mult =
clocksource_hz2mult(ixp4xx_timer_freq, clocksource_hz2mult(ixp4xx_timer_freq,
clocksource_ixp4xx.shift); clocksource_ixp4xx.shift);
clocksource_register(&clocksource_ixp4xx); clocksource_register(&clocksource_ixp4xx);
return 0;
} }
/* /*
...@@ -480,7 +479,7 @@ static struct clock_event_device clockevent_ixp4xx = { ...@@ -480,7 +479,7 @@ static struct clock_event_device clockevent_ixp4xx = {
.set_next_event = ixp4xx_set_next_event, .set_next_event = ixp4xx_set_next_event,
}; };
static int __init ixp4xx_clockevent_init(void) static void __init ixp4xx_clockevent_init(void)
{ {
clockevent_ixp4xx.mult = div_sc(FREQ, NSEC_PER_SEC, clockevent_ixp4xx.mult = div_sc(FREQ, NSEC_PER_SEC,
clockevent_ixp4xx.shift); clockevent_ixp4xx.shift);
...@@ -491,5 +490,4 @@ static int __init ixp4xx_clockevent_init(void) ...@@ -491,5 +490,4 @@ static int __init ixp4xx_clockevent_init(void)
clockevent_ixp4xx.cpumask = cpumask_of(0); clockevent_ixp4xx.cpumask = cpumask_of(0);
clockevents_register_device(&clockevent_ixp4xx); clockevents_register_device(&clockevent_ixp4xx);
return 0;
} }
...@@ -13,9 +13,11 @@ ...@@ -13,9 +13,11 @@
static inline void arch_idle(void) static inline void arch_idle(void)
{ {
/* ixp4xx does not implement the XScale PWRMODE register,
* so it must not call cpu_do_idle() here.
*/
#if 0 #if 0
if (!hlt_counter) cpu_do_idle();
cpu_do_idle(0);
#endif #endif
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment