mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 11:11:45 -04:00
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k: (30 commits) m68k: Fix --build-id breakage for sun3 m68k: Wire up sys_restart_syscall fbdev: Kill Atari vblank cursor blinking m68k: zorro - Use %pR to print resources m68k: dio - Kill resource_size_t format warnings m68k: dmasound - Kill warn_unused_result warnings m68k: zorro - Kill warn_unused_result warnings m68k: dio - Kill warn_unused_result warnings m68k: atafb - Kill warn_unused_result warnings m68k: amiserial - Kill warn_unused_result warnings m68k: ser_a2232 - Kill warn_unused_result warnings m68k: vme_scc - Kill warn_unused_result warnings m68k: sun3 core - Kill warn_unused_result warnings m68k: mvme147 core - Kill warn_unused_result warnings m68k: mac core - Kill warn_unused_result warnings m68k: hp300 core - Kill warn_unused_result warnings m68k: atari core - Kill warn_unused_result warnings m68k: apollo core - Kill warn_unused_result warnings m68k: amiga core - Kill warn_unused_result warnings m68k: Kill several external declarations in source files ...
This commit is contained in:
commit
3b1b71950b
56 changed files with 912 additions and 553 deletions
|
|
@ -72,10 +72,14 @@ static struct irq_controller amiga_irq_controller = {
|
|||
|
||||
void __init amiga_init_IRQ(void)
|
||||
{
|
||||
request_irq(IRQ_AUTO_1, ami_int1, 0, "int1", NULL);
|
||||
request_irq(IRQ_AUTO_3, ami_int3, 0, "int3", NULL);
|
||||
request_irq(IRQ_AUTO_4, ami_int4, 0, "int4", NULL);
|
||||
request_irq(IRQ_AUTO_5, ami_int5, 0, "int5", NULL);
|
||||
if (request_irq(IRQ_AUTO_1, ami_int1, 0, "int1", NULL))
|
||||
pr_err("Couldn't register int%d\n", 1);
|
||||
if (request_irq(IRQ_AUTO_3, ami_int3, 0, "int3", NULL))
|
||||
pr_err("Couldn't register int%d\n", 3);
|
||||
if (request_irq(IRQ_AUTO_4, ami_int4, 0, "int4", NULL))
|
||||
pr_err("Couldn't register int%d\n", 4);
|
||||
if (request_irq(IRQ_AUTO_5, ami_int5, 0, "int5", NULL))
|
||||
pr_err("Couldn't register int%d\n", 5);
|
||||
|
||||
m68k_setup_irq_controller(&amiga_irq_controller, IRQ_USER, AMI_STD_IRQS);
|
||||
|
||||
|
|
|
|||
|
|
@ -176,5 +176,7 @@ void __init cia_init_IRQ(struct ciabase *base)
|
|||
/* override auto int and install CIA handler */
|
||||
m68k_setup_irq_controller(&auto_irq_controller, base->handler_irq, 1);
|
||||
m68k_irq_startup(base->handler_irq);
|
||||
request_irq(base->handler_irq, cia_handler, IRQF_SHARED, base->name, base);
|
||||
if (request_irq(base->handler_irq, cia_handler, IRQF_SHARED,
|
||||
base->name, base))
|
||||
pr_err("Couldn't register %s interrupt\n", base->name);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -493,7 +493,8 @@ static void __init amiga_sched_init(irq_handler_t timer_routine)
|
|||
* Please don't change this to use ciaa, as it interferes with the
|
||||
* SCSI code. We'll have to take a look at this later
|
||||
*/
|
||||
request_irq(IRQ_AMIGA_CIAB_TA, timer_routine, 0, "timer", NULL);
|
||||
if (request_irq(IRQ_AMIGA_CIAB_TA, timer_routine, 0, "timer", NULL))
|
||||
pr_err("Couldn't register timer interrupt\n");
|
||||
/* start timer */
|
||||
ciab.cra |= 0x11;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -31,10 +31,6 @@ extern unsigned long dn_gettimeoffset(void);
|
|||
extern int dn_dummy_hwclk(int, struct rtc_time *);
|
||||
extern int dn_dummy_set_clock_mmss(unsigned long);
|
||||
extern void dn_dummy_reset(void);
|
||||
extern void dn_dummy_waitbut(void);
|
||||
extern struct fb_info *dn_fb_init(long *);
|
||||
extern void dn_dummy_debug_init(void);
|
||||
extern irqreturn_t dn_process_int(int irq, struct pt_regs *fp);
|
||||
#ifdef CONFIG_HEARTBEAT
|
||||
static void dn_heartbeat(int on);
|
||||
#endif
|
||||
|
|
@ -204,7 +200,8 @@ void dn_sched_init(irq_handler_t timer_routine)
|
|||
printk("*(0x10803) %02x\n",*(volatile unsigned char *)(timer+0x3));
|
||||
#endif
|
||||
|
||||
request_irq(IRQ_APOLLO, dn_timer_int, 0, "time", timer_routine);
|
||||
if (request_irq(IRQ_APOLLO, dn_timer_int, 0, "time", timer_routine))
|
||||
pr_err("Couldn't register timer interrupt\n");
|
||||
}
|
||||
|
||||
unsigned long dn_gettimeoffset(void) {
|
||||
|
|
|
|||
|
|
@ -33,7 +33,6 @@
|
|||
#include <asm/atari_joystick.h>
|
||||
#include <asm/irq.h>
|
||||
|
||||
extern unsigned int keymap_count;
|
||||
|
||||
/* Hook for MIDI serial driver */
|
||||
void (*atari_MIDI_interrupt_hook) (void);
|
||||
|
|
@ -567,14 +566,19 @@ static int atari_keyb_done = 0;
|
|||
|
||||
int atari_keyb_init(void)
|
||||
{
|
||||
int error;
|
||||
|
||||
if (atari_keyb_done)
|
||||
return 0;
|
||||
|
||||
kb_state.state = KEYBOARD;
|
||||
kb_state.len = 0;
|
||||
|
||||
request_irq(IRQ_MFP_ACIA, atari_keyboard_interrupt, IRQ_TYPE_SLOW,
|
||||
"keyboard/mouse/MIDI", atari_keyboard_interrupt);
|
||||
error = request_irq(IRQ_MFP_ACIA, atari_keyboard_interrupt,
|
||||
IRQ_TYPE_SLOW, "keyboard/mouse/MIDI",
|
||||
atari_keyboard_interrupt);
|
||||
if (error)
|
||||
return error;
|
||||
|
||||
atari_turnoff_irq(IRQ_MFP_ACIA);
|
||||
do {
|
||||
|
|
|
|||
|
|
@ -179,8 +179,9 @@ EXPORT_SYMBOL(stdma_islocked);
|
|||
void __init stdma_init(void)
|
||||
{
|
||||
stdma_isr = NULL;
|
||||
request_irq(IRQ_MFP_FDC, stdma_int, IRQ_TYPE_SLOW | IRQF_SHARED,
|
||||
"ST-DMA: floppy/ACSI/IDE/Falcon-SCSI", stdma_int);
|
||||
if (request_irq(IRQ_MFP_FDC, stdma_int, IRQ_TYPE_SLOW | IRQF_SHARED,
|
||||
"ST-DMA: floppy/ACSI/IDE/Falcon-SCSI", stdma_int))
|
||||
pr_err("Couldn't register ST-DMA interrupt\n");
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -31,8 +31,9 @@ atari_sched_init(irq_handler_t timer_routine)
|
|||
/* start timer C, div = 1:100 */
|
||||
mfp.tim_ct_cd = (mfp.tim_ct_cd & 15) | 0x60;
|
||||
/* install interrupt service routine for MFP Timer C */
|
||||
request_irq(IRQ_MFP_TIMC, timer_routine, IRQ_TYPE_SLOW,
|
||||
"timer", timer_routine);
|
||||
if (request_irq(IRQ_MFP_TIMC, timer_routine, IRQ_TYPE_SLOW,
|
||||
"timer", timer_routine))
|
||||
pr_err("Couldn't register timer interrupt\n");
|
||||
}
|
||||
|
||||
/* ++andreas: gettimeoffset fixed to check for pending interrupt */
|
||||
|
|
|
|||
|
|
@ -43,7 +43,6 @@ extern unsigned long bvme6000_gettimeoffset (void);
|
|||
extern int bvme6000_hwclk (int, struct rtc_time *);
|
||||
extern int bvme6000_set_clock_mmss (unsigned long);
|
||||
extern void bvme6000_reset (void);
|
||||
extern void bvme6000_waitbut(void);
|
||||
void bvme6000_set_vectors (void);
|
||||
|
||||
/* Save tick handler routine pointer, will point to do_timer() in
|
||||
|
|
|
|||
|
|
@ -70,7 +70,8 @@ void __init hp300_sched_init(irq_handler_t vector)
|
|||
|
||||
asm volatile(" movpw %0,%1@(5)" : : "d" (INTVAL), "a" (CLOCKBASE));
|
||||
|
||||
request_irq(IRQ_AUTO_6, hp300_tick, IRQ_FLG_STD, "timer tick", vector);
|
||||
if (request_irq(IRQ_AUTO_6, hp300_tick, IRQ_FLG_STD, "timer tick", vector))
|
||||
pr_err("Couldn't register timer interrupt\n");
|
||||
|
||||
out_8(CLOCKBASE + CLKCR2, 0x1); /* select CR1 */
|
||||
out_8(CLOCKBASE + CLKCR1, 0x40); /* enable irq */
|
||||
|
|
|
|||
1
arch/m68k/kernel/.gitignore
vendored
Normal file
1
arch/m68k/kernel/.gitignore
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
vmlinux.lds
|
||||
|
|
@ -424,7 +424,7 @@ resume:
|
|||
.data
|
||||
ALIGN
|
||||
sys_call_table:
|
||||
.long sys_ni_syscall /* 0 - old "setup()" system call*/
|
||||
.long sys_restart_syscall /* 0 - old "setup()" system call, used for restarting */
|
||||
.long sys_exit
|
||||
.long sys_fork
|
||||
.long sys_read
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@
|
|||
#include <linux/initrd.h>
|
||||
|
||||
#include <asm/bootinfo.h>
|
||||
#include <asm/sections.h>
|
||||
#include <asm/setup.h>
|
||||
#include <asm/fpu.h>
|
||||
#include <asm/irq.h>
|
||||
|
|
@ -62,7 +63,6 @@ EXPORT_SYMBOL(vme_brdtype);
|
|||
int m68k_is040or060;
|
||||
EXPORT_SYMBOL(m68k_is040or060);
|
||||
|
||||
extern int end;
|
||||
extern unsigned long availmem;
|
||||
|
||||
int m68k_num_memory;
|
||||
|
|
@ -215,11 +215,10 @@ static void __init m68k_parse_bootinfo(const struct bi_record *record)
|
|||
|
||||
void __init setup_arch(char **cmdline_p)
|
||||
{
|
||||
extern int _etext, _edata, _end;
|
||||
int i;
|
||||
|
||||
/* The bootinfo is located right after the kernel bss */
|
||||
m68k_parse_bootinfo((const struct bi_record *)&_end);
|
||||
m68k_parse_bootinfo((const struct bi_record *)_end);
|
||||
|
||||
if (CPU_IS_040)
|
||||
m68k_is040or060 = 4;
|
||||
|
|
@ -252,9 +251,9 @@ void __init setup_arch(char **cmdline_p)
|
|||
}
|
||||
|
||||
init_mm.start_code = PAGE_OFFSET;
|
||||
init_mm.end_code = (unsigned long) &_etext;
|
||||
init_mm.end_data = (unsigned long) &_edata;
|
||||
init_mm.brk = (unsigned long) &_end;
|
||||
init_mm.end_code = (unsigned long)_etext;
|
||||
init_mm.end_data = (unsigned long)_edata;
|
||||
init_mm.brk = (unsigned long)_end;
|
||||
|
||||
*cmdline_p = m68k_command_line;
|
||||
memcpy(boot_command_line, *cmdline_p, CL_SIZE);
|
||||
|
|
|
|||
|
|
@ -326,6 +326,9 @@ restore_sigcontext(struct pt_regs *regs, struct sigcontext __user *usc, void __u
|
|||
struct sigcontext context;
|
||||
int err;
|
||||
|
||||
/* Always make any pending restarted system calls return -EINTR */
|
||||
current_thread_info()->restart_block.fn = do_no_restart_syscall;
|
||||
|
||||
/* get previous context */
|
||||
if (copy_from_user(&context, usc, sizeof(context)))
|
||||
goto badframe;
|
||||
|
|
@ -411,6 +414,9 @@ rt_restore_ucontext(struct pt_regs *regs, struct switch_stack *sw,
|
|||
unsigned long usp;
|
||||
int err;
|
||||
|
||||
/* Always make any pending restarted system calls return -EINTR */
|
||||
current_thread_info()->restart_block.fn = do_no_restart_syscall;
|
||||
|
||||
err = __get_user(temp, &uc->uc_mcontext.version);
|
||||
if (temp != MCONTEXT_VERSION)
|
||||
goto badframe;
|
||||
|
|
@ -937,6 +943,15 @@ handle_restart(struct pt_regs *regs, struct k_sigaction *ka, int has_handler)
|
|||
regs->d0 = -EINTR;
|
||||
break;
|
||||
|
||||
case -ERESTART_RESTARTBLOCK:
|
||||
if (!has_handler) {
|
||||
regs->d0 = __NR_restart_syscall;
|
||||
regs->pc -= 2;
|
||||
break;
|
||||
}
|
||||
regs->d0 = -EINTR;
|
||||
break;
|
||||
|
||||
case -ERESTARTSYS:
|
||||
if (has_handler && !(ka->sa.sa_flags & SA_RESTART)) {
|
||||
regs->d0 = -EINTR;
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@ SECTIONS
|
|||
} :data
|
||||
/* End of data goes *here* so that freeing init code works properly. */
|
||||
_edata = .;
|
||||
NOTES
|
||||
|
||||
/* will be freed after init */
|
||||
. = ALIGN(PAGE_SIZE); /* Init code and data */
|
||||
|
|
|
|||
|
|
@ -92,7 +92,8 @@ static irqreturn_t baboon_irq(int irq, void *dev_id)
|
|||
void __init baboon_register_interrupts(void)
|
||||
{
|
||||
baboon_disabled = 0;
|
||||
request_irq(IRQ_NUBUS_C, baboon_irq, 0, "baboon", (void *)baboon);
|
||||
if (request_irq(IRQ_NUBUS_C, baboon_irq, 0, "baboon", (void *)baboon))
|
||||
pr_err("Couldn't register baboon interrupt\n");
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -47,13 +47,6 @@
|
|||
|
||||
struct mac_booter_data mac_bi_data;
|
||||
|
||||
/* New m68k bootinfo stuff and videobase */
|
||||
|
||||
extern int m68k_num_memory;
|
||||
extern struct mem_info m68k_memory[NUM_MEMINFO];
|
||||
|
||||
extern struct mem_info m68k_ramdisk;
|
||||
|
||||
/* The phys. video addr. - might be bogus on some machines */
|
||||
static unsigned long mac_orig_videoaddr;
|
||||
|
||||
|
|
@ -61,7 +54,6 @@ static unsigned long mac_orig_videoaddr;
|
|||
extern unsigned long mac_gettimeoffset(void);
|
||||
extern int mac_hwclk(int, struct rtc_time *);
|
||||
extern int mac_set_clock_mmss(unsigned long);
|
||||
extern int show_mac_interrupts(struct seq_file *, void *);
|
||||
extern void iop_preinit(void);
|
||||
extern void iop_init(void);
|
||||
extern void via_init(void);
|
||||
|
|
@ -805,10 +797,6 @@ static void __init mac_identify(void)
|
|||
mac_bi_data.boottime, mac_bi_data.gmtbias);
|
||||
printk(KERN_DEBUG " Machine ID: %ld CPUid: 0x%lx memory size: 0x%lx \n",
|
||||
mac_bi_data.id, mac_bi_data.cpuid, mac_bi_data.memsize);
|
||||
#if 0
|
||||
printk("Ramdisk: addr 0x%lx size 0x%lx\n",
|
||||
m68k_ramdisk.addr, m68k_ramdisk.size);
|
||||
#endif
|
||||
|
||||
iop_init();
|
||||
via_init();
|
||||
|
|
|
|||
|
|
@ -27,7 +27,6 @@
|
|||
#include <asm/macints.h>
|
||||
|
||||
extern unsigned long mac_videobase;
|
||||
extern unsigned long mac_videodepth;
|
||||
extern unsigned long mac_rowbytes;
|
||||
|
||||
extern void mac_serial_print(const char *);
|
||||
|
|
|
|||
|
|
@ -305,14 +305,16 @@ void __init iop_register_interrupts(void)
|
|||
{
|
||||
if (iop_ism_present) {
|
||||
if (oss_present) {
|
||||
request_irq(OSS_IRQLEV_IOPISM, iop_ism_irq,
|
||||
if (request_irq(OSS_IRQLEV_IOPISM, iop_ism_irq,
|
||||
IRQ_FLG_LOCK, "ISM IOP",
|
||||
(void *) IOP_NUM_ISM);
|
||||
(void *) IOP_NUM_ISM))
|
||||
pr_err("Couldn't register ISM IOP interrupt\n");
|
||||
oss_irq_enable(IRQ_MAC_ADB);
|
||||
} else {
|
||||
request_irq(IRQ_VIA2_0, iop_ism_irq,
|
||||
if (request_irq(IRQ_VIA2_0, iop_ism_irq,
|
||||
IRQ_FLG_LOCK|IRQ_FLG_FAST, "ISM IOP",
|
||||
(void *) IOP_NUM_ISM);
|
||||
(void *) IOP_NUM_ISM))
|
||||
pr_err("Couldn't register ISM IOP interrupt\n");
|
||||
}
|
||||
if (!iop_alive(iop_base[IOP_NUM_ISM])) {
|
||||
printk("IOP: oh my god, they killed the ISM IOP!\n");
|
||||
|
|
|
|||
|
|
@ -134,6 +134,7 @@
|
|||
#include <asm/errno.h>
|
||||
#include <asm/macints.h>
|
||||
#include <asm/irq_regs.h>
|
||||
#include <asm/mac_oss.h>
|
||||
|
||||
#define DEBUG_SPURIOUS
|
||||
#define SHUTUP_SONIC
|
||||
|
|
@ -146,7 +147,6 @@ static int scc_mask;
|
|||
* VIA/RBV hooks
|
||||
*/
|
||||
|
||||
extern void via_init(void);
|
||||
extern void via_register_interrupts(void);
|
||||
extern void via_irq_enable(int);
|
||||
extern void via_irq_disable(int);
|
||||
|
|
@ -157,9 +157,6 @@ extern int via_irq_pending(int);
|
|||
* OSS hooks
|
||||
*/
|
||||
|
||||
extern int oss_present;
|
||||
|
||||
extern void oss_init(void);
|
||||
extern void oss_register_interrupts(void);
|
||||
extern void oss_irq_enable(int);
|
||||
extern void oss_irq_disable(int);
|
||||
|
|
@ -170,9 +167,6 @@ extern int oss_irq_pending(int);
|
|||
* PSC hooks
|
||||
*/
|
||||
|
||||
extern int psc_present;
|
||||
|
||||
extern void psc_init(void);
|
||||
extern void psc_register_interrupts(void);
|
||||
extern void psc_irq_enable(int);
|
||||
extern void psc_irq_disable(int);
|
||||
|
|
@ -191,12 +185,10 @@ extern void iop_register_interrupts(void);
|
|||
|
||||
extern int baboon_present;
|
||||
|
||||
extern void baboon_init(void);
|
||||
extern void baboon_register_interrupts(void);
|
||||
extern void baboon_irq_enable(int);
|
||||
extern void baboon_irq_disable(int);
|
||||
extern void baboon_irq_clear(int);
|
||||
extern int baboon_irq_pending(int);
|
||||
|
||||
/*
|
||||
* SCC interrupt routines
|
||||
|
|
@ -258,8 +250,9 @@ void __init mac_init_IRQ(void)
|
|||
if (baboon_present)
|
||||
baboon_register_interrupts();
|
||||
iop_register_interrupts();
|
||||
request_irq(IRQ_AUTO_7, mac_nmi_handler, 0, "NMI",
|
||||
mac_nmi_handler);
|
||||
if (request_irq(IRQ_AUTO_7, mac_nmi_handler, 0, "NMI",
|
||||
mac_nmi_handler))
|
||||
pr_err("Couldn't register NMI\n");
|
||||
#ifdef DEBUG_MACINTS
|
||||
printk("mac_init_IRQ(): Done!\n");
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -35,7 +35,6 @@
|
|||
|
||||
#define RTC_OFFSET 2082844800
|
||||
|
||||
extern struct mac_booter_data mac_bi_data;
|
||||
static void (*rom_reset)(void);
|
||||
|
||||
#ifdef CONFIG_ADB_CUDA
|
||||
|
|
|
|||
|
|
@ -66,16 +66,21 @@ void __init oss_init(void)
|
|||
|
||||
void __init oss_register_interrupts(void)
|
||||
{
|
||||
request_irq(OSS_IRQLEV_SCSI, oss_irq, IRQ_FLG_LOCK,
|
||||
"scsi", (void *) oss);
|
||||
request_irq(OSS_IRQLEV_IOPSCC, mac_scc_dispatch, IRQ_FLG_LOCK,
|
||||
"scc", mac_scc_dispatch);
|
||||
request_irq(OSS_IRQLEV_NUBUS, oss_nubus_irq, IRQ_FLG_LOCK,
|
||||
"nubus", (void *) oss);
|
||||
request_irq(OSS_IRQLEV_SOUND, oss_irq, IRQ_FLG_LOCK,
|
||||
"sound", (void *) oss);
|
||||
request_irq(OSS_IRQLEV_VIA1, via1_irq, IRQ_FLG_LOCK,
|
||||
"via1", (void *) via1);
|
||||
if (request_irq(OSS_IRQLEV_SCSI, oss_irq, IRQ_FLG_LOCK,
|
||||
"scsi", (void *) oss))
|
||||
pr_err("Couldn't register %s interrupt\n", "scsi");
|
||||
if (request_irq(OSS_IRQLEV_IOPSCC, mac_scc_dispatch, IRQ_FLG_LOCK,
|
||||
"scc", mac_scc_dispatch))
|
||||
pr_err("Couldn't register %s interrupt\n", "scc");
|
||||
if (request_irq(OSS_IRQLEV_NUBUS, oss_nubus_irq, IRQ_FLG_LOCK,
|
||||
"nubus", (void *) oss))
|
||||
pr_err("Couldn't register %s interrupt\n", "nubus");
|
||||
if (request_irq(OSS_IRQLEV_SOUND, oss_irq, IRQ_FLG_LOCK,
|
||||
"sound", (void *) oss))
|
||||
pr_err("Couldn't register %s interrupt\n", "sound");
|
||||
if (request_irq(OSS_IRQLEV_VIA1, via1_irq, IRQ_FLG_LOCK,
|
||||
"via1", (void *) via1))
|
||||
pr_err("Couldn't register %s interrupt\n", "via1");
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -117,10 +117,14 @@ void __init psc_init(void)
|
|||
|
||||
void __init psc_register_interrupts(void)
|
||||
{
|
||||
request_irq(IRQ_AUTO_3, psc_irq, 0, "psc3", (void *) 0x30);
|
||||
request_irq(IRQ_AUTO_4, psc_irq, 0, "psc4", (void *) 0x40);
|
||||
request_irq(IRQ_AUTO_5, psc_irq, 0, "psc5", (void *) 0x50);
|
||||
request_irq(IRQ_AUTO_6, psc_irq, 0, "psc6", (void *) 0x60);
|
||||
if (request_irq(IRQ_AUTO_3, psc_irq, 0, "psc3", (void *) 0x30))
|
||||
pr_err("Couldn't register psc%d interrupt\n", 3);
|
||||
if (request_irq(IRQ_AUTO_4, psc_irq, 0, "psc4", (void *) 0x40))
|
||||
pr_err("Couldn't register psc%d interrupt\n", 4);
|
||||
if (request_irq(IRQ_AUTO_5, psc_irq, 0, "psc5", (void *) 0x50))
|
||||
pr_err("Couldn't register psc%d interrupt\n", 5);
|
||||
if (request_irq(IRQ_AUTO_6, psc_irq, 0, "psc6", (void *) 0x60))
|
||||
pr_err("Couldn't register psc%d interrupt\n", 6);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -34,6 +34,7 @@
|
|||
#include <asm/macints.h>
|
||||
#include <asm/mac_via.h>
|
||||
#include <asm/mac_psc.h>
|
||||
#include <asm/mac_oss.h>
|
||||
|
||||
volatile __u8 *via1, *via2;
|
||||
int rbv_present;
|
||||
|
|
@ -84,7 +85,6 @@ void via_irq_disable(int irq);
|
|||
void via_irq_clear(int irq);
|
||||
|
||||
extern irqreturn_t mac_scc_dispatch(int, void *);
|
||||
extern int oss_present;
|
||||
|
||||
/*
|
||||
* Initialize the VIAs
|
||||
|
|
@ -283,7 +283,8 @@ void __init via_init_clock(irq_handler_t func)
|
|||
via1[vT1CL] = MAC_CLOCK_LOW;
|
||||
via1[vT1CH] = MAC_CLOCK_HIGH;
|
||||
|
||||
request_irq(IRQ_MAC_TIMER_1, func, IRQ_FLG_LOCK, "timer", func);
|
||||
if (request_irq(IRQ_MAC_TIMER_1, func, IRQ_FLG_LOCK, "timer", func))
|
||||
pr_err("Couldn't register %s interrupt\n", "timer");
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -293,25 +294,31 @@ void __init via_init_clock(irq_handler_t func)
|
|||
void __init via_register_interrupts(void)
|
||||
{
|
||||
if (via_alt_mapping) {
|
||||
request_irq(IRQ_AUTO_1, via1_irq,
|
||||
if (request_irq(IRQ_AUTO_1, via1_irq,
|
||||
IRQ_FLG_LOCK|IRQ_FLG_FAST, "software",
|
||||
(void *) via1);
|
||||
request_irq(IRQ_AUTO_6, via1_irq,
|
||||
(void *) via1))
|
||||
pr_err("Couldn't register %s interrupt\n", "software");
|
||||
if (request_irq(IRQ_AUTO_6, via1_irq,
|
||||
IRQ_FLG_LOCK|IRQ_FLG_FAST, "via1",
|
||||
(void *) via1);
|
||||
(void *) via1))
|
||||
pr_err("Couldn't register %s interrupt\n", "via1");
|
||||
} else {
|
||||
request_irq(IRQ_AUTO_1, via1_irq,
|
||||
if (request_irq(IRQ_AUTO_1, via1_irq,
|
||||
IRQ_FLG_LOCK|IRQ_FLG_FAST, "via1",
|
||||
(void *) via1);
|
||||
(void *) via1))
|
||||
pr_err("Couldn't register %s interrupt\n", "via1");
|
||||
}
|
||||
request_irq(IRQ_AUTO_2, via2_irq, IRQ_FLG_LOCK|IRQ_FLG_FAST,
|
||||
"via2", (void *) via2);
|
||||
if (request_irq(IRQ_AUTO_2, via2_irq, IRQ_FLG_LOCK|IRQ_FLG_FAST,
|
||||
"via2", (void *) via2))
|
||||
pr_err("Couldn't register %s interrupt\n", "via2");
|
||||
if (!psc_present) {
|
||||
request_irq(IRQ_AUTO_4, mac_scc_dispatch, IRQ_FLG_LOCK,
|
||||
"scc", mac_scc_dispatch);
|
||||
if (request_irq(IRQ_AUTO_4, mac_scc_dispatch, IRQ_FLG_LOCK,
|
||||
"scc", mac_scc_dispatch))
|
||||
pr_err("Couldn't register %s interrupt\n", "scc");
|
||||
}
|
||||
request_irq(IRQ_MAC_NUBUS, via_nubus_irq, IRQ_FLG_LOCK|IRQ_FLG_FAST,
|
||||
"nubus", (void *) via2);
|
||||
if (request_irq(IRQ_MAC_NUBUS, via_nubus_irq,
|
||||
IRQ_FLG_LOCK|IRQ_FLG_FAST, "nubus", (void *) via2))
|
||||
pr_err("Couldn't register %s interrupt\n", "nubus");
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -24,7 +24,6 @@ static const struct fp_ext fp_one =
|
|||
|
||||
extern struct fp_ext *fp_fadd(struct fp_ext *dest, const struct fp_ext *src);
|
||||
extern struct fp_ext *fp_fdiv(struct fp_ext *dest, const struct fp_ext *src);
|
||||
extern struct fp_ext *fp_fmul(struct fp_ext *dest, const struct fp_ext *src);
|
||||
|
||||
struct fp_ext *
|
||||
fp_fsqrt(struct fp_ext *dest, struct fp_ext *src)
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@
|
|||
#ifdef CONFIG_ATARI
|
||||
#include <asm/atari_stram.h>
|
||||
#endif
|
||||
#include <asm/sections.h>
|
||||
#include <asm/tlb.h>
|
||||
|
||||
DEFINE_PER_CPU(struct mmu_gather, mmu_gathers);
|
||||
|
|
@ -73,9 +74,6 @@ extern void init_pointer_table(unsigned long ptable);
|
|||
|
||||
/* References to section boundaries */
|
||||
|
||||
extern char _text[], _etext[];
|
||||
extern char __init_begin[], __init_end[];
|
||||
|
||||
extern pmd_t *zero_pgtable;
|
||||
|
||||
void __init mem_init(void)
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@
|
|||
#ifdef CONFIG_ATARI
|
||||
#include <asm/atari_stram.h>
|
||||
#endif
|
||||
#include <asm/sections.h>
|
||||
|
||||
#undef DEBUG
|
||||
|
||||
|
|
@ -301,14 +302,12 @@ void __init paging_init(void)
|
|||
}
|
||||
}
|
||||
|
||||
extern char __init_begin, __init_end;
|
||||
|
||||
void free_initmem(void)
|
||||
{
|
||||
unsigned long addr;
|
||||
|
||||
addr = (unsigned long)&__init_begin;
|
||||
for (; addr < (unsigned long)&__init_end; addr += PAGE_SIZE) {
|
||||
addr = (unsigned long)__init_begin;
|
||||
for (; addr < (unsigned long)__init_end; addr += PAGE_SIZE) {
|
||||
virt_to_page(addr)->flags &= ~(1 << PG_reserved);
|
||||
init_page_count(virt_to_page(addr));
|
||||
free_page(addr);
|
||||
|
|
|
|||
|
|
@ -42,7 +42,6 @@ extern unsigned long mvme147_gettimeoffset (void);
|
|||
extern int mvme147_hwclk (int, struct rtc_time *);
|
||||
extern int mvme147_set_clock_mmss (unsigned long);
|
||||
extern void mvme147_reset (void);
|
||||
extern void mvme147_waitbut(void);
|
||||
|
||||
|
||||
static int bcd2int (unsigned char b);
|
||||
|
|
@ -115,8 +114,9 @@ static irqreturn_t mvme147_timer_int (int irq, void *dev_id)
|
|||
void mvme147_sched_init (irq_handler_t timer_routine)
|
||||
{
|
||||
tick_handler = timer_routine;
|
||||
request_irq (PCC_IRQ_TIMER1, mvme147_timer_int,
|
||||
IRQ_FLG_REPLACE, "timer 1", NULL);
|
||||
if (request_irq(PCC_IRQ_TIMER1, mvme147_timer_int, IRQ_FLG_REPLACE,
|
||||
"timer 1", NULL))
|
||||
pr_err("Couldn't register timer interrupt\n");
|
||||
|
||||
/* Init the clock with a value */
|
||||
/* our clock goes off every 6.25us */
|
||||
|
|
|
|||
|
|
@ -48,7 +48,6 @@ extern unsigned long mvme16x_gettimeoffset (void);
|
|||
extern int mvme16x_hwclk (int, struct rtc_time *);
|
||||
extern int mvme16x_set_clock_mmss (unsigned long);
|
||||
extern void mvme16x_reset (void);
|
||||
extern void mvme16x_waitbut(void);
|
||||
|
||||
int bcd2int (unsigned char b);
|
||||
|
||||
|
|
|
|||
|
|
@ -36,7 +36,6 @@
|
|||
#include <asm/machdep.h>
|
||||
#include <asm/q40_master.h>
|
||||
|
||||
extern irqreturn_t q40_process_int(int level, struct pt_regs *regs);
|
||||
extern void q40_init_IRQ(void);
|
||||
static void q40_get_model(char *model);
|
||||
extern void q40_sched_init(irq_handler_t handler);
|
||||
|
|
@ -47,8 +46,6 @@ static unsigned int q40_get_ss(void);
|
|||
static int q40_set_clock_mmss(unsigned long);
|
||||
static int q40_get_rtc_pll(struct rtc_pll_info *pll);
|
||||
static int q40_set_rtc_pll(struct rtc_pll_info *pll);
|
||||
extern void q40_waitbut(void);
|
||||
void q40_set_vectors(void);
|
||||
|
||||
extern void q40_mksound(unsigned int /*freq*/, unsigned int /*ticks*/);
|
||||
|
||||
|
|
|
|||
|
|
@ -27,23 +27,21 @@
|
|||
#include <asm/sun3mmu.h>
|
||||
#include <asm/rtc.h>
|
||||
#include <asm/machdep.h>
|
||||
#include <asm/idprom.h>
|
||||
#include <asm/intersil.h>
|
||||
#include <asm/irq.h>
|
||||
#include <asm/sections.h>
|
||||
#include <asm/segment.h>
|
||||
#include <asm/sun3ints.h>
|
||||
|
||||
extern char _text, _end;
|
||||
|
||||
char sun3_reserved_pmeg[SUN3_PMEGS_NUM];
|
||||
|
||||
extern unsigned long sun3_gettimeoffset(void);
|
||||
static void sun3_sched_init(irq_handler_t handler);
|
||||
extern void sun3_get_model (char* model);
|
||||
extern void idprom_init (void);
|
||||
extern int sun3_hwclk(int set, struct rtc_time *t);
|
||||
|
||||
volatile char* clock_va;
|
||||
extern volatile unsigned char* sun3_intreg;
|
||||
extern unsigned long availmem;
|
||||
unsigned long num_pages;
|
||||
|
||||
|
|
@ -149,7 +147,7 @@ void __init config_sun3(void)
|
|||
mach_halt = sun3_halt;
|
||||
mach_get_hardware_list = sun3_get_hardware_list;
|
||||
|
||||
memory_start = ((((int)&_end) + 0x2000) & ~0x1fff);
|
||||
memory_start = ((((unsigned long)_end) + 0x2000) & ~0x1fff);
|
||||
// PROM seems to want the last couple of physical pages. --m
|
||||
memory_end = *(romvec->pv_sun3mem) + PAGE_OFFSET - 2*PAGE_SIZE;
|
||||
|
||||
|
|
|
|||
|
|
@ -27,7 +27,6 @@
|
|||
#include <asm/mmu_context.h>
|
||||
#include <asm/dvma.h>
|
||||
|
||||
extern void prom_reboot (char *) __attribute__ ((__noreturn__));
|
||||
|
||||
#undef DEBUG_MMU_EMU
|
||||
#define DEBUG_PROM_MAPS
|
||||
|
|
|
|||
|
|
@ -105,7 +105,10 @@ void __init sun3_init_IRQ(void)
|
|||
m68k_setup_irq_controller(&sun3_irq_controller, IRQ_AUTO_1, 7);
|
||||
m68k_setup_user_interrupt(VEC_USER, 128, NULL);
|
||||
|
||||
request_irq(IRQ_AUTO_5, sun3_int5, 0, "int5", NULL);
|
||||
request_irq(IRQ_AUTO_7, sun3_int7, 0, "int7", NULL);
|
||||
request_irq(IRQ_USER+127, sun3_vec255, 0, "vec255", NULL);
|
||||
if (request_irq(IRQ_AUTO_5, sun3_int5, 0, "int5", NULL))
|
||||
pr_err("Couldn't register %s interrupt\n", "int5");
|
||||
if (request_irq(IRQ_AUTO_7, sun3_int7, 0, "int7", NULL))
|
||||
pr_err("Couldn't register %s interrupt\n", "int7");
|
||||
if (request_irq(IRQ_USER+127, sun3_vec255, 0, "vec255", NULL))
|
||||
pr_err("Couldn't register %s interrupt\n", "vec255");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,7 +23,6 @@
|
|||
#include "time.h"
|
||||
|
||||
volatile char *clock_va;
|
||||
extern volatile unsigned char *sun3_intreg;
|
||||
|
||||
extern void sun3_get_model(char *model);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue