diff options
author | Miod Vallat <miod@cvs.openbsd.org> | 2007-12-28 20:44:40 +0000 |
---|---|---|
committer | Miod Vallat <miod@cvs.openbsd.org> | 2007-12-28 20:44:40 +0000 |
commit | fef433a4508472ed9b47dc068e76fb5cc743bd93 (patch) | |
tree | b1cbd5f2f12fee61e955fcfd027399338d406187 /sys/arch/vax/vsa | |
parent | 68153d70629847b689dff52e9ddc737ad5a39d60 (diff) |
If initializing a frame buffer as glass console fails, instead of an invisible
panic (for you ichc fans out there), disable the wscons console and force a
console device reselection, which ends up in picking a serial console.
This should not happen, but just in case, it's a less rude behaviour.
Diffstat (limited to 'sys/arch/vax/vsa')
-rw-r--r-- | sys/arch/vax/vsa/gpx.c | 12 | ||||
-rw-r--r-- | sys/arch/vax/vsa/lcg.c | 12 | ||||
-rw-r--r-- | sys/arch/vax/vsa/lcspx.c | 21 | ||||
-rw-r--r-- | sys/arch/vax/vsa/smg.c | 12 |
4 files changed, 31 insertions, 26 deletions
diff --git a/sys/arch/vax/vsa/gpx.c b/sys/arch/vax/vsa/gpx.c index b25f07fcb05..01d325975fd 100644 --- a/sys/arch/vax/vsa/gpx.c +++ b/sys/arch/vax/vsa/gpx.c @@ -1,4 +1,4 @@ -/* $OpenBSD: gpx.c,v 1.17 2007/12/09 21:53:01 miod Exp $ */ +/* $OpenBSD: gpx.c,v 1.18 2007/12/28 20:44:39 miod Exp $ */ /* * Copyright (c) 2006 Miodrag Vallat. * @@ -1229,7 +1229,7 @@ gpx_resetcmap(struct gpx_screen *ss) */ int gpxcnprobe(void); -void gpxcninit(void); +int gpxcninit(void); int gpxcnprobe() @@ -1279,7 +1279,7 @@ gpxcnprobe() * Because it's called before the VM system is initialized, virtual memory * for the framebuffer can be stolen directly without disturbing anything. */ -void +int gpxcninit() { struct gpx_screen *ss = &gpx_consscr; @@ -1309,11 +1309,13 @@ gpxcninit() virtual_avail = round_page(virtual_avail); - /* this had better not fail as we can't recover there */ + /* this had better not fail */ if (gpx_setup_screen(ss) != 0) - panic(__func__); + return (1); ri = &ss->ss_ri; ri->ri_ops.alloc_attr(ri, 0, 0, 0, &defattr); wsdisplay_cnattach(&gpx_stdscreen, ri, 0, 0, defattr); + + return (0); } diff --git a/sys/arch/vax/vsa/lcg.c b/sys/arch/vax/vsa/lcg.c index 416ab9265ca..c52a601b8a9 100644 --- a/sys/arch/vax/vsa/lcg.c +++ b/sys/arch/vax/vsa/lcg.c @@ -1,4 +1,4 @@ -/* $OpenBSD: lcg.c,v 1.12 2007/12/18 19:39:27 miod Exp $ */ +/* $OpenBSD: lcg.c,v 1.13 2007/12/28 20:44:39 miod Exp $ */ /* * Copyright (c) 2006 Miodrag Vallat. * @@ -706,7 +706,7 @@ lcg_resetcmap(struct lcg_screen *ss) */ int lcgcnprobe(void); -void lcgcninit(void); +int lcgcninit(void); int lcgcnprobe() @@ -764,7 +764,7 @@ lcgcnprobe() * Because it's called before the VM system is initialized, virtual memory * for the framebuffer can be stolen directly without disturbing anything. */ -void +int lcgcninit() { struct lcg_screen *ss = &lcg_consscr; @@ -798,11 +798,13 @@ lcgcninit() virtual_avail = round_page(virtual_avail); - /* this had better not fail as we can't recover there */ + /* this had better not fail */ if (lcg_setup_screen(ss) != 0) - panic(__func__); + return (1); ri = &ss->ss_ri; ri->ri_ops.alloc_attr(ri, 0, 0, 0, &defattr); wsdisplay_cnattach(&lcg_stdscreen, ri, 0, 0, defattr); + + return (0); } diff --git a/sys/arch/vax/vsa/lcspx.c b/sys/arch/vax/vsa/lcspx.c index 508ccfd4942..a6bf26497a0 100644 --- a/sys/arch/vax/vsa/lcspx.c +++ b/sys/arch/vax/vsa/lcspx.c @@ -1,4 +1,4 @@ -/* $OpenBSD: lcspx.c,v 1.13 2007/12/09 21:54:00 miod Exp $ */ +/* $OpenBSD: lcspx.c,v 1.14 2007/12/28 20:44:39 miod Exp $ */ /* * Copyright (c) 2006 Miodrag Vallat. * @@ -170,6 +170,9 @@ lcspx_vsbus_match(struct device *parent, void *vcf, void *aux) volatile struct adder *adder; u_short status; + if (va->va_paddr != LCSPX_REG_ADDR) + return (0); + switch (vax_boardtype) { default: return (0); @@ -177,9 +180,6 @@ lcspx_vsbus_match(struct device *parent, void *vcf, void *aux) case VAX_BTYP_410: case VAX_BTYP_420: case VAX_BTYP_43: - if (va->va_paddr != LCSPX_REG_ADDR) - return (0); - /* not present on microvaxes */ if ((vax_confdata & KA420_CFG_MULTU) != 0) return (0); @@ -211,9 +211,6 @@ lcspx_vsbus_match(struct device *parent, void *vcf, void *aux) break; case VAX_BTYP_49: - if (va->va_paddr != LCSPX_REG_ADDR) - return (0); - if ((vax_confdata & 0x12) != 0x02) return (0); @@ -622,7 +619,7 @@ lcspx_resetcmap(struct lcspx_screen *ss) */ int lcspxcnprobe(void); -void lcspxcninit(void); +int lcspxcninit(void); int lcspxcnprobe() @@ -699,7 +696,7 @@ lcspxcnprobe() * Because it's called before the VM system is initialized, virtual memory * for the framebuffer can be stolen directly without disturbing anything. */ -void +int lcspxcninit() { struct lcspx_screen *ss = &lcspx_consscr; @@ -765,11 +762,13 @@ lcspxcninit() virtual_avail = round_page(virtual_avail); - /* this had better not fail as we can't recover there */ + /* this had better not fail */ if (lcspx_setup_screen(ss, width, height) != 0) - panic(__func__); + return (1); ri = &ss->ss_ri; ri->ri_ops.alloc_attr(ri, 0, 0, 0, &defattr); wsdisplay_cnattach(&lcspx_stdscreen, ri, 0, 0, defattr); + + return (0); } diff --git a/sys/arch/vax/vsa/smg.c b/sys/arch/vax/vsa/smg.c index 3f0fc6ef40c..b22617f2213 100644 --- a/sys/arch/vax/vsa/smg.c +++ b/sys/arch/vax/vsa/smg.c @@ -1,4 +1,4 @@ -/* $OpenBSD: smg.c,v 1.20 2007/10/01 16:11:19 krw Exp $ */ +/* $OpenBSD: smg.c,v 1.21 2007/12/28 20:44:39 miod Exp $ */ /* $NetBSD: smg.c,v 1.21 2000/03/23 06:46:44 thorpej Exp $ */ /* * Copyright (c) 2006, Miodrag Vallat @@ -810,7 +810,7 @@ smg_erasecols(void *cookie, int row, int col, int num, long attr) */ int smgcnprobe(void); -void smgcninit(void); +int smgcninit(void); int smgcnprobe() @@ -839,7 +839,7 @@ smgcnprobe() * Because it's called before the VM system is initialized, virtual memory * for the framebuffer can be stolen directly without disturbing anything. */ -void +int smgcninit() { struct smg_screen *ss = &smg_consscr; @@ -857,11 +857,13 @@ smgcninit() virtual_avail = round_page(virtual_avail); - /* this had better not fail as we can't recover there */ + /* this had better not fail */ if (smg_setup_screen(ss) != 0) - panic(__func__); + return (1); ri = &ss->ss_ri; ri->ri_ops.alloc_attr(ri, 0, 0, 0, &defattr); wsdisplay_cnattach(&smg_stdscreen, ri, 0, 0, defattr); + + return (0); } |