Skip to content

Commit

Permalink
Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm
Browse files Browse the repository at this point in the history
* 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm:
  [ARM] 4165/1: S3C24XX: Select CONFIG_NO_IOPORT
  [ARM] Fix s3c2410 ALSA audio for typedef elimination
  [ARM] Fix ARM AACI ALSA driver
  [ARM] fix mach-at91 build breakage
  [ARM] Fix jornada720 build errors
  [ARM] Fix iop13xx build error
  [ARM] Fix build error caused by move of apm
  [ARM] 4223/1: ixdp2351 : Fix for a define error
  [ARM] 4187/1: iop: unify time implementation across iop32x, iop33x, and iop13xx
  [ARM] 4186/1: iop: remove cp6_enable/disable routines
  [ARM] 4185/2: entry: introduce get_irqnr_preamble and arch_ret_to_user
  • Loading branch information
Linus Torvalds committed Feb 20, 2007
2 parents 91aa693 + 5a84d15 commit e696268
Show file tree
Hide file tree
Showing 60 changed files with 425 additions and 320 deletions.
2 changes: 1 addition & 1 deletion arch/arm/common/sharpsl_pm.c
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,11 @@
#include <linux/interrupt.h>
#include <linux/platform_device.h>
#include <linux/leds.h>
#include <linux/apm-emulation.h>

#include <asm/hardware.h>
#include <asm/mach-types.h>
#include <asm/irq.h>
#include <asm/apm-emulation.h>
#include <asm/arch/pm.h>
#include <asm/arch/pxa-regs.h>
#include <asm/arch/sharpsl.h>
Expand Down
1 change: 1 addition & 0 deletions arch/arm/kernel/entry-armv.S
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
* Interrupt handling. Preserves r7, r8, r9
*/
.macro irq_handler
get_irqnr_preamble r5, lr
1: get_irqnr_and_base r0, r6, r5, lr
movne r1, sp
@
Expand Down
7 changes: 7 additions & 0 deletions arch/arm/kernel/entry-common.S
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
*/

#include <asm/unistd.h>
#include <asm/arch/entry-macro.S>

#include "entry-header.S"

Expand All @@ -25,6 +26,9 @@ ret_fast_syscall:
tst r1, #_TIF_WORK_MASK
bne fast_work_pending

/* perform architecture specific actions before user return */
arch_ret_to_user r1, lr

