diff options
author | jake <jake@FreeBSD.org> | 2003-01-26 01:56:20 +0000 |
---|---|---|
committer | jake <jake@FreeBSD.org> | 2003-01-26 01:56:20 +0000 |
commit | 2215fbe46cad96101489aa945aae93d3fa8fa86a (patch) | |
tree | 7636643bd24aecf119d1ccf3d9234e699bcad115 /sys/dev/sab | |
parent | d707debfda55e00a3990cc04029a230850160c0b (diff) | |
download | FreeBSD-src-2215fbe46cad96101489aa945aae93d3fa8fa86a.zip FreeBSD-src-2215fbe46cad96101489aa945aae93d3fa8fa86a.tar.gz |
Allow defaulting the console to ttya when it sets to screen and keyboard
in the prom but no keyboard is plugged in.
Diffstat (limited to 'sys/dev/sab')
-rw-r--r-- | sys/dev/sab/sab.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/sys/dev/sab/sab.c b/sys/dev/sab/sab.c index 46f0b3b..2daf97b 100644 --- a/sys/dev/sab/sab.c +++ b/sys/dev/sab/sab.c @@ -1268,12 +1268,15 @@ sabtty_console(device_t dev, char *mode, int len) OF_getprop(options, "input-device", input, sizeof(input)) == -1 || OF_getprop(options, "output-device", output, sizeof(output)) == -1) return (0); - if (ebus_get_node(parent) == OF_instance_to_package(stdin) && - ebus_get_node(parent) == OF_instance_to_package(stdout) && - strcmp(input, device_get_desc(dev)) == 0 && - strcmp(output, device_get_desc(dev)) == 0) { + if (ebus_get_node(parent) != OF_instance_to_package(stdin) || + ebus_get_node(parent) != OF_instance_to_package(stdout)) + return (0); + if ((strcmp(input, device_get_desc(dev)) == 0 && + strcmp(output, device_get_desc(dev)) == 0) || + (strcmp(input, "keyboard") == 0 && strcmp(output, "screen") == 0 && + (device_get_unit(dev) & 1) == 0)) { if (mode != NULL) { - sprintf(name, "%s-mode", input); + sprintf(name, "%s-mode", device_get_desc(dev)); return (OF_getprop(options, name, mode, len) != -1); } else return (1); |