Skip to content

Commit

Permalink
m68knommu: correctly use trap_init
Browse files Browse the repository at this point in the history
Currently trap_init() is an empty function for m68knommu. Instead
the vectors are being setup as part of the IRQ initialization.
This is inconsistent with m68k and other architectures.

Change the local init_vectors() to be trap_init(), and init the
vectors at the correct time during startup. This will help merge of
m68k and m68knommu trap code in the furture.

Signed-off-by: Greg Ungerer <gerg@uclinux.org>
  • Loading branch information
Greg Ungerer committed Jul 25, 2011
1 parent f4a5437 commit 622e947
Show file tree
Hide file tree
Showing 9 changed files with 13 additions and 24 deletions.
1 change: 0 additions & 1 deletion arch/m68k/include/asm/traps.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ extern e_vector vectors[];
asmlinkage void auto_inthandler(void);
asmlinkage void user_inthandler(void);
asmlinkage void bad_inthandler(void);
extern void init_vectors(void);

#endif

Expand Down
4 changes: 0 additions & 4 deletions arch/m68k/kernel/traps_no.c
Original file line number Diff line number Diff line change
Expand Up @@ -60,10 +60,6 @@ static char const * const vec_names[] = {
"MMU CONFIGURATION ERROR"
};

void __init trap_init(void)
{
}

void die_if_kernel(char *str, struct pt_regs *fp, int nr)
{
if (!(fp->sr & PS_S))
Expand Down
2 changes: 0 additions & 2 deletions arch/m68k/platform/5272/intc.c
Original file line number Diff line number Diff line change
Expand Up @@ -162,8 +162,6 @@ void __init init_IRQ(void)
{
int irq, edge;

init_vectors();

/* Mask all interrupt sources */
writel(0x88888888, MCF_MBAR + MCFSIM_ICR1);
writel(0x88888888, MCF_MBAR + MCFSIM_ICR2);
Expand Down
7 changes: 6 additions & 1 deletion arch/m68k/platform/68328/ints.c
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ static struct irq_chip intc_irq_chip = {
* This function should be called during kernel startup to initialize
* the machine vector table.
*/
void __init init_IRQ(void)
void __init trap_init(void)
{
int i;

Expand All @@ -172,6 +172,11 @@ void __init init_IRQ(void)
_ramvec[69] = (e_vector) inthandler5;
_ramvec[70] = (e_vector) inthandler6;
_ramvec[71] = (e_vector) inthandler7;
}

void __init init_IRQ(void)
{
int i;

IVR = 0x40; /* Set DragonBall IVR (interrupt base) to 64 */

Expand Down
8 changes: 6 additions & 2 deletions arch/m68k/platform/68360/ints.c
Original file line number Diff line number Diff line change
Expand Up @@ -63,9 +63,8 @@ static struct irq_chip intc_irq_chip = {
* This function should be called during kernel startup to initialize
* the vector table.
*/
void init_IRQ(void)
void __init trap_init(void)
{
int i;
int vba = (CPM_VECTOR_BASE<<4);

/* set up the vectors */
Expand Down Expand Up @@ -130,6 +129,11 @@ void init_IRQ(void)

/* turn off all CPM interrupts */
pquicc->intr_cimr = 0x00000000;
}

void init_IRQ(void)
{
int i;

for (i = 0; (i < NR_IRQS); i++) {
irq_set_chip(i, &intc_irq_chip);
Expand Down
2 changes: 0 additions & 2 deletions arch/m68k/platform/coldfire/intc-2.c
Original file line number Diff line number Diff line change
Expand Up @@ -194,8 +194,6 @@ void __init init_IRQ(void)
{
int irq;

init_vectors();

/* Mask all interrupt sources */
__raw_writel(0x1, MCFICM_INTC0 + MCFINTC_IMRL);
#ifdef MCFICM_INTC1
Expand Down
2 changes: 0 additions & 2 deletions arch/m68k/platform/coldfire/intc-simr.c
Original file line number Diff line number Diff line change
Expand Up @@ -171,8 +171,6 @@ void __init init_IRQ(void)
{
int irq, eirq;

init_vectors();

/* Mask all interrupt sources */
__raw_writeb(0xff, MCFINTC0_SIMR);
if (MCFINTC1_SIMR)
Expand Down
1 change: 0 additions & 1 deletion arch/m68k/platform/coldfire/intc.c
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,6 @@ void __init init_IRQ(void)
{
int irq;

init_vectors();
mcf_maskimr(0xffffffff);

for (irq = 0; (irq < NR_IRQS); irq++) {
Expand Down
10 changes: 1 addition & 9 deletions arch/m68k/platform/coldfire/vectors.c
Original file line number Diff line number Diff line change
Expand Up @@ -35,21 +35,13 @@ asmlinkage void dbginterrupt_c(struct frame *fp)

extern e_vector *_ramvec;

void set_evector(int vecnum, void (*handler)(void))
{
if (vecnum >= 0 && vecnum <= 255)
_ramvec[vecnum] = handler;
}

/***************************************************************************/

/* Assembler routines */
asmlinkage void buserr(void);
asmlinkage void trap(void);
asmlinkage void system_call(void);
asmlinkage void inthandler(void);

void __init init_vectors(void)
void __init trap_init(void)
{
int i;

Expand Down

0 comments on commit 622e947

Please sign in to comment.