diff options
author | 2001-03-02 01:53:30 +0000 | |
---|---|---|
committer | 2001-03-02 01:53:30 +0000 | |
commit | 1a92e83960c327db98fbfd6c46ed2fab102fe6e6 (patch) | |
tree | 0a256e3b6d71aee77b4fe8a8029a4e2dc7c39752 | |
parent | make pcvtfonts i386-only, as it is now (diff) | |
download | wireguard-openbsd-1a92e83960c327db98fbfd6c46ed2fab102fe6e6.tar.xz wireguard-openbsd-1a92e83960c327db98fbfd6c46ed2fab102fe6e6.zip |
Support video controllers which have two outputs which in openfirmware have
two children of which the "screen" device is one. This exists on some laptop
systems.
-rw-r--r-- | sys/arch/powerpc/powerpc/ofw_machdep.c | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/sys/arch/powerpc/powerpc/ofw_machdep.c b/sys/arch/powerpc/powerpc/ofw_machdep.c index c1ccc841087..bbb2a2e1c9b 100644 --- a/sys/arch/powerpc/powerpc/ofw_machdep.c +++ b/sys/arch/powerpc/powerpc/ofw_machdep.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ofw_machdep.c,v 1.19 2000/10/19 03:16:16 drahn Exp $ */ +/* $OpenBSD: ofw_machdep.c,v 1.20 2001/03/02 01:53:30 drahn Exp $ */ /* $NetBSD: ofw_machdep.c,v 1.1 1996/09/30 16:34:50 ws Exp $ */ /* @@ -432,9 +432,18 @@ ofwconprobe() printf("\n"); len = OF_getprop(stdout_node, "assigned-addresses", addr, sizeof(addr)); - if (len < sizeof(addr[0])) { - printf(": no address\n"); - return; + if (len == -1) { + int node; + node = OF_parent(stdout_node); + len = OF_getprop(node, "name", name, 20); + name[len] = 0; + + printf("using parent %s:", name); + len = OF_getprop(node, "assigned-addresses", + addr, sizeof(addr)); + if (len < sizeof(addr[0])) { + panic(": no address\n"); + } } memtag = ofw_make_tag(NULL, pcibus(addr[0].phys_hi), pcidev(addr[0].phys_hi), @@ -472,7 +481,6 @@ ofwconprobe() &pa, pcibus(addr[1].phys_hi), pcidev(addr[1].phys_hi), pcifunc(addr[1].phys_hi)); - #if 1 for (i = 0; i < cons_linebytes * cons_height; i++) { bus_space_write_1(cons_membus, |