patch-2.1.115 linux/arch/sparc64/kernel/time.c
Next file: linux/arch/sparc64/kernel/trampoline.S
Previous file: linux/arch/sparc64/kernel/systbls.S
Back to the patch index
Back to the overall index
- Lines: 50
- Date:
Tue Aug 4 16:03:35 1998
- Orig file:
v2.1.114/linux/arch/sparc64/kernel/time.c
- Orig date:
Thu Apr 23 20:21:32 1998
diff -u --recursive --new-file v2.1.114/linux/arch/sparc64/kernel/time.c linux/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 @@
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 @@
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 @@
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) {
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov