#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 */
}
}
+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) {
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;
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)
printk("UNKNOWN!\n");
break;
};
-#ifdef PROM_DEBUG_CONSOLE
- register_console(&prom_console);
-#endif
#ifdef CONFIG_DUMMY_CONSOLE
conswitchp = &dummy_con;
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);
#endif
/* fall through */
default:
- sig_exit(signr, exit_code, &info);
+ sigaddset(¤t->pending.signal, signr);
+ recalc_sigpending(current);
+ current->flags |= PF_SIGNALED;
+ do_exit(exit_code);
/* NOT REACHED */
}
}
for_each_soc(s) {
irq = s->port[0].fc.irq;
- disable_irq (irq);
free_irq (irq, s);
fcp_release(&(s->port[0].fc), 2);
for_each_socal(s) {
irq = s->port[0].fc.irq;
- disable_irq (irq);
free_irq (irq, s);
fcp_release(&(s->port[0].fc), 2);
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. */
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);
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);
/* 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);
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);
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;
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);
iounmap(cs4231_chip->regs);
iounmap(cs4231_chip->eb2p);
iounmap(cs4231_chip->eb2c);
- disable_irq(cs4231_chip->irq2);
free_irq(cs4231_chip->irq2, drv);
#endif
}
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;
}
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;
}
#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)