aboutsummaryrefslogtreecommitdiffstats
path: root/arch/m68k/mvme16x/config.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/m68k/mvme16x/config.c')
-rw-r--r--arch/m68k/mvme16x/config.c23
1 files changed, 10 insertions, 13 deletions
diff --git a/arch/m68k/mvme16x/config.c b/arch/m68k/mvme16x/config.c
index 26ce81c1337d..ce2727ed1bc0 100644
--- a/arch/m68k/mvme16x/config.c
+++ b/arch/m68k/mvme16x/config.c
@@ -40,15 +40,8 @@ extern t_bdid mvme_bdid;
40 40
41static MK48T08ptr_t volatile rtc = (MK48T08ptr_t)MVME_RTC_BASE; 41static MK48T08ptr_t volatile rtc = (MK48T08ptr_t)MVME_RTC_BASE;
42 42
43extern irqreturn_t mvme16x_process_int (int level, struct pt_regs *regs);
44extern void mvme16x_init_IRQ (void);
45extern void mvme16x_free_irq (unsigned int, void *);
46extern int show_mvme16x_interrupts (struct seq_file *, void *);
47extern void mvme16x_enable_irq (unsigned int);
48extern void mvme16x_disable_irq (unsigned int);
49static void mvme16x_get_model(char *model); 43static void mvme16x_get_model(char *model);
50static int mvme16x_get_hardware_list(char *buffer); 44static int mvme16x_get_hardware_list(char *buffer);
51extern int mvme16x_request_irq(unsigned int irq, irqreturn_t (*handler)(int, void *, struct pt_regs *), unsigned long flags, const char *devname, void *dev_id);
52extern void mvme16x_sched_init(irqreturn_t (*handler)(int, void *, struct pt_regs *)); 45extern void mvme16x_sched_init(irqreturn_t (*handler)(int, void *, struct pt_regs *));
53extern unsigned long mvme16x_gettimeoffset (void); 46extern unsigned long mvme16x_gettimeoffset (void);
54extern int mvme16x_hwclk (int, struct rtc_time *); 47extern int mvme16x_hwclk (int, struct rtc_time *);
@@ -120,6 +113,16 @@ static int mvme16x_get_hardware_list(char *buffer)
120 return (len); 113 return (len);
121} 114}
122 115
116/*
117 * This function is called during kernel startup to initialize
118 * the mvme16x IRQ handling routines. Should probably ensure
119 * that the base vectors for the VMEChip2 and PCCChip2 are valid.
120 */
121
122static void mvme16x_init_IRQ (void)
123{
124 m68k_setup_user_interrupt(VEC_USER, 192, NULL);
125}
123 126
124#define pcc2chip ((volatile u_char *)0xfff42000) 127#define pcc2chip ((volatile u_char *)0xfff42000)
125#define PccSCCMICR 0x1d 128#define PccSCCMICR 0x1d
@@ -138,12 +141,6 @@ void __init config_mvme16x(void)
138 mach_hwclk = mvme16x_hwclk; 141 mach_hwclk = mvme16x_hwclk;
139 mach_set_clock_mmss = mvme16x_set_clock_mmss; 142 mach_set_clock_mmss = mvme16x_set_clock_mmss;
140 mach_reset = mvme16x_reset; 143 mach_reset = mvme16x_reset;
141 mach_free_irq = mvme16x_free_irq;
142 mach_process_int = mvme16x_process_int;
143 mach_get_irq_list = show_mvme16x_interrupts;
144 mach_request_irq = mvme16x_request_irq;
145 enable_irq = mvme16x_enable_irq;
146 disable_irq = mvme16x_disable_irq;
147 mach_get_model = mvme16x_get_model; 144 mach_get_model = mvme16x_get_model;
148 mach_get_hardware_list = mvme16x_get_hardware_list; 145 mach_get_hardware_list = mvme16x_get_hardware_list;
149 146