Commit 47f29261 authored by Joshua Uziel's avatar Joshua Uziel Committed by David S. Miller

Merge 2.4.x VGER sparc32 changes into 2.5.x

parent 91d6d308
......@@ -47,8 +47,6 @@
#include <asm/hardirq.h>
#include <asm/machines.h>
#undef PROM_DEBUG_CONSOLE
struct screen_info screen_info = {
0, 0, /* orig-x, orig-y */
0, /* unused */
......@@ -134,6 +132,19 @@ void kernel_enter_debugger(void)
}
}
static void
prom_console_write(struct console *con, const char *s, unsigned n)
{
prom_printf("%s", s);
}
static struct console prom_debug_console = {
name: "debug",
write: prom_console_write,
flags: CON_PRINTBUFFER,
index: -1,
};
int obp_system_intr(void)
{
if (boot_flags & BOOTME_KGDB) {
......@@ -166,6 +177,10 @@ static void __init process_switch(char c)
prom_printf("boot_flags_init: Halt!\n");
prom_halt();
break;
case 'p':
/* Use PROM debug console. */
register_console(&prom_debug_console);
break;
default:
printk("Unknown boot switch (-%c)\n", c);
break;
......@@ -280,21 +295,6 @@ struct tt_entry *sparc_ttable;
struct pt_regs fake_swapper_regs;
#ifdef PROM_DEBUG_CONSOLE
static void
prom_console_write(struct console *con, const char *s, unsigned n)
{
prom_printf("%s", s);
}
static struct console prom_console = {
name: "debug",
write: prom_console_write,
flags: CON_PRINTBUFFER,
index: -1,
};
#endif
extern void paging_init(void);
void __init setup_arch(char **cmdline_p)
......@@ -348,9 +348,6 @@ void __init setup_arch(char **cmdline_p)
printk("UNKNOWN!\n");
break;
};
#ifdef PROM_DEBUG_CONSOLE
register_console(&prom_console);
#endif
#ifdef CONFIG_DUMMY_CONSOLE
conswitchp = &dummy_con;
......@@ -381,7 +378,7 @@ void __init setup_arch(char **cmdline_p)
if (!root_flags)
root_mountflags &= ~MS_RDONLY;
ROOT_DEV = to_kdev_t(root_dev);
#ifdef CONFIG_BLK_DEV_RAM
#ifdef CONFIG_BLK_DEV_INITRD
rd_image_start = ram_flags & RAMDISK_IMAGE_START_MASK;
rd_prompt = ((ram_flags & RAMDISK_PROMPT_FLAG) != 0);
rd_doload = ((ram_flags & RAMDISK_LOAD_FLAG) != 0);
......
......@@ -1280,7 +1280,10 @@ asmlinkage int do_signal(sigset_t *oldset, struct pt_regs * regs,
#endif
/* fall through */
default:
sig_exit(signr, exit_code, &info);
sigaddset(&current->pending.signal, signr);
recalc_sigpending(current);
current->flags |= PF_SIGNALED;
do_exit(exit_code);
/* NOT REACHED */
}
}
......
......@@ -742,7 +742,6 @@ static void __exit soc_cleanup(void)
for_each_soc(s) {
irq = s->port[0].fc.irq;
disable_irq (irq);
free_irq (irq, s);
fcp_release(&(s->port[0].fc), 2);
......
......@@ -881,7 +881,6 @@ static void __exit socal_cleanup(void)
for_each_socal(s) {
irq = s->port[0].fc.irq;
disable_irq (irq);
free_irq (irq, s);
fcp_release(&(s->port[0].fc), 2);
......
......@@ -1619,7 +1619,6 @@ static int amd7930_attach(struct sparcaudio_driver *drv, int node,
info->irq = irq.pri;
request_irq(info->irq, amd7930_interrupt,
SA_INTERRUPT, "amd7930", drv);
enable_irq(info->irq);
amd7930_enable_ints(info);
/* Initalize the local copy of the MAP registers. */
......@@ -1644,7 +1643,6 @@ static int amd7930_attach(struct sparcaudio_driver *drv, int node,
err = register_sparcaudio_driver(drv, 1);
if (err < 0) {
printk(KERN_ERR "amd7930: unable to register\n");
disable_irq(info->irq);
free_irq(info->irq, drv);
sbus_iounmap(info->regs, info->regs_size);
kfree(drv->private);
......@@ -1666,7 +1664,6 @@ static void __exit amd7930_detach(struct sparcaudio_driver *drv)
unregister_sparcaudio_driver(drv, 1);
amd7930_idle(info);
disable_irq(info->irq);
free_irq(info->irq, drv);
sbus_iounmap(info->regs, info->regs_size);
kfree(drv->private);
......
......@@ -2210,7 +2210,6 @@ static int cs4231_attach(struct sparcaudio_driver *drv,
/* Attach the interrupt handler to the audio interrupt. */
cs4231_chip->irq = sdev->irqs[0];
request_irq(cs4231_chip->irq, cs4231_interrupt, SA_SHIRQ, "cs4231", drv);
enable_irq(cs4231_chip->irq);
cs4231_chip->nirqs = 1;
cs4231_enable_interrupts(drv);
......@@ -2224,7 +2223,6 @@ static int cs4231_attach(struct sparcaudio_driver *drv,
if (err < 0) {
printk(KERN_ERR "cs4231: unable to register\n");
cs4231_disable_interrupts(drv);
disable_irq(cs4231_chip->irq);
free_irq(cs4231_chip->irq, drv);
sbus_iounmap(cs4231_chip->regs, cs4231_chip->regs_size);
kfree(drv->private);
......@@ -2312,9 +2310,7 @@ static int eb4231_attach(struct sparcaudio_driver *drv,
bail:
printk(KERN_ERR "cs4231: unable to register\n");
cs4231_disable_interrupts(drv);
disable_irq(cs4231_chip->irq);
free_irq(cs4231_chip->irq, drv);
disable_irq(cs4231_chip->irq2);
free_irq(cs4231_chip->irq2, drv);
kfree(drv->private);
return -EIO;
......@@ -2371,7 +2367,6 @@ static void __exit cs4231_detach(struct sparcaudio_driver *drv)
cs4231_disable_interrupts(drv);
unregister_sparcaudio_driver(drv, 1);
disable_irq(cs4231_chip->irq);
free_irq(cs4231_chip->irq, drv);
if (!(cs4231_chip->status & CS_STATUS_IS_EBUS)) {
sbus_iounmap(cs4231_chip->regs, cs4231_chip->regs_size);
......@@ -2380,7 +2375,6 @@ static void __exit cs4231_detach(struct sparcaudio_driver *drv)
iounmap(cs4231_chip->regs);
iounmap(cs4231_chip->eb2p);
iounmap(cs4231_chip->eb2c);
disable_irq(cs4231_chip->irq2);
free_irq(cs4231_chip->irq2, drv);
#endif
}
......
......@@ -389,15 +389,11 @@ static int __init ts102_uctrl_init(void)
if(!driver->irq)
driver->irq = tmp_irq[0].pri;
request_irq(driver->irq, uctrl_interrupt, 0,
"uctrl", driver);
enable_irq(driver->irq);
request_irq(driver->irq, uctrl_interrupt, 0, "uctrl", driver);
if (misc_register(&uctrl_dev)) {
printk("%s: unable to get misc minor %d\n",
__FUNCTION__, uctrl_dev.minor);
disable_irq(driver->irq);
free_irq(driver->irq, driver);
return -ENODEV;
}
......@@ -414,10 +410,8 @@ static void __exit ts102_uctrl_cleanup(void)
struct uctrl_driver *driver = &drv;
misc_deregister(&uctrl_dev);
if (driver->irq) {
disable_irq(driver->irq);
if (driver->irq)
free_irq(driver->irq, driver);
}
if (driver->regs)
driver->regs = 0;
}
......
......@@ -293,6 +293,9 @@ BTFIXUPDEF_CALL_CONST(pte_t, pte_mkyoung, pte_t)
#define page_pte_prot(page, prot) mk_pte(page, prot)
#define page_pte(page) page_pte_prot(page, __pgprot(0))
/* Permanent address of a page. */
#define page_address(page) ((page)->virtual)
BTFIXUPDEF_CALL(struct page *, pte_page, pte_t)
#define pte_page(pte) BTFIXUP_CALL(pte_page)(pte)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment