sonarlint voodoo stuff
This commit is contained in:
@@ -160,8 +160,8 @@ voodoo_readw(uint32_t addr, void *priv)
|
||||
if ((addr & 0xc00000) == 0x400000) /*Framebuffer*/
|
||||
{
|
||||
if (SLI_ENABLED) {
|
||||
voodoo_set_t *set = voodoo->set;
|
||||
int y = (addr >> 11) & 0x3ff;
|
||||
const voodoo_set_t *set = voodoo->set;
|
||||
int y = (addr >> 11) & 0x3ff;
|
||||
|
||||
if (y & 1)
|
||||
voodoo = set->voodoos[1];
|
||||
@@ -194,13 +194,12 @@ voodoo_readl(uint32_t addr, void *priv)
|
||||
|
||||
cycles -= voodoo->read_time;
|
||||
|
||||
if (addr & 0x800000) /*Texture*/
|
||||
{
|
||||
if (addr & 0x800000) { /*Texture*/
|
||||
} else if (addr & 0x400000) /*Framebuffer*/
|
||||
{
|
||||
if (SLI_ENABLED) {
|
||||
voodoo_set_t *set = voodoo->set;
|
||||
int y = (addr >> 11) & 0x3ff;
|
||||
const voodoo_set_t *set = voodoo->set;
|
||||
int y = (addr >> 11) & 0x3ff;
|
||||
|
||||
if (y & 1)
|
||||
voodoo = set->voodoos[1];
|
||||
@@ -429,7 +428,9 @@ voodoo_writel(uint32_t addr, uint32_t val, void *priv)
|
||||
{
|
||||
voodoo_queue_command(voodoo, addr | FIFO_WRITEL_FB, val);
|
||||
} else if ((addr & 0x200000) && (voodoo->fbiInit7 & FBIINIT7_CMDFIFO_ENABLE)) {
|
||||
// voodoo_log("Write CMDFIFO %08x(%08x) %08x %08x\n", addr, voodoo->cmdfifo_base + (addr & 0x3fffc), val, (voodoo->cmdfifo_base + (addr & 0x3fffc)) & voodoo->fb_mask);
|
||||
#if 0
|
||||
voodoo_log("Write CMDFIFO %08x(%08x) %08x %08x\n", addr, voodoo->cmdfifo_base + (addr & 0x3fffc), val, (voodoo->cmdfifo_base + (addr & 0x3fffc)) & voodoo->fb_mask);
|
||||
#endif
|
||||
*(uint32_t *) &voodoo->fb_mem[(voodoo->cmdfifo_base + (addr & 0x3fffc)) & voodoo->fb_mask] = val;
|
||||
voodoo->cmdfifo_depth_wr++;
|
||||
if ((voodoo->cmdfifo_depth_wr - voodoo->cmdfifo_depth_rd) < 20)
|
||||
@@ -492,7 +493,9 @@ voodoo_writel(uint32_t addr, uint32_t val, void *priv)
|
||||
if (voodoo->initEnable & 0x01) {
|
||||
voodoo->fbiInit4 = val;
|
||||
voodoo->read_time = pci_nonburst_time + pci_burst_time * ((voodoo->fbiInit4 & 1) ? 2 : 1);
|
||||
// voodoo_log("fbiInit4 write %08x - read_time=%i\n", val, voodoo->read_time);
|
||||
#if 0
|
||||
voodoo_log("fbiInit4 write %08x - read_time=%i\n", val, voodoo->read_time);
|
||||
#endif
|
||||
}
|
||||
break;
|
||||
case SST_backPorch:
|
||||
@@ -538,7 +541,9 @@ voodoo_writel(uint32_t addr, uint32_t val, void *priv)
|
||||
voodoo->fbiInit1 = (val & ~5) | (voodoo->fbiInit1 & 5);
|
||||
voodoo->write_time = pci_nonburst_time + pci_burst_time * ((voodoo->fbiInit1 & 2) ? 1 : 0);
|
||||
voodoo->burst_time = pci_burst_time * ((voodoo->fbiInit1 & 2) ? 2 : 1);
|
||||
// voodoo_log("fbiInit1 write %08x - write_time=%i burst_time=%i\n", val, voodoo->write_time, voodoo->burst_time);
|
||||
#if 0
|
||||
voodoo_log("fbiInit1 write %08x - write_time=%i burst_time=%i\n", val, voodoo->write_time, voodoo->burst_time);
|
||||
#endif
|
||||
}
|
||||
break;
|
||||
case SST_fbiInit2:
|
||||
@@ -590,6 +595,9 @@ voodoo_writel(uint32_t addr, uint32_t val, void *priv)
|
||||
case 0x0b:
|
||||
voodoo->dac_readdata = 0x79;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
} else
|
||||
voodoo->dac_readdata = voodoo->dac_data[voodoo->dac_readdata & 7];
|
||||
@@ -599,7 +607,9 @@ voodoo_writel(uint32_t addr, uint32_t val, void *priv)
|
||||
voodoo->dac_pll_regs[voodoo->dac_data[4] & 0xf] = (voodoo->dac_pll_regs[voodoo->dac_data[4] & 0xf] & 0xff00) | val;
|
||||
else
|
||||
voodoo->dac_pll_regs[voodoo->dac_data[4] & 0xf] = (voodoo->dac_pll_regs[voodoo->dac_data[4] & 0xf] & 0xff) | (val << 8);
|
||||
// voodoo_log("Write PLL reg %x %04x\n", voodoo->dac_data[4] & 0xf, voodoo->dac_pll_regs[voodoo->dac_data[4] & 0xf]);
|
||||
#if 0
|
||||
voodoo_log("Write PLL reg %x %04x\n", voodoo->dac_data[4] & 0xf, voodoo->dac_pll_regs[voodoo->dac_data[4] & 0xf]);
|
||||
#endif
|
||||
voodoo->dac_reg_ff = !voodoo->dac_reg_ff;
|
||||
if (!voodoo->dac_reg_ff)
|
||||
voodoo->dac_data[4]++;
|
||||
@@ -642,7 +652,9 @@ voodoo_writel(uint32_t addr, uint32_t val, void *priv)
|
||||
case SST_cmdFifoBaseAddr:
|
||||
voodoo->cmdfifo_base = (val & 0x3ff) << 12;
|
||||
voodoo->cmdfifo_end = ((val >> 16) & 0x3ff) << 12;
|
||||
// voodoo_log("CMDFIFO base=%08x end=%08x\n", voodoo->cmdfifo_base, voodoo->cmdfifo_end);
|
||||
#if 0
|
||||
voodoo_log("CMDFIFO base=%08x end=%08x\n", voodoo->cmdfifo_base, voodoo->cmdfifo_end);
|
||||
#endif
|
||||
break;
|
||||
|
||||
case SST_cmdFifoRdPtr:
|
||||
@@ -672,14 +684,14 @@ voodoo_writel(uint32_t addr, uint32_t val, void *priv)
|
||||
static uint16_t
|
||||
voodoo_snoop_readw(uint32_t addr, void *priv)
|
||||
{
|
||||
voodoo_set_t *set = (voodoo_set_t *) priv;
|
||||
const voodoo_set_t *set = (voodoo_set_t *) priv;
|
||||
|
||||
return voodoo_readw(addr, set->voodoos[0]);
|
||||
}
|
||||
static uint32_t
|
||||
voodoo_snoop_readl(uint32_t addr, void *priv)
|
||||
{
|
||||
voodoo_set_t *set = (voodoo_set_t *) priv;
|
||||
const voodoo_set_t *set = (voodoo_set_t *) priv;
|
||||
|
||||
return voodoo_readl(addr, set->voodoos[0]);
|
||||
}
|
||||
@@ -687,7 +699,7 @@ voodoo_snoop_readl(uint32_t addr, void *priv)
|
||||
static void
|
||||
voodoo_snoop_writew(uint32_t addr, uint16_t val, void *priv)
|
||||
{
|
||||
voodoo_set_t *set = (voodoo_set_t *) priv;
|
||||
const voodoo_set_t *set = (voodoo_set_t *) priv;
|
||||
|
||||
voodoo_writew(addr, val, set->voodoos[0]);
|
||||
voodoo_writew(addr, val, set->voodoos[1]);
|
||||
@@ -695,7 +707,7 @@ voodoo_snoop_writew(uint32_t addr, uint16_t val, void *priv)
|
||||
static void
|
||||
voodoo_snoop_writel(uint32_t addr, uint32_t val, void *priv)
|
||||
{
|
||||
voodoo_set_t *set = (voodoo_set_t *) priv;
|
||||
const voodoo_set_t *set = (voodoo_set_t *) priv;
|
||||
|
||||
voodoo_writel(addr, val, set->voodoos[0]);
|
||||
voodoo_writel(addr, val, set->voodoos[1]);
|
||||
@@ -749,7 +761,7 @@ voodoo_recalcmapping(voodoo_set_t *set)
|
||||
uint8_t
|
||||
voodoo_pci_read(int func, int addr, void *priv)
|
||||
{
|
||||
voodoo_t *voodoo = (voodoo_t *) priv;
|
||||
const voodoo_t *voodoo = (voodoo_t *) priv;
|
||||
|
||||
if (func)
|
||||
return 0;
|
||||
@@ -803,6 +815,9 @@ voodoo_pci_read(int func, int addr, void *priv)
|
||||
return (voodoo->initEnable >> 16) & 0xff;
|
||||
case 0x43:
|
||||
return (voodoo->initEnable >> 24) & 0xff;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@@ -844,13 +859,16 @@ voodoo_pci_write(int func, int addr, uint8_t val, void *priv)
|
||||
voodoo->initEnable = (voodoo->initEnable & ~0xff000000) | (val << 24);
|
||||
voodoo_recalcmapping(voodoo->set);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
voodoo_speed_changed(void *priv)
|
||||
{
|
||||
voodoo_set_t *voodoo_set = (voodoo_set_t *) priv;
|
||||
const voodoo_set_t *voodoo_set = (voodoo_set_t *) priv;
|
||||
|
||||
voodoo_pixelclock_update(voodoo_set->voodoos[0]);
|
||||
voodoo_set->voodoos[0]->read_time = pci_nonburst_time + pci_burst_time * ((voodoo_set->voodoos[0]->fbiInit4 & 1) ? 2 : 1);
|
||||
@@ -870,7 +888,7 @@ voodoo_speed_changed(void *priv)
|
||||
static void
|
||||
voodoo_force_blit(void *priv)
|
||||
{
|
||||
voodoo_set_t *voodoo_set = (voodoo_set_t *) priv;
|
||||
const voodoo_set_t *voodoo_set = (voodoo_set_t *) priv;
|
||||
|
||||
thread_wait_mutex(voodoo_set->voodoos[0]->force_blit_mutex);
|
||||
if (voodoo_set->voodoos[0]->can_blit) {
|
||||
@@ -916,6 +934,9 @@ voodoo_card_init(void)
|
||||
case VOODOO_2:
|
||||
voodoo->dual_tmus = 1;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (voodoo->type == VOODOO_2) /*generate filter lookup tables*/
|
||||
@@ -1163,7 +1184,7 @@ voodoo_2d3d_card_init(int type)
|
||||
}
|
||||
|
||||
void *
|
||||
voodoo_init(const device_t *info)
|
||||
voodoo_init(UNUSED(const device_t *info))
|
||||
{
|
||||
voodoo_set_t *voodoo_set = malloc(sizeof(voodoo_set_t));
|
||||
uint32_t tmuConfig = 1;
|
||||
@@ -1205,6 +1226,9 @@ voodoo_init(const device_t *info)
|
||||
case VOODOO_2:
|
||||
tmuConfig = 1 | (3 << 6);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
voodoo_set->voodoos[0]->tmuConfig = tmuConfig;
|
||||
|
||||
Reference in New Issue
Block a user