mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-07-16 16:32:51 +00:00
dm: vga: remove all the assertion.
To avoid assertions in devicemodel, remove all the assert() in vga.c, use print error message to check errors. Tracked-On: #8125 Signed-off-by: Sun Peng <peng.p.sun@linux.intel.com> Reviewed-by: Huang, Yonghua <yonghua.huang@intel.com> Acked-by: Wang, Yu1 <yu1.wang@intel.com>
This commit is contained in:
parent
669ebd0fd7
commit
7a13807abe
@ -8,7 +8,6 @@
|
||||
#include <sys/param.h>
|
||||
|
||||
#include <stdint.h>
|
||||
#include <assert.h>
|
||||
#include <pthread.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdio.h>
|
||||
@ -339,7 +338,8 @@ vga_mem_rd_handler(struct vmctx *ctx, uint64_t addr, void *arg1)
|
||||
/*
|
||||
* monochrome text mode: base 0xb0000 size 32kb
|
||||
*/
|
||||
assert(0);
|
||||
pr_err("VGA: doesn't support monichrome text mode.\n");
|
||||
return 0;
|
||||
case 0x3:
|
||||
/*
|
||||
* color text mode and CGA: base 0xb8000 size 32kb
|
||||
@ -357,7 +357,8 @@ vga_mem_rd_handler(struct vmctx *ctx, uint64_t addr, void *arg1)
|
||||
|
||||
if (vd->vga_gc.gc_mode_rm) {
|
||||
/* read mode 1 */
|
||||
assert(0);
|
||||
pr_err("VGA GC: doesn't support read mode 1.\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
map_sel = vd->vga_gc.gc_read_map_sel;
|
||||
@ -403,7 +404,8 @@ vga_mem_wr_handler(struct vmctx *ctx, uint64_t addr, uint8_t val, void *arg1)
|
||||
/*
|
||||
* monochrome text mode: base 0xb0000 size 32kb
|
||||
*/
|
||||
assert(0);
|
||||
pr_err("VGA: doesn't support monichrome text mode.\n");
|
||||
return;
|
||||
case 0x3:
|
||||
/*
|
||||
* color text mode and CGA: base 0xb8000 size 32kb
|
||||
@ -778,8 +780,7 @@ vga_port_in_handler(struct vmctx *ctx, int in, int port, int bytes,
|
||||
break;
|
||||
default:
|
||||
pr_err("VGA CRTC: port 0x%04x at index %d\n", port, vd->vga_crtc.crtc_index);
|
||||
assert(0);
|
||||
break;
|
||||
return (-1);
|
||||
}
|
||||
break;
|
||||
case ATC_IDX_PORT:
|
||||
@ -807,8 +808,7 @@ vga_port_in_handler(struct vmctx *ctx, int in, int port, int bytes,
|
||||
break;
|
||||
default:
|
||||
pr_err("VGA ATC inb 0x%04x at index %d\n", port , vd->vga_atc.atc_index);
|
||||
assert(0);
|
||||
break;
|
||||
return (-1);
|
||||
}
|
||||
break;
|
||||
case SEQ_IDX_PORT:
|
||||
@ -833,8 +833,7 @@ vga_port_in_handler(struct vmctx *ctx, int in, int port, int bytes,
|
||||
break;
|
||||
default:
|
||||
pr_err("VGA SEQ: inb 0x%04x at index %d\n", port, vd->vga_seq.seq_index);
|
||||
assert(0);
|
||||
break;
|
||||
return (-1);
|
||||
}
|
||||
break;
|
||||
case DAC_DATA_PORT:
|
||||
@ -880,16 +879,15 @@ vga_port_in_handler(struct vmctx *ctx, int in, int port, int bytes,
|
||||
break;
|
||||
default:
|
||||
pr_err("VGA GC: inb 0x%04x at index %d\n", port, vd->vga_crtc.crtc_index);
|
||||
assert(0);
|
||||
break;
|
||||
return (-1);
|
||||
}
|
||||
break;
|
||||
case GEN_MISC_OUTPUT_PORT:
|
||||
*val = vd->vga_misc;
|
||||
break;
|
||||
case GEN_INPUT_STS0_PORT:
|
||||
assert(0);
|
||||
break;
|
||||
pr_err("VGA: doesn't support Status #0.\n");
|
||||
return (-1);
|
||||
case GEN_INPUT_STS1_MONO_PORT:
|
||||
case GEN_INPUT_STS1_COLOR_PORT:
|
||||
vd->vga_atc.atc_flipflop = 0;
|
||||
@ -899,15 +897,13 @@ vga_port_in_handler(struct vmctx *ctx, int in, int port, int bytes,
|
||||
break;
|
||||
case GEN_FEATURE_CTRL_PORT:
|
||||
// OpenBvd calls this with bytes = 1
|
||||
//assert(0);
|
||||
*val = 0;
|
||||
break;
|
||||
case 0x3c3:
|
||||
*val = 0;
|
||||
break;
|
||||
default:
|
||||
printf("vga_port_in_handler() unhandled port 0x%x\n", port);
|
||||
//assert(0);
|
||||
pr_err("%s: unhandled port 0x%x\n", __func__, port);
|
||||
return (-1);
|
||||
}
|
||||
|
||||
@ -1014,14 +1010,15 @@ vga_port_out_handler(struct vmctx *ctx, int in, int port, int bytes,
|
||||
break;
|
||||
default:
|
||||
pr_err("VGA CRTC: outb 0x%04x, 0x%02x at index %d\n", port, val, vd->vga_crtc.crtc_index);
|
||||
assert(0);
|
||||
break;
|
||||
return (-1);
|
||||
}
|
||||
break;
|
||||
case ATC_IDX_PORT:
|
||||
if (vd->vga_atc.atc_flipflop == 0) {
|
||||
if (vd->vga_atc.atc_index & 0x20)
|
||||
assert(0);
|
||||
if (vd->vga_atc.atc_index & 0x20) {
|
||||
pr_err("VGA ATC: invalid index.\n");
|
||||
return (-1);
|
||||
}
|
||||
vd->vga_atc.atc_index = val & ATC_IDX_MASK;
|
||||
} else {
|
||||
switch (vd->vga_atc.atc_index) {
|
||||
@ -1049,8 +1046,7 @@ vga_port_out_handler(struct vmctx *ctx, int in, int port, int bytes,
|
||||
break;
|
||||
default:
|
||||
pr_err("VGA ATC: outb 0x%04x, 0x%02x at index %d\n", port, val, vd->vga_atc.atc_index);
|
||||
assert(0);
|
||||
break;
|
||||
return (-1);
|
||||
}
|
||||
}
|
||||
vd->vga_atc.atc_flipflop ^= 1;
|
||||
@ -1081,12 +1077,10 @@ vga_port_out_handler(struct vmctx *ctx, int in, int port, int bytes,
|
||||
case SEQ_MEMORY_MODE:
|
||||
vd->vga_seq.seq_mm = val;
|
||||
/* Windows queries Chain4 */
|
||||
//assert((vd->vga_seq.seq_mm & SEQ_MM_C4) == 0);
|
||||
break;
|
||||
default:
|
||||
pr_err("VGA SEQ: outb 0x%04x, 0x%02x at index %d\n", port, val, vd->vga_seq.seq_index);
|
||||
assert(0);
|
||||
break;
|
||||
return (-1);
|
||||
}
|
||||
break;
|
||||
case DAC_MASK:
|
||||
@ -1143,7 +1137,6 @@ vga_port_out_handler(struct vmctx *ctx, int in, int port, int bytes,
|
||||
case GC_MODE:
|
||||
vd->vga_gc.gc_mode = val;
|
||||
vd->vga_gc.gc_mode_c4 = (val & GC_MODE_C4) != 0;
|
||||
assert(!vd->vga_gc.gc_mode_c4);
|
||||
vd->vga_gc.gc_mode_oe = (val & GC_MODE_OE) != 0;
|
||||
vd->vga_gc.gc_mode_rm = (val >> 3) & 0x1;
|
||||
vd->vga_gc.gc_mode_wm = val & 0x3;
|
||||
@ -1165,8 +1158,7 @@ vga_port_out_handler(struct vmctx *ctx, int in, int port, int bytes,
|
||||
break;
|
||||
default:
|
||||
pr_err("VGA GC: outb 0x%04x, 0x%02x at index %d\n", port, val, vd->vga_gc.gc_index);
|
||||
assert(0);
|
||||
break;
|
||||
return (-1);
|
||||
}
|
||||
break;
|
||||
case GEN_INPUT_STS0_PORT:
|
||||
@ -1181,7 +1173,6 @@ vga_port_out_handler(struct vmctx *ctx, int in, int port, int bytes,
|
||||
// break;
|
||||
default:
|
||||
pr_dbg("vga_port_out_handler() unhandled port 0x%x, val 0x%x\n", port, val);
|
||||
//assert(0);
|
||||
return (-1);
|
||||
}
|
||||
return (0);
|
||||
@ -1232,7 +1223,6 @@ vga_port_handler(struct vmctx *ctx, int vcpu, int in, int port, int bytes,
|
||||
}
|
||||
break;
|
||||
default:
|
||||
assert(0);
|
||||
return (-1);
|
||||
}
|
||||
|
||||
@ -1258,7 +1248,10 @@ vga_init(struct gfx_ctx *gc, int io_only)
|
||||
iop.arg = vd;
|
||||
|
||||
error = register_inout(&iop);
|
||||
assert(error == 0);
|
||||
if (error == -1) {
|
||||
pr_err("%s: failed to register inout port.\n", __func__);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
vd->gc_image = gc->gc_image;
|
||||
@ -1274,7 +1267,10 @@ vga_init(struct gfx_ctx *gc, int io_only)
|
||||
vd->mr.handler = vga_mem_handler;
|
||||
vd->mr.arg1 = vd;
|
||||
error = register_mem_fallback(&vd->mr);
|
||||
assert(error == 0);
|
||||
if (error == -1) {
|
||||
pr_err("%s: failed to regitster mem fallback.\n", __func__);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
vd->vga_ram = malloc(256 * KB);
|
||||
memset(vd->vga_ram, 0, 256 * KB);
|
||||
@ -1367,7 +1363,7 @@ vga_vbe_write(struct vmctx *ctx, int vcpu, struct vga *vga,
|
||||
break;
|
||||
default:
|
||||
pr_err("%s: write unknown size %d\n", __func__, size);
|
||||
break;
|
||||
return;
|
||||
}
|
||||
|
||||
switch (offset) {
|
||||
@ -1443,8 +1439,6 @@ void vga_deinit(struct vga *vga)
|
||||
iop.arg = NULL;
|
||||
|
||||
unregister_inout(&iop);
|
||||
//error = unregister_inout(&iop);
|
||||
//assert(error == 0);
|
||||
}
|
||||
|
||||
unregister_mem_fallback(&vd->mr);
|
||||
|
Loading…
Reference in New Issue
Block a user