diff options
author | Ralf Baechle <ralf@linux-mips.org> | 1998-08-25 09:12:35 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 1998-08-25 09:12:35 +0000 |
commit | c7fc24dc4420057f103afe8fc64524ebc25c5d37 (patch) | |
tree | 3682407a599b8f9f03fc096298134cafba1c9b2f /arch/sparc64/kernel/time.c | |
parent | 1d793fade8b063fde3cf275bf1a5c2d381292cd9 (diff) |
o Merge with Linux 2.1.116.
o New Newport console code.
o New G364 console code.
Diffstat (limited to 'arch/sparc64/kernel/time.c')
-rw-r--r-- | arch/sparc64/kernel/time.c | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/arch/sparc64/kernel/time.c b/arch/sparc64/kernel/time.c index debb08888..364f2b4a1 100644 --- a/arch/sparc64/kernel/time.c +++ b/arch/sparc64/kernel/time.c @@ -1,4 +1,4 @@ -/* $Id: time.c,v 1.13 1998/03/15 17:23:47 ecd Exp $ +/* $Id: time.c,v 1.15 1998/05/12 22:38:29 ecd Exp $ * time.c: UltraSparc timer and TOD clock support. * * Copyright (C) 1997 David S. Miller (davem@caip.rutgers.edu) @@ -227,13 +227,17 @@ __initfunc(void clock_probe(void)) struct linux_prom_registers clk_reg[2]; char model[128]; int node, busnd = -1, err; +#ifdef CONFIG_PCI + struct linux_ebus *ebus = 0; +#endif if(central_bus != NULL) { busnd = central_bus->child->prom_node; } #ifdef CONFIG_PCI else if (ebus_chain != NULL) { - busnd = ebus_chain->prom_node; + ebus = ebus_chain; + busnd = ebus->prom_node; } #endif else { @@ -253,6 +257,15 @@ __initfunc(void clock_probe(void)) strcmp(model, "mk48t08") && strcmp(model, "mk48t59")) { node = prom_getsibling(node); +#ifdef CONFIG_PCI + if ((node == 0) && ebus) { + ebus = ebus->next; + if (ebus) { + busnd = ebus->prom_node; + node = prom_getchild(busnd); + } + } +#endif if(node == 0) { prom_printf("clock_probe: Cannot find timer chip\n"); prom_halt(); @@ -275,7 +288,7 @@ __initfunc(void clock_probe(void)) else if (ebus_chain) { struct linux_ebus_device *edev; - for_each_ebusdev(edev, ebus_chain) + for_each_ebusdev(edev, ebus) if (edev->prom_node == node) break; if (!edev) { |