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.
This commit is contained in:
commit
5694ca9f46
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -1052,7 +1052,7 @@ static int __devinit sab_probe(struct of_device *op, const struct of_device_id *
|
|||
if (err)
|
||||
return err;
|
||||
|
||||
err = sunsab_init_one(&up[0], op, 0,
|
||||
err = sunsab_init_one(&up[1], op, 0,
|
||||
(inst * 2) + 1);
|
||||
if (err) {
|
||||
of_iounmap(up[0].port.membase,
|
||||
|
|
|
@ -1200,6 +1200,11 @@ static int __init sunsu_kbd_ms_init(struct uart_sunsu_port *up)
|
|||
if (up->port.type == PORT_UNKNOWN)
|
||||
return -ENODEV;
|
||||
|
||||
printk("%s: %s port at %lx, irq %u\n",
|
||||
to_of_device(up->port.dev)->node->full_name,
|
||||
(up->su_type == SU_PORT_KBD) ? "Keyboard" : "Mouse",
|
||||
up->port.mapbase, up->port.irq);
|
||||
|
||||
#ifdef CONFIG_SERIO
|
||||
serio = &up->serio;
|
||||
serio->port_data = up;
|
||||
|
|
Loading…
Reference in New Issue