diff options
author | Linus Torvalds <torvalds@g5.osdl.org> | 2006-07-14 21:57:23 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-07-14 21:57:23 -0700 |
commit | 5694ca9f46202c50df525472abb6d8c1dee4f8eb (patch) | |
tree | c16a4ff264b024ea2017a88a29d8f03695bd2656 /arch | |
parent | 76aba64a6608fcaa02c715e93c572192f3621195 (diff) | |
parent | ee7022dcfbf660727d6b8553cb0dbc0d4eae8f44 (diff) | |
download | linux-5694ca9f46202c50df525472abb6d8c1dee4f8eb.tar.gz linux-5694ca9f46202c50df525472abb6d8c1dee4f8eb.tar.bz2 linux-5694ca9f46202c50df525472abb6d8c1dee4f8eb.zip |
Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6
* master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6:
[SPARC64] Fix PSYCHO PCI controler init.
[SPARC64] psycho: Fix pbm->name handling in pbm_register_toplevel_resources()
[SERIAL] sunsab: Fix significant typo in sab_probe()
[SERIAL] sunsu: Report keyboard and mouse ports in kernel log.
[SPARC64]: Make sure IRQs are disabled properly during early boot.
Diffstat (limited to 'arch')
-rw-r--r-- | arch/sparc64/kernel/head.S | 13 | ||||
-rw-r--r-- | arch/sparc64/kernel/pci_psycho.c | 6 | ||||
-rw-r--r-- | arch/sparc64/kernel/time.c | 2 |
3 files changed, 8 insertions, 13 deletions
diff --git a/arch/sparc64/kernel/head.S b/arch/sparc64/kernel/head.S index 75684b56767e..c8e9dc9d68a9 100644 --- a/arch/sparc64/kernel/head.S +++ b/arch/sparc64/kernel/head.S @@ -551,9 +551,10 @@ setup_trap_table: save %sp, -192, %sp /* Force interrupts to be disabled. */ - rdpr %pstate, %o1 - andn %o1, PSTATE_IE, %o1 + rdpr %pstate, %l0 + andn %l0, PSTATE_IE, %o1 wrpr %o1, 0x0, %pstate + rdpr %pil, %l1 wrpr %g0, 15, %pil /* Make the firmware call to jump over to the Linux trap table. */ @@ -622,11 +623,9 @@ setup_trap_table: call init_irqwork_curcpu nop - /* Now we can turn interrupts back on. */ - rdpr %pstate, %o1 - or %o1, PSTATE_IE, %o1 - wrpr %o1, 0, %pstate - wrpr %g0, 0x0, %pil + /* Now we can restore interrupt state. */ + wrpr %l0, 0, %pstate + wrpr %l1, 0x0, %pil ret restore diff --git a/arch/sparc64/kernel/pci_psycho.c b/arch/sparc64/kernel/pci_psycho.c index 197a7ffd57ee..1ec0aab68c08 100644 --- a/arch/sparc64/kernel/pci_psycho.c +++ b/arch/sparc64/kernel/pci_psycho.c @@ -1099,9 +1099,6 @@ static void pbm_register_toplevel_resources(struct pci_controller_info *p, { char *name = pbm->name; - sprintf(name, "PSYCHO%d PBM%c", - p->index, - (pbm == &p->pbm_A ? 'A' : 'B')); pbm->io_space.name = pbm->mem_space.name = name; request_resource(&ioport_resource, &pbm->io_space); @@ -1203,12 +1200,13 @@ static void psycho_pbm_init(struct pci_controller_info *p, pbm->io_space.flags = IORESOURCE_IO; pbm->mem_space.end = pbm->mem_space.start + PSYCHO_MEMSPACE_SIZE; pbm->mem_space.flags = IORESOURCE_MEM; - pbm_register_toplevel_resources(p, pbm); pbm->parent = p; pbm->prom_node = dp; pbm->name = dp->full_name; + pbm_register_toplevel_resources(p, pbm); + printk("%s: PSYCHO PCI Bus Module ver[%x:%x]\n", pbm->name, pbm->chip_version, pbm->chip_revision); diff --git a/arch/sparc64/kernel/time.c b/arch/sparc64/kernel/time.c index b43de647ba73..094d3e35be18 100644 --- a/arch/sparc64/kernel/time.c +++ b/arch/sparc64/kernel/time.c @@ -928,8 +928,6 @@ static void sparc64_start_timers(void) __asm__ __volatile__("wrpr %0, 0x0, %%pstate" : /* no outputs */ : "r" (pstate)); - - local_irq_enable(); } struct freq_table { |