Even more sonarlint work
This commit is contained in:
@@ -2004,12 +2004,13 @@ static void
|
||||
s3_hwcursor_draw(svga_t *svga, int displine)
|
||||
{
|
||||
s3_t *s3 = (s3_t *) svga->p;
|
||||
int x, shift = 1;
|
||||
int shift = 1;
|
||||
int width = 16;
|
||||
uint16_t dat[2];
|
||||
int xx;
|
||||
int offset = svga->hwcursor_latch.x - svga->hwcursor_latch.xoff;
|
||||
uint32_t fg, bg;
|
||||
uint32_t fg;
|
||||
uint32_t bg;
|
||||
uint32_t real_addr;
|
||||
uint32_t remapped_addr;
|
||||
|
||||
@@ -2070,7 +2071,7 @@ s3_hwcursor_draw(svga_t *svga, int displine)
|
||||
|
||||
real_addr = s3_hwcursor_convert_addr(svga);
|
||||
|
||||
for (x = 0; x < 64; x += 16) {
|
||||
for (uint8_t x = 0; x < 64; x += 16) {
|
||||
remapped_addr = dword_remap(svga, real_addr);
|
||||
|
||||
dat[0] = (svga->vram[remapped_addr & s3->vram_mask] << 8) | svga->vram[(remapped_addr + 1) & s3->vram_mask];
|
||||
@@ -2334,9 +2335,12 @@ s3_trio64v_overlay_draw(svga_t *svga, int displine)
|
||||
s3_t *s3 = (s3_t *) svga->p;
|
||||
int offset = (s3->streams.sec_x - s3->streams.pri_x) + 1;
|
||||
int h_acc = s3->streams.dda_horiz_accumulator;
|
||||
int r[8], g[8], b[8];
|
||||
int x_size, x_read = 4, x_write = 4;
|
||||
int x;
|
||||
int r[8];
|
||||
int g[8];
|
||||
int b[8];
|
||||
int x_size;
|
||||
int x_read = 4;
|
||||
int x_write = 4;
|
||||
uint32_t *p;
|
||||
uint8_t *src = &svga->vram[svga->overlay_latch.addr];
|
||||
|
||||
@@ -2349,7 +2353,7 @@ s3_trio64v_overlay_draw(svga_t *svga, int displine)
|
||||
|
||||
OVERLAY_SAMPLE();
|
||||
|
||||
for (x = 0; x < x_size; x++) {
|
||||
for (int x = 0; x < x_size; x++) {
|
||||
*p++ = r[x_read] | (g[x_read] << 8) | (b[x_read] << 16);
|
||||
|
||||
h_acc += s3->streams.k1_horiz_scale;
|
||||
@@ -2562,8 +2566,10 @@ s3_out(uint16_t addr, uint8_t val, void *p)
|
||||
{
|
||||
s3_t *s3 = (s3_t *) p;
|
||||
svga_t *svga = &s3->svga;
|
||||
uint8_t old, mask;
|
||||
int rs2, rs3;
|
||||
uint8_t old;
|
||||
uint8_t mask;
|
||||
int rs2;
|
||||
int rs3;
|
||||
|
||||
if (((addr & 0xfff0) == 0x3d0 || (addr & 0xfff0) == 0x3b0) && !(svga->miscout & 1))
|
||||
addr ^= 0x60;
|
||||
@@ -2632,7 +2638,7 @@ s3_out(uint16_t addr, uint8_t val, void *p)
|
||||
bt48x_ramdac_out(addr, rs2, rs3, val, svga->ramdac, svga);
|
||||
} else if ((s3->chip == S3_VISION964 && s3->card_type == S3_ELSAWIN2KPROX_964) || (s3->chip == S3_VISION968 && (s3->card_type == S3_ELSAWIN2KPROX || s3->card_type == S3_PHOENIX_VISION968 || s3->card_type == S3_NUMBER9_9FX_771)))
|
||||
ibm_rgb528_ramdac_out(addr, rs2, val, svga->ramdac, svga);
|
||||
else if ((s3->chip == S3_VISION968 && (s3->card_type == S3_SPEA_MERCURY_P64V || s3->card_type == S3_MIROVIDEO40SV_ERGO_968))) {
|
||||
else if (s3->chip == S3_VISION968 && (s3->card_type == S3_SPEA_MERCURY_P64V || s3->card_type == S3_MIROVIDEO40SV_ERGO_968)) {
|
||||
rs3 = !!(svga->crtc[0x55] & 0x02);
|
||||
tvp3026_ramdac_out(addr, rs2, rs3, val, svga->ramdac, svga);
|
||||
} else if (((s3->chip == S3_86C801) || (s3->chip == S3_86C805)) && (s3->card_type != S3_MIROCRYSTAL10SD_805 && s3->card_type != S3_MIROCRYSTAL8S_805))
|
||||
@@ -2906,7 +2912,8 @@ s3_in(uint16_t addr, void *p)
|
||||
{
|
||||
s3_t *s3 = (s3_t *) p;
|
||||
svga_t *svga = &s3->svga;
|
||||
int rs2, rs3;
|
||||
int rs2;
|
||||
int rs3;
|
||||
uint8_t temp;
|
||||
|
||||
if (((addr & 0xfff0) == 0x3d0 || (addr & 0xfff0) == 0x3b0) && !(svga->miscout & 1))
|
||||
@@ -3086,7 +3093,7 @@ s3_recalctimings(svga_t *svga)
|
||||
if ((((svga->miscout >> 2) & 3) == 3) && s3->chip < S3_TRIO32)
|
||||
clk_sel = svga->crtc[0x42] & 0x0f;
|
||||
|
||||
svga->clock = (cpuclock * (double) (1ull << 32)) / svga->getclock(clk_sel, svga->clock_gen);
|
||||
svga->clock = (cpuclock * (double) (1ULL << 32)) / svga->getclock(clk_sel, svga->clock_gen);
|
||||
|
||||
switch (svga->crtc[0x67] >> 4) {
|
||||
case 3:
|
||||
@@ -3368,7 +3375,7 @@ s3_trio64v_recalctimings(svga_t *svga)
|
||||
svga->split |= 0x400;
|
||||
svga->interlace = svga->crtc[0x42] & 0x20;
|
||||
|
||||
svga->clock = (cpuclock * (double) (1ull << 32)) / svga->getclock(clk_sel, svga->clock_gen);
|
||||
svga->clock = (cpuclock * (double) (1ULL << 32)) / svga->getclock(clk_sel, svga->clock_gen);
|
||||
|
||||
if ((svga->crtc[0x67] & 0xc) != 0xc) /*VGA mode*/
|
||||
{
|
||||
@@ -3579,7 +3586,9 @@ s3_trio64_getclock(int clock, void *p)
|
||||
s3_t *s3 = (s3_t *) p;
|
||||
svga_t *svga = &s3->svga;
|
||||
float t;
|
||||
int m, n1, n2;
|
||||
int m;
|
||||
int n1;
|
||||
int n2;
|
||||
if (clock == 0)
|
||||
return 25175000.0;
|
||||
if (clock == 1)
|
||||
@@ -5668,9 +5677,15 @@ polygon_setup(s3_t *s3)
|
||||
static __inline void
|
||||
convert_to_rgb32(int idf, int is_yuv, uint32_t val, uint8_t *r, uint8_t *g, uint8_t *b, uint8_t *r2, uint8_t *g2, uint8_t *b2)
|
||||
{
|
||||
static double dr = 0.0, dg = 0.0, db = 0.0;
|
||||
static double dY1 = 0.0, dCr = 0.0, dY2 = 0.0, dCb = 0.0;
|
||||
static double dU = 0.0, dV = 0.0;
|
||||
static double dr = 0.0;
|
||||
static double dg = 0.0;
|
||||
static double db = 0.0;
|
||||
static double dY1 = 0.0;
|
||||
static double dCr = 0.0;
|
||||
static double dY2 = 0.0;
|
||||
static double dCb = 0.0;
|
||||
static double dU = 0.0;
|
||||
static double dV = 0.0;
|
||||
|
||||
switch (idf) {
|
||||
case 0: /* 8 bpp, RGB 3-3-2 */
|
||||
@@ -5750,10 +5765,18 @@ convert_to_rgb32(int idf, int is_yuv, uint32_t val, uint8_t *r, uint8_t *g, uint
|
||||
static __inline void
|
||||
convert_from_rgb32(int idf, int odf, int is_yuv, uint32_t *val, uint8_t r, uint8_t g, uint8_t b, uint8_t r2, uint8_t g2, uint8_t b2)
|
||||
{
|
||||
static double dr = 0.0, dg = 0.0, db = 0.0;
|
||||
static double dr2 = 0.0, dg2 = 0.0, db2 = 0.0;
|
||||
static double dY1 = 0.0, dCr = 0.0, dY2 = 0.0, dCb = 0.0;
|
||||
static double dU = 0.0, dV = 0.0;
|
||||
static double dr = 0.0;
|
||||
static double dg = 0.0;
|
||||
static double db = 0.0;
|
||||
static double dr2 = 0.0;
|
||||
static double dg2 = 0.0;
|
||||
static double db2 = 0.0;
|
||||
static double dY1 = 0.0;
|
||||
static double dCr = 0.0;
|
||||
static double dY2 = 0.0;
|
||||
static double dCb = 0.0;
|
||||
static double dU = 0.0;
|
||||
static double dV = 0.0;
|
||||
|
||||
dr = (double) r;
|
||||
dg = (double) g;
|
||||
@@ -5832,13 +5855,23 @@ static void
|
||||
s3_visionx68_video_engine_op(uint32_t cpu_dat, s3_t *s3)
|
||||
{
|
||||
svga_t *svga = &s3->svga;
|
||||
int idf, odf, host;
|
||||
int idf;
|
||||
int odf;
|
||||
int host;
|
||||
int is_yuv;
|
||||
uint32_t src, dest = 0x00000000;
|
||||
uint8_t r = 0x00, g = 0x00, b = 0x00, r2 = 0x00, g2 = 0x00, b2 = 0x00;
|
||||
uint32_t src;
|
||||
uint32_t dest = 0x00000000;
|
||||
uint8_t r = 0x00;
|
||||
uint8_t g = 0x00;
|
||||
uint8_t b = 0x00;
|
||||
uint8_t r2 = 0x00;
|
||||
uint8_t g2 = 0x00;
|
||||
uint8_t b2 = 0x00;
|
||||
uint16_t *vram_w = (uint16_t *) svga->vram;
|
||||
uint32_t *vram_l = (uint32_t *) svga->vram;
|
||||
uint32_t k2 = 0, dda = 0, diff = 0;
|
||||
uint32_t k2 = 0;
|
||||
uint32_t dda = 0;
|
||||
uint32_t diff = 0;
|
||||
int count = -1;
|
||||
|
||||
idf = s3->videoengine.idf;
|
||||
@@ -5879,8 +5912,8 @@ s3_visionx68_video_engine_op(uint32_t cpu_dat, s3_t *s3)
|
||||
s3->videoengine.sx = k2 - dda + diff - 1;
|
||||
s3->videoengine.sx_backup = s3->videoengine.len - s3->videoengine.start - 1;
|
||||
}
|
||||
s3->videoengine.sx_scale_inc = (double) ((s3->videoengine.sx_backup >> 1));
|
||||
s3->videoengine.sx_scale_inc = s3->videoengine.sx_scale_inc / (double) ((s3->videoengine.sx >> 1));
|
||||
s3->videoengine.sx_scale_inc = (double) (s3->videoengine.sx_backup >> 1);
|
||||
s3->videoengine.sx_scale_inc = s3->videoengine.sx_scale_inc / (double) (s3->videoengine.sx >> 1);
|
||||
} else {
|
||||
s3->videoengine.sx_scale = (double) (s3->videoengine.k1 - 2);
|
||||
s3->videoengine.sx_scale_dec = (s3->videoengine.sx_scale / (double) (s3->videoengine.len - s3->videoengine.start - 2));
|
||||
@@ -5942,8 +5975,8 @@ s3_visionx68_video_engine_op(uint32_t cpu_dat, s3_t *s3)
|
||||
s3->videoengine.sx = k2 - dda + diff - 1;
|
||||
s3->videoengine.sx_backup = s3->videoengine.len - s3->videoengine.start - 1;
|
||||
}
|
||||
s3->videoengine.sx_scale_inc = (double) ((s3->videoengine.sx_backup >> 1));
|
||||
s3->videoengine.sx_scale_inc = s3->videoengine.sx_scale_inc / (double) ((s3->videoengine.sx >> 1));
|
||||
s3->videoengine.sx_scale_inc = (double) (s3->videoengine.sx_backup >> 1);
|
||||
s3->videoengine.sx_scale_inc = s3->videoengine.sx_scale_inc / (double) (s3->videoengine.sx >> 1);
|
||||
|
||||
s3->videoengine.cx = 0.0;
|
||||
s3->videoengine.dx = 0.0;
|
||||
@@ -6036,9 +6069,13 @@ void
|
||||
s3_accel_start(int count, int cpu_input, uint32_t mix_dat, uint32_t cpu_dat, s3_t *s3)
|
||||
{
|
||||
svga_t *svga = &s3->svga;
|
||||
uint32_t src_dat = 0, dest_dat, old_dest_dat;
|
||||
uint32_t out, pat_dat = 0;
|
||||
int frgd_mix, bkgd_mix;
|
||||
uint32_t src_dat = 0;
|
||||
uint32_t dest_dat;
|
||||
uint32_t old_dest_dat;
|
||||
uint32_t out;
|
||||
uint32_t pat_dat = 0;
|
||||
int frgd_mix;
|
||||
int bkgd_mix;
|
||||
int clip_t = s3->accel.multifunc[1] & 0xfff;
|
||||
int clip_l = s3->accel.multifunc[2] & 0xfff;
|
||||
int clip_b = s3->accel.multifunc[3] & 0xfff;
|
||||
@@ -6052,7 +6089,8 @@ s3_accel_start(int count, int cpu_input, uint32_t mix_dat, uint32_t cpu_dat, s3_
|
||||
int compare_mode = (s3->accel.multifunc[0xe] >> 7) & 3;
|
||||
uint32_t rd_mask = s3->accel.rd_mask;
|
||||
int cmd = s3->accel.cmd >> 13;
|
||||
uint32_t srcbase, dstbase;
|
||||
uint32_t srcbase;
|
||||
uint32_t dstbase;
|
||||
|
||||
if ((s3->chip >= S3_TRIO64 || s3->chip == S3_VISION968 || s3->chip == S3_VISION868) && (s3->accel.cmd & (1 << 11))) {
|
||||
cmd |= 8;
|
||||
@@ -6077,7 +6115,7 @@ s3_accel_start(int count, int cpu_input, uint32_t mix_dat, uint32_t cpu_dat, s3_
|
||||
dstbase >>= 2;
|
||||
}
|
||||
|
||||
if ((s3->accel.cmd & 0x100) && ((s3_cpu_src(s3) || (s3_cpu_dest(s3)))) && (!cpu_input || (s3_enable_fifo(s3) == 0))) {
|
||||
if ((s3->accel.cmd & 0x100) && (s3_cpu_src(s3) || (s3_cpu_dest(s3))) && (!cpu_input || (s3_enable_fifo(s3) == 0))) {
|
||||
s3->force_busy = 1;
|
||||
}
|
||||
|
||||
@@ -6476,7 +6514,7 @@ s3_accel_start(int count, int cpu_input, uint32_t mix_dat, uint32_t cpu_dat, s3_
|
||||
s3->accel.temp_cnt = 16;
|
||||
}
|
||||
|
||||
if (((s3->accel.cx & 0xfff) >= clip_l && (s3->accel.cx & 0xfff) <= clip_r && (s3->accel.cy & 0xfff) >= clip_t && (s3->accel.cy & 0xfff) <= clip_b)) {
|
||||
if ((s3->accel.cx & 0xfff) >= clip_l && (s3->accel.cx & 0xfff) <= clip_r && (s3->accel.cy & 0xfff) >= clip_t && (s3->accel.cy & 0xfff) <= clip_b) {
|
||||
if (s3_cpu_dest(s3) && ((s3->accel.multifunc[0xa] & 0xc0) == 0x00)) {
|
||||
mix_dat = mix_mask; /* Mix data = forced to foreground register. */
|
||||
} else if (s3_cpu_dest(s3) && vram_mask) {
|
||||
@@ -6506,7 +6544,7 @@ s3_accel_start(int count, int cpu_input, uint32_t mix_dat, uint32_t cpu_dat, s3_
|
||||
break;
|
||||
}
|
||||
|
||||
if (((compare_mode == 2 && src_dat != compare) || (compare_mode == 3 && src_dat == compare) || compare_mode < 2)) {
|
||||
if ((compare_mode == 2 && src_dat != compare) || (compare_mode == 3 && src_dat == compare) || compare_mode < 2) {
|
||||
READ(s3->accel.dest + s3->accel.cx, dest_dat);
|
||||
|
||||
MIX
|
||||
@@ -6574,7 +6612,8 @@ s3_accel_start(int count, int cpu_input, uint32_t mix_dat, uint32_t cpu_dat, s3_
|
||||
|
||||
case 3: /*Polygon Fill Solid (Vision868/968 and Trio64 only)*/
|
||||
{
|
||||
int end_y1, end_y2;
|
||||
int end_y1;
|
||||
int end_y2;
|
||||
|
||||
if (s3->chip != S3_TRIO64 && s3->chip != S3_VISION968 && s3->chip != S3_VISION868)
|
||||
break;
|
||||
@@ -6612,7 +6651,7 @@ s3_accel_start(int count, int cpu_input, uint32_t mix_dat, uint32_t cpu_dat, s3_
|
||||
break;
|
||||
}
|
||||
|
||||
if (((compare_mode == 2 && src_dat != compare) || (compare_mode == 3 && src_dat == compare) || compare_mode < 2)) {
|
||||
if ((compare_mode == 2 && src_dat != compare) || (compare_mode == 3 && src_dat == compare) || compare_mode < 2) {
|
||||
READ(s3->accel.dest + s3->accel.poly_x, dest_dat);
|
||||
|
||||
MIX
|
||||
@@ -6688,7 +6727,7 @@ s3_accel_start(int count, int cpu_input, uint32_t mix_dat, uint32_t cpu_dat, s3_
|
||||
|
||||
if (!cpu_input && frgd_mix == 3 && !vram_mask && !compare_mode && (s3->accel.cmd & 0xa0) == 0xa0 && (s3->accel.frgd_mix & 0xf) == 7 && (s3->accel.bkgd_mix & 0xf) == 7) {
|
||||
while (1) {
|
||||
if (((s3->accel.dx & 0xfff) >= clip_l && (s3->accel.dx & 0xfff) <= clip_r && (s3->accel.dy & 0xfff) >= clip_t && (s3->accel.dy & 0xfff) <= clip_b)) {
|
||||
if ((s3->accel.dx & 0xfff) >= clip_l && (s3->accel.dx & 0xfff) <= clip_r && (s3->accel.dy & 0xfff) >= clip_t && (s3->accel.dy & 0xfff) <= clip_b) {
|
||||
READ(s3->accel.src + s3->accel.cx, src_dat);
|
||||
READ(s3->accel.dest + s3->accel.dx, dest_dat);
|
||||
|
||||
@@ -6747,6 +6786,7 @@ s3_accel_start(int count, int cpu_input, uint32_t mix_dat, uint32_t cpu_dat, s3_
|
||||
}
|
||||
|
||||
if ((((compare_mode == 2 && src_dat != compare) || (compare_mode == 3 && src_dat == compare) || compare_mode < 2))) {
|
||||
|
||||
READ(s3->accel.dest + s3->accel.dx, dest_dat);
|
||||
|
||||
MIX
|
||||
@@ -7029,7 +7069,8 @@ s3_accel_start(int count, int cpu_input, uint32_t mix_dat, uint32_t cpu_dat, s3_
|
||||
|
||||
case 11: /*Polygon Fill Pattern (Vision868/968 and Trio64 only)*/
|
||||
{
|
||||
int end_y1, end_y2;
|
||||
int end_y1;
|
||||
int end_y2;
|
||||
|
||||
if (s3->chip != S3_TRIO64 && s3->chip != S3_VISION968 && s3->chip != S3_VISION868)
|
||||
break;
|
||||
@@ -7455,7 +7496,8 @@ static void
|
||||
fifo_thread(void *param)
|
||||
{
|
||||
s3_t *s3 = (s3_t *) param;
|
||||
uint64_t start_time, end_time;
|
||||
uint64_t start_time;
|
||||
uint64_t end_time;
|
||||
|
||||
while (s3->fifo_thread_run) {
|
||||
thread_set_event(s3->fifo_not_full_event);
|
||||
@@ -7523,8 +7565,8 @@ s3_reset(void *priv)
|
||||
memset(svga->crtc, 0x00, sizeof(svga->crtc));
|
||||
svga->crtc[0] = 63;
|
||||
svga->crtc[6] = 255;
|
||||
svga->dispontime = 1000ull << 32;
|
||||
svga->dispofftime = 1000ull << 32;
|
||||
svga->dispontime = 1000ULL << 32;
|
||||
svga->dispofftime = 1000ULL << 32;
|
||||
svga->bpp = 8;
|
||||
|
||||
if (s3->pci)
|
||||
@@ -7661,7 +7703,8 @@ static void *
|
||||
s3_init(const device_t *info)
|
||||
{
|
||||
const char *bios_fn;
|
||||
int chip, stepping;
|
||||
int chip;
|
||||
int stepping;
|
||||
s3_t *s3 = malloc(sizeof(s3_t));
|
||||
svga_t *svga = &s3->svga;
|
||||
int vram;
|
||||
|
||||
Reference in New Issue
Block a user