Commit e2349697 authored by Linus Torvalds's avatar Linus Torvalds

Merge bk://are.twiddle.net/axp-2.5

into home.transmeta.com:/home/torvalds/v2.5/linux
parents 3c0ba99c ba646b39
...@@ -1076,7 +1076,7 @@ marvel_agp_info(void) ...@@ -1076,7 +1076,7 @@ marvel_agp_info(void)
/* /*
* Fill it in. * Fill it in.
*/ */
agp->type = 0 /* FIXME: ALPHA_CORE_AGP */; agp->type = ALPHA_CORE_AGP;
agp->hose = hose; agp->hose = hose;
agp->private = NULL; agp->private = NULL;
agp->ops = &marvel_agp_ops; agp->ops = &marvel_agp_ops;
......
...@@ -764,7 +764,7 @@ titan_agp_info(void) ...@@ -764,7 +764,7 @@ titan_agp_info(void)
/* /*
* Fill it in. * Fill it in.
*/ */
agp->type = 0 /* FIXME: ALPHA_CORE_AGP */; agp->type = ALPHA_CORE_AGP;
agp->hose = hose; agp->hose = hose;
agp->private = port; agp->private = port;
agp->ops = &titan_agp_ops; agp->ops = &titan_agp_ops;
......
...@@ -393,13 +393,10 @@ pcibios_set_master(struct pci_dev *dev) ...@@ -393,13 +393,10 @@ pcibios_set_master(struct pci_dev *dev)
} }
static void __init static void __init
pcibios_claim_console_setup(void) pcibios_claim_one_bus(struct pci_bus *b)
{ {
struct list_head *lb;
for(lb = pci_root_buses.next; lb != &pci_root_buses; lb = lb->next) {
struct pci_bus *b = pci_bus_b(lb);
struct list_head *ld; struct list_head *ld;
struct pci_bus *child_bus;
for (ld = b->devices.next; ld != &b->devices; ld = ld->next) { for (ld = b->devices.next; ld != &b->devices; ld = ld->next) {
struct pci_dev *dev = pci_dev_b(ld); struct pci_dev *dev = pci_dev_b(ld);
...@@ -413,6 +410,19 @@ pcibios_claim_console_setup(void) ...@@ -413,6 +410,19 @@ pcibios_claim_console_setup(void)
pci_claim_resource(dev, i); pci_claim_resource(dev, i);
} }
} }
list_for_each_entry(child_bus, &b->children, node)
pcibios_claim_one_bus(child_bus);
}
static void __init
pcibios_claim_console_setup(void)
{
struct list_head *lb;
for(lb = pci_root_buses.next; lb != &pci_root_buses; lb = lb->next) {
struct pci_bus *b = pci_bus_b(lb);
pcibios_claim_one_bus(b);
} }
} }
......
...@@ -78,6 +78,8 @@ void ...@@ -78,6 +78,8 @@ void
nautilus_kill_arch(int mode) nautilus_kill_arch(int mode)
{ {
struct pci_bus *bus = pci_isa_hose->bus; struct pci_bus *bus = pci_isa_hose->bus;
u32 pmuport;
int off;
switch (mode) { switch (mode) {
case LINUX_REBOOT_CMD_RESTART: case LINUX_REBOOT_CMD_RESTART:
...@@ -92,14 +94,18 @@ nautilus_kill_arch(int mode) ...@@ -92,14 +94,18 @@ nautilus_kill_arch(int mode)
break; break;
case LINUX_REBOOT_CMD_POWER_OFF: case LINUX_REBOOT_CMD_POWER_OFF:
{ /* Assume M1543C */
u32 pmuport; off = 0x2000; /* SLP_TYPE = 0, SLP_EN = 1 */
pci_bus_read_config_dword(bus, 0x88, 0x10, &pmuport); pci_bus_read_config_dword(bus, 0x88, 0x10, &pmuport);
if (!pmuport) {
/* M1535D/D+ */
off = 0x3400; /* SLP_TYPE = 5, SLP_EN = 1 */
pci_bus_read_config_dword(bus, 0x88, 0xe0, &pmuport);
}
pmuport &= 0xfffe; pmuport &= 0xfffe;
outl(0xffff, pmuport); /* clear pending events */ outw(0xffff, pmuport); /* Clear pending events. */
outw(0x2000, pmuport+4); /* power off */ outw(off, pmuport + 4);
/* NOTREACHED */ /* NOTREACHED */
}
break; break;
} }
} }
......
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