sonarlint vid_ati_mach8.c
This commit is contained in:
@@ -67,17 +67,23 @@ typedef struct mach_t {
|
||||
uint16_t config2;
|
||||
|
||||
uint8_t pos_regs[8];
|
||||
uint8_t cursor_col_0, cursor_col_1;
|
||||
uint8_t ext_cur_col_0_r, ext_cur_col_1_r;
|
||||
uint8_t ext_cur_col_0_g, ext_cur_col_1_g;
|
||||
uint16_t cursor_offset_lo, cursor_offset_hi;
|
||||
uint16_t cursor_x, cursor_y;
|
||||
uint8_t cursor_col_0;
|
||||
uint8_t cursor_col_1;
|
||||
uint8_t ext_cur_col_0_r;
|
||||
uint8_t ext_cur_col_1_r;
|
||||
uint8_t ext_cur_col_0_g;
|
||||
uint8_t ext_cur_col_1_g;
|
||||
uint16_t cursor_offset_lo;
|
||||
uint16_t cursor_offset_hi;
|
||||
uint16_t cursor_x;
|
||||
uint16_t cursor_y;
|
||||
uint16_t misc;
|
||||
uint16_t memory_aperture;
|
||||
uint16_t local_cntl;
|
||||
uint32_t linear_base;
|
||||
uint8_t ap_size;
|
||||
uint8_t bank_w, bank_r;
|
||||
uint8_t bank_w;
|
||||
uint8_t bank_r;
|
||||
|
||||
struct {
|
||||
uint8_t line_idx;
|
||||
@@ -91,7 +97,8 @@ typedef struct mach_t {
|
||||
uint16_t dest_y_end;
|
||||
uint16_t src_x_end;
|
||||
uint16_t src_x_start;
|
||||
uint16_t src_x, src_y;
|
||||
uint16_t src_x;
|
||||
uint16_t src_y;
|
||||
int16_t bres_count;
|
||||
uint16_t clock_sel;
|
||||
uint16_t crt_offset_lo;
|
||||
@@ -110,22 +117,40 @@ typedef struct mach_t {
|
||||
uint16_t scratch1;
|
||||
uint16_t test;
|
||||
uint16_t pattern;
|
||||
uint8_t test2[2], test3[2];
|
||||
uint8_t test2[2];
|
||||
uint8_t test3[2];
|
||||
int src_y_dir;
|
||||
int cmd_type;
|
||||
int block_write_mono_pattern_enable;
|
||||
int mono_pattern_enable;
|
||||
int16_t cx_end_line, cy_end_line;
|
||||
int16_t cx, cx_end, cy_end, dx, dx_end, dy_end;
|
||||
int16_t dx_start, dy_start;
|
||||
int16_t cy, sx_start, sx_end;
|
||||
int16_t sx, x_count, xx_count, xxx_count;
|
||||
int16_t sy, y_count;
|
||||
int16_t cx_end_line;
|
||||
int16_t cy_end_line;
|
||||
int16_t cx;
|
||||
int16_t cx_end;
|
||||
int16_t cy_end;
|
||||
int16_t dx;
|
||||
int16_t dx_end;
|
||||
int16_t dy_end;
|
||||
int16_t dx_start;
|
||||
int16_t dy_start;
|
||||
int16_t cy;
|
||||
int16_t sx_start;
|
||||
int16_t sx_end;
|
||||
int16_t sx;
|
||||
int16_t x_count;
|
||||
int16_t xx_count;
|
||||
int16_t xxx_count;
|
||||
int16_t sy;
|
||||
int16_t y_count;
|
||||
int16_t err;
|
||||
int16_t width, src_width;
|
||||
int16_t width;
|
||||
int16_t src_width;
|
||||
int16_t height;
|
||||
int poly_src, temp_cnt;
|
||||
int stepx, stepy, src_stepx;
|
||||
int poly_src;
|
||||
int temp_cnt;
|
||||
int stepx;
|
||||
int stepy;
|
||||
int src_stepx;
|
||||
uint8_t color_pattern[16];
|
||||
uint8_t color_pattern_full[32];
|
||||
uint16_t color_pattern_word[8];
|
||||
@@ -139,14 +164,14 @@ typedef struct mach_t {
|
||||
int color_pattern_idx;
|
||||
} accel;
|
||||
|
||||
atomic_int force_busy, force_busy2;
|
||||
atomic_int force_busy;
|
||||
atomic_int force_busy2;
|
||||
} mach_t;
|
||||
|
||||
static video_timings_t timing_gfxultra_isa = { .type = VIDEO_ISA, .write_b = 3, .write_w = 3, .write_l = 6, .read_b = 5, .read_w = 5, .read_l = 10 };
|
||||
static video_timings_t timing_mach32_vlb = { .type = VIDEO_BUS, .write_b = 2, .write_w = 2, .write_l = 1, .read_b = 20, .read_w = 20, .read_l = 21 };
|
||||
static video_timings_t timing_mach32_pci = { .type = VIDEO_PCI, .write_b = 2, .write_w = 2, .write_l = 1, .read_b = 20, .read_w = 20, .read_l = 21 };
|
||||
|
||||
|
||||
static void mach_accel_outb(uint16_t port, uint8_t val, void *priv);
|
||||
static void mach_accel_outw(uint16_t port, uint16_t val, void *priv);
|
||||
static uint8_t mach_accel_inb(uint16_t port, void *priv);
|
||||
@@ -348,7 +373,6 @@ mach_log(const char *fmt, ...)
|
||||
svga->changedvram[(((addr)) & (svga->vram_mask >> 1)) >> 11] = changeframecount; \
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
mach_pixel_write(mach_t *mach)
|
||||
{
|
||||
@@ -1142,8 +1166,7 @@ mach_accel_start(int cmd_type, int cpu_input, int count, uint32_t mix_dat, uint3
|
||||
break;
|
||||
}
|
||||
|
||||
if (((dev->accel.dx) >= clip_l) && ((dev->accel.dx) <= clip_r) &&
|
||||
((dev->accel.dy) >= clip_t) && ((dev->accel.dy) <= clip_b)) {
|
||||
if (((dev->accel.dx) >= clip_l) && ((dev->accel.dx) <= clip_r) && ((dev->accel.dy) >= clip_t) && ((dev->accel.dy) <= clip_b)) {
|
||||
if (mach->accel.dp_config & 0x02) {
|
||||
READ(dev->accel.src + (dev->accel.cx), poly_src, dev->local);
|
||||
poly_src = ((poly_src & rd_mask) == rd_mask);
|
||||
@@ -2073,8 +2096,7 @@ mach_accel_start(int cmd_type, int cpu_input, int count, uint32_t mix_dat, uint3
|
||||
break;
|
||||
}
|
||||
|
||||
if (((dev->accel.dx) >= clip_l) && ((dev->accel.dx) <= clip_r) &&
|
||||
((dev->accel.dy) >= clip_t) && ((dev->accel.dy) <= clip_b)) {
|
||||
if (((dev->accel.dx) >= clip_l) && ((dev->accel.dx) <= clip_r) && ((dev->accel.dy) >= clip_t) && ((dev->accel.dy) <= clip_b)) {
|
||||
switch (mix ? frgd_sel : bkgd_sel) {
|
||||
case 0:
|
||||
src_dat = dev->accel.bkgd_color;
|
||||
@@ -2264,7 +2286,7 @@ mach_out(uint16_t addr, uint8_t val, void *priv)
|
||||
{
|
||||
mach_t *mach = (mach_t *) priv;
|
||||
svga_t *svga = &mach->svga;
|
||||
ibm8514_t *dev = &svga->dev8514;
|
||||
const ibm8514_t *dev = &svga->dev8514;
|
||||
uint8_t old;
|
||||
uint8_t rs2;
|
||||
|
||||
@@ -2432,7 +2454,7 @@ mach_in(uint16_t addr, void *priv)
|
||||
{
|
||||
mach_t *mach = (mach_t *) priv;
|
||||
svga_t *svga = &mach->svga;
|
||||
ibm8514_t *dev = &svga->dev8514;
|
||||
const ibm8514_t *dev = &svga->dev8514;
|
||||
uint8_t temp;
|
||||
uint8_t rs2;
|
||||
|
||||
@@ -2523,7 +2545,7 @@ mach_in(uint16_t addr, void *priv)
|
||||
static void
|
||||
mach_recalctimings(svga_t *svga)
|
||||
{
|
||||
mach_t *mach = (mach_t *) svga->priv;
|
||||
const mach_t *mach = (mach_t *) svga->priv;
|
||||
ibm8514_t *dev = &svga->dev8514;
|
||||
|
||||
if (vga_on && !ibm8514_on) {
|
||||
@@ -3232,7 +3254,7 @@ mach_accel_out_fifo(mach_t *mach, svga_t *svga, ibm8514_t *dev, uint16_t port, u
|
||||
}
|
||||
break;
|
||||
|
||||
/*ATI Mach8/32 specific registers*/
|
||||
/*ATI Mach8/32 specific registers*/
|
||||
case 0x82ee:
|
||||
mach->accel.patt_data_idx = val & 0x1f;
|
||||
mach_log("Pattern Data Index = %d.\n", val & 0x1f);
|
||||
@@ -3257,7 +3279,6 @@ mach_accel_out_fifo(mach_t *mach, svga_t *svga, ibm8514_t *dev, uint16_t port, u
|
||||
mach->accel.patt_data_idx += 2;
|
||||
else
|
||||
mach->accel.patt_data_idx = (mach->accel.patt_data_idx + 2) & mach->accel.patt_len;
|
||||
|
||||
}
|
||||
mach_log("ExtCONFIG = %04x, Pattern Mono = %04x, selidx = %d, dataidx = %d, bit 0 = %02x len = %d.\n", mach->accel.ext_ge_config, val, mach->accel.patt_idx, mach->accel.patt_data_idx, val & 1, mach->accel.patt_len);
|
||||
}
|
||||
@@ -4139,7 +4160,7 @@ mach_accel_in(uint16_t port, mach_t *mach, int len)
|
||||
{
|
||||
svga_t *svga = &mach->svga;
|
||||
ibm8514_t *dev = &svga->dev8514;
|
||||
uint16_t *vram_w = (uint16_t *) svga->vram;
|
||||
const uint16_t *vram_w = (uint16_t *) svga->vram;
|
||||
uint16_t temp = 0;
|
||||
int cmd;
|
||||
int vpos = dev->displine + svga->y_add;
|
||||
@@ -4451,7 +4472,7 @@ mach_accel_in(uint16_t port, mach_t *mach, int len)
|
||||
}
|
||||
break;
|
||||
|
||||
/*ATI Mach8/32 specific registers*/
|
||||
/*ATI Mach8/32 specific registers*/
|
||||
case 0x12ee:
|
||||
if (len == 1)
|
||||
temp = mach->config1 & 0xff;
|
||||
@@ -5016,7 +5037,7 @@ mach32_updatemapping(mach_t *mach)
|
||||
static void
|
||||
mach32_hwcursor_draw(svga_t *svga, int displine)
|
||||
{
|
||||
mach_t *mach = (mach_t *) svga->priv;
|
||||
const mach_t *mach = (mach_t *) svga->priv;
|
||||
uint16_t dat;
|
||||
int comb;
|
||||
int offset = svga->hwcursor_latch.x - svga->hwcursor_latch.xoff;
|
||||
@@ -5315,7 +5336,7 @@ mach_io_set(mach_t *mach)
|
||||
static uint8_t
|
||||
mach32_pci_read(UNUSED(int func), int addr, void *priv)
|
||||
{
|
||||
mach_t *mach = (mach_t *) priv;
|
||||
const mach_t *mach = (mach_t *) priv;
|
||||
uint8_t ret = 0x00;
|
||||
|
||||
switch (addr) {
|
||||
|
Reference in New Issue
Block a user