diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-11-09 15:24:19 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-11-09 15:24:19 -0800 |
commit | 45ff993d2b0b4c07038457cdf07ecf648abd3d78 (patch) | |
tree | ae2f89ce5741e36d6eaab3178d86c2cd754801e4 /arch | |
parent | cb834e7cc0e8b223386f219c1d1986846c87c55f (diff) | |
parent | 91bc51d8a10b00d8233dd5b6f07d7eb40828b87d (diff) | |
download | op-kernel-dev-45ff993d2b0b4c07038457cdf07ecf648abd3d78.zip op-kernel-dev-45ff993d2b0b4c07038457cdf07ecf648abd3d78.tar.gz |
Merge master.kernel.org:/home/rmk/linux-2.6-arm
* master.kernel.org:/home/rmk/linux-2.6-arm:
[ARM] pxa: fix one-shot timer mode
[ARM] 4645/1: Cyberpro: Trivial fix to restore 16bpp mode.
[ARM] 4644/2: fix flush_kern_tlb_range() in module space
[ARM] Allow watchdog drivers to be selected again
[ARM] 4633/1: omap build fix when FB enabled
[ARM] 4642/2: netX: default config for netx based boards
[ARM] 4641/2: netX: fix kobject_name type
[ARM] Fix iop3xx macro
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/Kconfig | 2 | ||||
-rw-r--r-- | arch/arm/mach-netx/xc.c | 6 | ||||
-rw-r--r-- | arch/arm/mach-pxa/time.c | 23 | ||||
-rw-r--r-- | arch/arm/plat-omap/fb.c | 2 |
4 files changed, 20 insertions, 13 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index a0cdaaf..a7e9fea 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -1040,6 +1040,8 @@ source "drivers/power/Kconfig" source "drivers/hwmon/Kconfig" +source "drivers/watchdog/Kconfig" + source "drivers/ssb/Kconfig" #source "drivers/l3/Kconfig" diff --git a/arch/arm/mach-netx/xc.c b/arch/arm/mach-netx/xc.c index bd5184f..ca9c5b6 100644 --- a/arch/arm/mach-netx/xc.c +++ b/arch/arm/mach-netx/xc.c @@ -190,15 +190,15 @@ struct xc *request_xc(int xcno, struct device *dev) goto exit; if (!request_mem_region - (NETX_PA_XPEC(xcno), XPEC_MEM_SIZE, kobject_name(dev->kobj))) + (NETX_PA_XPEC(xcno), XPEC_MEM_SIZE, kobject_name(&dev->kobj))) goto exit_free; if (!request_mem_region - (NETX_PA_XMAC(xcno), XMAC_MEM_SIZE, kobject_name(dev->kobj))) + (NETX_PA_XMAC(xcno), XMAC_MEM_SIZE, kobject_name(&dev->kobj))) goto exit_release_1; if (!request_mem_region - (SRAM_INTERNAL_PHYS(xcno), SRAM_MEM_SIZE, kobject_name(dev->kobj))) + (SRAM_INTERNAL_PHYS(xcno), SRAM_MEM_SIZE, kobject_name(&dev->kobj))) goto exit_release_2; x->xpec_base = (void * __iomem)io_p2v(NETX_PA_XPEC(xcno)); diff --git a/arch/arm/mach-pxa/time.c b/arch/arm/mach-pxa/time.c index a2d45d7..fbfa192 100644 --- a/arch/arm/mach-pxa/time.c +++ b/arch/arm/mach-pxa/time.c @@ -68,6 +68,7 @@ pxa_ost0_interrupt(int irq, void *dev_id) if (c->mode == CLOCK_EVT_MODE_ONESHOT) { /* Disarm the compare/match, signal the event. */ OIER &= ~OIER_E0; + OSSR = OSSR_M0; c->event_handler(c); } else if (c->mode == CLOCK_EVT_MODE_PERIODIC) { /* Call the event handler as many times as necessary @@ -100,9 +101,9 @@ pxa_ost0_interrupt(int irq, void *dev_id) * anything that might put us "very close". */ #define MIN_OSCR_DELTA 16 - do { + do { OSSR = OSSR_M0; - next_match = (OSMR0 += LATCH); + next_match = (OSMR0 += LATCH); c->event_handler(c); } while (((signed long)(next_match - OSCR) <= MIN_OSCR_DELTA) && (c->mode == CLOCK_EVT_MODE_PERIODIC)); @@ -114,14 +115,16 @@ pxa_ost0_interrupt(int irq, void *dev_id) static int pxa_osmr0_set_next_event(unsigned long delta, struct clock_event_device *dev) { - unsigned long irqflags; + unsigned long flags, next, oscr; - raw_local_irq_save(irqflags); - OSMR0 = OSCR + delta; - OSSR = OSSR_M0; + raw_local_irq_save(flags); OIER |= OIER_E0; - raw_local_irq_restore(irqflags); - return 0; + next = OSCR + delta; + OSMR0 = next; + oscr = OSCR; + raw_local_irq_restore(flags); + + return (signed)(next - oscr) <= MIN_OSCR_DELTA ? -ETIME : 0; } static void @@ -132,15 +135,16 @@ pxa_osmr0_set_mode(enum clock_event_mode mode, struct clock_event_device *dev) switch (mode) { case CLOCK_EVT_MODE_PERIODIC: raw_local_irq_save(irqflags); - OSMR0 = OSCR + LATCH; OSSR = OSSR_M0; OIER |= OIER_E0; + OSMR0 = OSCR + LATCH; raw_local_irq_restore(irqflags); break; case CLOCK_EVT_MODE_ONESHOT: raw_local_irq_save(irqflags); OIER &= ~OIER_E0; + OSSR = OSSR_M0; raw_local_irq_restore(irqflags); break; @@ -149,6 +153,7 @@ pxa_osmr0_set_mode(enum clock_event_mode mode, struct clock_event_device *dev) /* initializing, released, or preparing for suspend */ raw_local_irq_save(irqflags); OIER &= ~OIER_E0; + OSSR = OSSR_M0; raw_local_irq_restore(irqflags); break; diff --git a/arch/arm/plat-omap/fb.c b/arch/arm/plat-omap/fb.c index 4493bcf..ee40c1a0 100644 --- a/arch/arm/plat-omap/fb.c +++ b/arch/arm/plat-omap/fb.c @@ -171,7 +171,7 @@ static int check_fbmem_region(int region_idx, struct omapfb_mem_region *rg, * Called from map_io. We need to call to this early enough so that we * can reserve the fixed SDRAM regions before VM could get hold of them. */ -void omapfb_reserve_sdram(void) +void __init omapfb_reserve_sdram(void) { struct bootmem_data *bdata; unsigned long sdram_start, sdram_size; |