@ fast_restore_user_regs
ldr r1, [sp, #S_OFF + S_PSR] @ get calling cpsr
ldr lr, [sp, #S_OFF + S_PC]! @ get pc
Expand Down Expand Up @@ -61,6 +65,9 @@ ret_slow_syscall:
tst r1, #_TIF_WORK_MASK
bne work_pending
no_work_pending:
/* perform architecture specific actions before user return */
arch_ret_to_user r1, lr

@ slow_restore_user_regs
ldr r1, [sp, #S_PSR] @ get calling cpsr
ldr lr, [sp, #S_PC]! @ get pc
Expand Down
1 change: 0 additions & 1 deletion arch/arm/mach-iop13xx/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ obj- :=

obj-$(CONFIG_ARCH_IOP13XX) += setup.o
obj-$(CONFIG_ARCH_IOP13XX) += irq.o
obj-$(CONFIG_ARCH_IOP13XX) += time.o
obj-$(CONFIG_ARCH_IOP13XX) += pci.o
obj-$(CONFIG_ARCH_IOP13XX) += io.o
obj-$(CONFIG_MACH_IQ81340SC) += iq81340sc.o
Expand Down
5 changes: 3 additions & 2 deletions arch/arm/mach-iop13xx/iq81340mc.c
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
#include <asm/mach/arch.h>
#include <asm/arch/pci.h>
#include <asm/mach/time.h>
#include <asm/arch/time.h>

extern int init_atu; /* Flag to select which ATU(s) to initialize / disable */

Expand Down Expand Up @@ -78,12 +79,12 @@ static void __init iq81340mc_init(void)

static void __init iq81340mc_timer_init(void)
{
iop13xx_init_time(400000000);
iop_init_time(400000000);
}

static struct sys_timer iq81340mc_timer = {
.init = iq81340mc_timer_init,
.offset = iop13xx_gettimeoffset,
.offset = iop_gettimeoffset,
};

MACHINE_START(IQ81340MC, "Intel IQ81340MC")
Expand Down
5 changes: 3 additions & 2 deletions arch/arm/mach-iop13xx/iq81340sc.c
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
#include <asm/mach/arch.h>
#include <asm/arch/pci.h>
#include <asm/mach/time.h>
#include <asm/arch/time.h>

extern int init_atu;

Expand Down Expand Up @@ -80,12 +81,12 @@ static void __init iq81340sc_init(void)

static void __init iq81340sc_timer_init(void)
{
iop13xx_init_time(400000000);
iop_init_time(400000000);
}

static struct sys_timer iq81340sc_timer = {
.init = iq81340sc_timer_init,
.offset = iop13xx_gettimeoffset,
.offset = iop_gettimeoffset,
};

MACHINE_START(IQ81340SC, "Intel IQ81340SC")
Expand Down
19 changes: 0 additions & 19 deletions arch/arm/mach-iop13xx/irq.c
Original file line number Diff line number Diff line change
Expand Up @@ -161,65 +161,49 @@ static void write_intsize(u32 val)
static void
iop13xx_irq_mask0 (unsigned int irq)
{
u32 cp_flags = iop13xx_cp6_save();
write_intctl_0(read_intctl_0() & ~(1 << (irq - 0)));
iop13xx_cp6_restore(cp_flags);
}

static void
iop13xx_irq_mask1 (unsigned int irq)
{
u32 cp_flags = iop13xx_cp6_save();
write_intctl_1(read_intctl_1() & ~(1 << (irq - 32)));
iop13xx_cp6_restore(cp_flags);
}

static void
iop13xx_irq_mask2 (unsigned int irq)
{
u32 cp_flags = iop13xx_cp6_save();
write_intctl_2(read_intctl_2() & ~(1 << (irq - 64)));
iop13xx_cp6_restore(cp_flags);
}

static void
iop13xx_irq_mask3 (unsigned int irq)
{
u32 cp_flags = iop13xx_cp6_save();
write_intctl_3(read_intctl_3() & ~(1 << (irq - 96)));
iop13xx_cp6_restore(cp_flags);
}

static void
iop13xx_irq_unmask0(unsigned int irq)
{
u32 cp_flags = iop13xx_cp6_save();
write_intctl_0(read_intctl_0() | (1 << (irq - 0)));
iop13xx_cp6_restore(cp_flags);
}

static void
iop13xx_irq_unmask1(unsigned int irq)
{
u32 cp_flags = iop13xx_cp6_save();
write_intctl_1(read_intctl_1() | (1 << (irq - 32)));
iop13xx_cp6_restore(cp_flags);
}

static void
iop13xx_irq_unmask2(unsigned int irq)
{
u32 cp_flags = iop13xx_cp6_save();
write_intctl_2(read_intctl_2() | (1 << (irq - 64)));
iop13xx_cp6_restore(cp_flags);
}

static void
iop13xx_irq_unmask3(unsigned int irq)
{
u32 cp_flags = iop13xx_cp6_save();
write_intctl_3(read_intctl_3() | (1 << (irq - 96)));
iop13xx_cp6_restore(cp_flags);
}

static struct irq_chip iop13xx_irqchip1 = {
Expand Down Expand Up @@ -256,7 +240,6 @@ void __init iop13xx_init_irq(void)
{
unsigned int i;

u32 cp_flags = iop13xx_cp6_save();
iop_init_cp6_handler();

/* disable all interrupts */
Expand Down Expand Up @@ -288,6 +271,4 @@ void __init iop13xx_init_irq(void)
set_irq_handler(i, handle_level_irq);
set_irq_flags(i, IRQF_VALID | IRQF_PROBE);
}

iop13xx_cp6_restore(cp_flags);
}
1 change: 1 addition & 0 deletions arch/arm/mach-iop13xx/setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
#include <asm/mach/map.h>
#include <asm/hardware.h>
#include <asm/irq.h>
#include <asm/io.h>

#define IOP13XX_UART_XTAL 33334000
#define IOP13XX_SETUP_DEBUG 0
Expand Down
102 changes: 0 additions & 102 deletions arch/arm/mach-iop13xx/time.c

This file was deleted.

5 changes: 3 additions & 2 deletions arch/arm/mach-iop32x/glantank.c
Original file line number Diff line number Diff line change
Expand Up @@ -31,19 +31,20 @@
#include <asm/mach/time.h>
#include <asm/mach-types.h>
#include <asm/page.h>
#include <asm/arch/time.h>

/*
* GLAN Tank timer tick configuration.
*/
static void __init glantank_timer_init(void)
{
/* 33.333 MHz crystal. */
iop3xx_init_time(200000000);
iop_init_time(200000000);
}

static struct sys_timer glantank_timer = {
.init = glantank_timer_init,
.offset = iop3xx_gettimeoffset,
.offset = iop_gettimeoffset,
};


Expand Down
8 changes: 4 additions & 4 deletions arch/arm/mach-iop32x/iq31244.c
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
#include <asm/mach-types.h>
#include <asm/page.h>
#include <asm/pgtable.h>

#include <asm/arch/time.h>

/*
* The EP80219 and IQ31244 use the same machine ID. To find out
Expand All @@ -56,16 +56,16 @@ static void __init iq31244_timer_init(void)
{
if (is_80219()) {
/* 33.333 MHz crystal. */
iop3xx_init_time(200000000);
iop_init_time(200000000);
} else {
/* 33.000 MHz crystal. */
iop3xx_init_time(198000000);
iop_init_time(198000000);
}
}

static struct sys_timer iq31244_timer = {
.init = iq31244_timer_init,
.offset = iop3xx_gettimeoffset,
.offset = iop_gettimeoffset,
};


Expand Down
5 changes: 3 additions & 2 deletions arch/arm/mach-iop32x/iq80321.c
Original file line number Diff line number Diff line change
Expand Up @@ -33,19 +33,20 @@
#include <asm/mach-types.h>
#include <asm/page.h>
#include <asm/pgtable.h>
#include <asm/arch/time.h>

/*
* IQ80321 timer tick configuration.
*/
static void __init iq80321_timer_init(void)
{
/* 33.333 MHz crystal. */
iop3xx_init_time(200000000);
iop_init_time(200000000);
}

static struct sys_timer iq80321_timer = {
.init = iq80321_timer_init,
.offset = iop3xx_gettimeoffset,
.offset = iop_gettimeoffset,
};


Expand Down
4 changes: 0 additions & 4 deletions arch/arm/mach-iop32x/irq.c
Original file line number Diff line number Diff line change
Expand Up @@ -23,16 +23,12 @@ static u32 iop32x_mask;

static inline void intctl_write(u32 val)
{
iop3xx_cp6_enable();
asm volatile("mcr p6, 0, %0, c0, c0, 0" : : "r" (val));
iop3xx_cp6_disable();
}

static inline void intstr_write(u32 val)
{
iop3xx_cp6_enable();
asm volatile("mcr p6, 0, %0, c4, c0, 0" : : "r" (val));
iop3xx_cp6_disable();
}

static void
Expand Down
Loading

0 comments on commit e696268

Please sign in to comment.